Innehållsförteckning:

500 LED -väggar med ESP32: 16 steg
500 LED -väggar med ESP32: 16 steg

Video: 500 LED -väggar med ESP32: 16 steg

Video: 500 LED -väggar med ESP32: 16 steg
Video: Using HT16K33 4 digit seven segment display with ESP32 2024, November
Anonim
500 LED -väggar med ESP32
500 LED -väggar med ESP32

Hej allihopa! I slutet av denna handledning kommer du att veta hur du skapar din egen LED -vägg.

Denna handledning är baserad på ett sommarprogram som erbjuds vid Sacred Heart University.

Ha så kul!

Tillbehör

Tillbehör listade nedan.

Steg 1: Tillbehör

Tillbehör
Tillbehör

Låt oss börja med att samla allt vi behöver för att slutföra vår Led Wall:

(Länkar skapades 7/10/2019)

Arduino IDE -programvara

ESP32 Micro Controller

LED Pixel Light

Strömförsörjning

Strömsladd

Wire Stripping Tool

Breadboard Jumper Cables

Elektrisk kabel

Steg 2: Bestäm rätt strömförsörjning för din LedWall

Det finns ett enkelt matematiskt sätt att ta reda på vilken strömförsörjning som är bäst för din användning.

Vi använder Ohms effektlag: P = IxV (Effekt = Intensitet x Spänning)

Spänningen bestäms av våra lysdioder: i detta fall 5V.

Intensiteten beror på hårdvaran, en enda LED förbrukar 30mA.

Varje remsa med 50 lysdioder förbrukar därför 50 x 30mA = 1250mA = 1,25A.

Vår 500 Led -vägg förbrukar därför 10 gånger så mycket (10 remsor): 12,5A.

Strömförbrukningen är då 5V x 12,5A = 62,5W för lysdioderna.

Självklart måste du, ovanpå de lysdioder, redogöra för ESP och alla andra objekt i din krets.

Vi har en 60A strömförsörjning, vi har mycket mer än vi behöver.

Steg 3: Nätsladden

Image
Image

Vår strömförsörjning levereras med kabelanslutningar. Vi måste anpassa en nätsladd för att ansluta den till en 110V -kontakt.

- Klipp av honkontakten från nätsladden. Vi kommer att behålla den manliga delen, annars känd som NEMA 5-15P.

- Dra av kabeln så att ca 3 mm koppar är synligt på alla ledningar.

Här är en snabb videohandledning om hur du tar bort ledningar:

Steg 4: Anslut strömförsörjningen

Strömförsörjning till ESP32S
Strömförsörjning till ESP32S

Nu är vi redo att koppla upp vår strömförsörjning!

Koppla alltid ur strömkällan när du arbetar med den.

Kabeldragning

  • Den svarta ledningen (Fas) ansluts till nätaggregatets L -stift
  • Den vita ledningen (Neutral) ansluts till nätaggregatets N -stift
  • Den gröna ledningen ansluts till nätaggregatets "jord" -stift

(Om din nätsladds inre ledningar inte har samma färger som våra, var säker och leta upp scheman online.)

Testning

Anslut datorns nätkabel till ett eluttag. Den gröna lysdioden på strömförsörjningen ska tändas.

Steg 5: Strömförsörjning till ESP32S

Om du tittar på din ESP bör det finnas etiketter bredvid varje pin. Om den inte är märkt kan du leta upp "pinout" för din individuella ESP online.

Anslut en:

  • '5V' ESP32S -stiftet till '+V' på strömförsörjningen (orange på bilden ovan)
  • 'GND' ESP32S-stiftet till '-V' -delen av strömförsörjningen (svart på bilden ovan)

(På vissa ESP: er är 5V -stiftet märkt som "VCC" istället, båda betyder samma sak.)

Observera att din ESP kan ha en annan "pinout" än den vi använder. Som sådan kan du ansluta dina ledningar till en annan plats än på bilden ovan. Så länge du ansluter till rätt stift (5V & GND), spelar den fysiska platsen på tavlan ingen roll.

Testa Anslut strömförsörjningen igen, och om din ESP har en LED -indikator (de flesta gör det) tänds den för att indikera att strömmen skickas till ESP. Grattis!

Steg 6: Driva LED -ljusremsorna

Driva LED -ljusremsorna
Driva LED -ljusremsorna

Använda elektriska ledningar:

- Anslut den röda ledningen på LED Light Strip till V+ på strömförsörjningen.

- Anslut den blå ledningen på LED-ljusremsan till V- på strömförsörjningen.

Steg 7: Anslutning av ESP32 till LED -ljusremsorna

Vår ESP32 instruerar WS2811 -drivrutinen som är ansluten till varje led i vilken färg och ljusstyrka de behöver vara. För att göra det behöver vår ESP32 en "datakabel" till remsorna.

Leds -remsorna har en 3 -trådskontakt:

- Röd: Power- Blå: Neutral- White: Data

Låt oss ansluta White Led -remsekabeln till en digital stift på ESP. Kom ihåg det valda PIN -numret eftersom vi kommer att behöva välja det i koden senare. Vi kopplade vårt till stift 13.

Steg 8: Förbereda datorn: C2102 -drivrutin

Nu när vår hårdvara är trådbunden vill vi ladda upp vår första kod för att testa den. Som standard kan Windows eller MacO inte kommunicera med vår ESP32. För att göra det måste vi ladda ner en "drivrutin" för ESP USB -kommunikationschip: C2102.

Denna drivrutin måste laddas ner och installeras:

- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:

(Länkar från 2019-07-10)

Steg 9: Arduino -programvara - Lägga till ESP32 -stöd - Steg 1

Arduino -programvara - Lägga till ESP32 -stöd - Steg 1
Arduino -programvara - Lägga till ESP32 -stöd - Steg 1
Arduino -programvara - Lägga till ESP32 -stöd - Steg 1
Arduino -programvara - Lägga till ESP32 -stöd - Steg 1

Innan vi kan använda vår ESP32 med Arduino -programvaran måste vi se till att den känns igen. Som standard kan Arduino -programvaran inte kompilera kod för vår ESP32, låt oss fixa det:

Steg 1: Lägga till styrelser till chefen

1 - Klicka på alternativet Arkiv >> Inställningar i Arduino

2- I fältet "Extra Boards Manager URLs" kopierar du följande länk:

Steg 10: Arduino -programvara - Lägga till ESP32 -stöd - Steg 2

Arduino -programvara - Lägga till ESP32 -stöd - Steg 2
Arduino -programvara - Lägga till ESP32 -stöd - Steg 2
Arduino -programvara - Lägga till ESP32 -stöd - Steg 2
Arduino -programvara - Lägga till ESP32 -stöd - Steg 2

Nu när Arduino -programvaran "vet" fler kort, låt oss installera vårt ESP32 -stöd

Steg 2: Installera ESP32 -stödet

1 - I den övre menyn väljer du: Verktyg >> Styrelse >> Boards Manager

2 - Ett fönster visas. Använd sökrutan i det övre högra hörnet för att hitta "ESP32".

3 - Leta reda på den från espressif. Installera det. (Se bild)

Steg 11: Arduino -programvara - Lägga till ESP32 -stöd - Steg 3

Arduino -programvara - Lägga till ESP32 -stöd - Steg 3
Arduino -programvara - Lägga till ESP32 -stöd - Steg 3

Nu när Arduino -programvaran kan kommunicera med vår ESP32, låt oss ansluta den till datorn och kontrollera att allt fungerar.

1 - Låt oss se till att vi arbetar på ESP32 -plattformen:

Klicka på Verktyg >> Kort >> ESP32 Dev -modul

1- Låt oss se till att Arduino-programvaran vet hur man kommunicerar till vår ESP:

Klicka på Verktyg >> Port och välj den som dyker upp när du ansluter den här kabeln.

Viktig:

Om du har problem med att ladda upp koden till din ESP, kontrollera de två menyerna först. Om porten inte är markerad med en bock, kommer Arduino -programvaran inte att kommunicera med den.

Steg 12: Lägga till bibliotek i Arduino IDE

Lägga till bibliotek till Arduino IDE
Lägga till bibliotek till Arduino IDE

Nu ska vi lägga till ett bibliotek som gör att vi kan testa vår Led Wall!

1- Klicka på Verktyg >> Hantera bibliotek.

2- I det övre högra hörnet söker du efter NeoPixelBus. Leta reda på "NeoPixelBus by Makuna", installera det (se bild)

Potentiella andra intressanta bibliotek: (krävs inte för denna handledning)

- NeoMatrix

- FastLed

- Artnet

- GFX

Steg 13: Första koden: Strandtest

Vår första kod är ett exempel från biblioteket.

Du kan antingen kopiera / klistra in koden nedan eller klicka på:

Arkiv >> Exempel >> Adafruit NeoPixelBus >> Strandtest

Var noga med att ändra din LED_PIN till den du använde för att fysiskt ansluta dina lysdioder. Vi använde 13 under hela den här handledningen.

Se också till att anpassa strängstorleken med variabeln LED_COUNT.

// Ett grundläggande vardagligt LED Striptest -program.

#include #ifdef _AVR_ #include // Krävs för 16 MHz Adafruit Trinket #endif // Vilken pin på Arduino är ansluten till NeoPixels? #define LED_PIN 13 // Hur många NeoPixels är anslutna till Arduino? #define LED_COUNT 500 // Declare our NeoPixel strip object: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Antal pixlar i NeoPixel -remsan // Argument 2 = Arduino -pinnummer (de flesta är giltiga) // Argument 3 = Pixel -flaggor, lägg ihop efter behov: // NEO_KHZ800 800 KHz bitström (de flesta NeoPixel -produkter m/ WS2812 -lysdioder) // NEO_KHZ400 400 KHz (klassiska 'v1' (inte v2) FLORA -pixlar, WS2811 -drivrutiner) // NEO_GRB Pixlar är anslutna för GRB -bitström (de flesta NeoPixel -produkter) // NEO_RGB -pixlar är anslutna för RGB -bitström (v1 FLORA -pixlar), inte v2) // NEO_RGBW Pixlar är anslutna för RGBW-bitström (NeoPixel RGBW-produkter) // setup () -funktion-körs en gång vid start -------------------- ------------ void setup () {// Dessa rader är specifikt för att stödja Adafruit Trinket 5V 16 MHz. // Vilket annat kort som helst kan du ta bort denna del (men ingen skada lämnas av den): #if definierad (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // SLUT för Trinket-specifik kod. strip.begin (); // INITIALISERA NeoPixel -bandobjekt (KRÄVS) strip.show (); // Stäng av alla pixlar ASAP strip.setBrightness (50); // Ställ in BRIGHTNESS på cirka 1/5 (max = 255)} // loop () -funktionen-körs upprepade gånger så länge kortet är på --------------- void loop () {// Fyll längs remsans längd i olika färger … colorWipe (strip. Color (255, 0, 0), 50); // Röd colorWipe (strip. Color (0, 255, 0), 50); // Grön colorWipe (strip. Color (0, 0, 255), 50); // Blå // Gör en teatereffekt i olika färger … theaterChase (strip. Color (127, 127, 127), 50); // Vit, halv ljusstyrka theaterChase (strip. Color (127, 0, 0), 50); // Röd, halv ljusstyrka theaterChase (strip. Color (0, 0, 127), 50); // Blå, halv ljusstyrka regnbåge (10); // Flödande regnbågscykel längs hela bandet theaterChaseRainbow (50); // Rainbow-förbättrad theaterChase-variant} // Vissa egna funktioner för att skapa animerade effekter ----------------- // Fyll remsepixlar en efter en med en färg. Remsan rensas INTE // först; allt kommer att täckas pixel för pixel. Skicka färg // (som ett enda "packat" 32-bitars värde, som du kan få genom att ringa // strip. Color (röd, grön, blå) som visas i loop () -funktionen ovan), // och en fördröjningstid (i millisekunder) mellan pixlar. void colorWipe (uint32_t color, int wait) {för (int i = 0; i strip.setPixelColor (i, color); // Ställ in pixelns färg (i RAM) strip.show (); // Uppdatera remsa för att matcha fördröjning (vänta); // Pausa ett ögonblick}} // Teater-markeringsstil-jaktljus. Skicka in en färg (32-bitars värde, // a la strip. Color (r, g, b) som nämnts ovan), och en fördröjningstid (i ms) // mellan bildrutor. void theaterChase (uint32_t färg, int vänta) {för (int a = 0; a <10; a ++) {// Upprepa 10 gånger … för (int b = 0; b <3; b ++) {// 'b' räknar från 0 till 2 … strip.clear (); // Ställ in alla pixlar i RAM till 0 (av) // 'c' räknar upp från 'b' till slutet av remsa i steg om 3 … för (int c = b; c strip.setPixelColor (c, färg); // Ställ in pixel 'c' till värde 'färg'} strip.show (); // Uppdatera remsa med fördröjning av nytt innehåll (vänta); // Pausa ett ögonblick}}} // Regnbågscykel längs hela remsan. Passera fördröjningstid (i ms) mellan bildrutor. void rainbow (int wait) {// Nyans för första pixeln kör 5 kompletta slingor genom färghjul. // Färghjulet har en räckvidd på 65536 men det är det OK om vi välter, så // bara räkna från 0 till 5*65536. Att lägga till 256 i firstPixelHue varje gång // betyder att vi gör 5*65536/256 = 1280 passerar genom denna yttre slinga: for (long firstPixelHue = 0; firstPixelHue <5*65536; firstPixelHue += 256) {for (int i = 0; I // Offset pixel nyans med ett belopp för att göra ett helt varv av // färghjulet (intervallet 65536) längs remsans längd // (strip.numPixels () steg): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()); // strip. ColorHSV () kan ta 1 eller 3 argument: en nyans (0 till 65535) eller // eventuellt lägga till mättnad och värde (ljusstyrka) (vardera 0 till 255). // Här använder vi bara en-argument-nyansvarianten. Resultatet // passeras genom strip.gamma32 () för att ge "sannare" färger // innan vi tilldelar varje pixel: strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue)));} strip.show (); // Uppdatera remsa med fördröjning av nytt innehåll (vänta); // Pausa ett ögonblick}} // Rainbow-förbättrad teatertält. Passera fördröjningstid (i ms) mellan bildrutor. void theaterChaseRainbow (int vänta) {i nt firstPixelHue = 0; // Första pixeln börjar med rött (nyans 0) för (int a = 0; a <30; a ++) {// Upprepa 30 gånger … för (int b = 0; b RGB strip.setPixelColor (c, färg); / / Ställ in pixeln 'c' till värdet 'color'} strip.show (); // Uppdatera remsan med nytt innehållsfördröjning (vänta); // Pausa ett ögonblick förstPixelHue += 65536 /90; // En cykel med färghjul över 90 bilder}}}

Steg 14: SHU -provkod

Image
Image

Vår kod aktiverar alla lysdioder en efter en för att se till att de fungerar:

// Detta exempel växlar mellan att visa 500 pixlar som röda

#includeconst uint16_t PixelCount = 500; // detta exempel förutsätter 4 pixlar, vilket gör det mindre kommer att orsaka ett fel const uint8_t PixelPin = 13; // se till att ställa in detta till rätt stift, ignorerat för Esp8266

#define colorMättnad 128 // tre elementpixlar, i olika ordning och hastighet

NeoPixelBus -remsa (PixelCount, PixelPin);

// NeoPixelBus -remsa (PixelCount, PixelPin); RgbColor röd (0, colorMättnad, 0); RgbColor green (colorSaturation, 0, 0); RgbColor blue (0, 0, colorMättnad); RgbColor white (färgmättnad); RgbColor black (0); HslColor hslRed (röd); HslColor hslGreen (grön); HslColor hslBlue (blå); HslColor hslWhite (vit); HslColor hslBlack (svart); void setup () {Serial.begin (115200) while (! Serial); // vänta på seriell bifogad Serial.println (); Serial.println ("Initierar …"); Serial.flush (); // detta återställer alla neopixlar till en avstängd remsa. Begin (); strip. Show (); Serial.println (); Serial.println ("Kör …"); } void loop () {delay (100); Serial.println ("Färger R, G, B, W …"); för (int i = 0; i <= 499; i ++) {// ställ in färgerna, // om de inte matchar i ordning måste du använda NeoGrbFeature -funktionsremsan. SetPixelColor (i, röd); strip. Show (); fördröjning (100); strip. SetPixelColor (i, hslRed); strip. Show (); fördröjning (100); }}

Steg 15: Ladda upp kod till ESP32

Viktig:

För att kunna ladda upp koden till en mikrokontroller måste den vara i programmeringsläge. De flesta gör detta automatiskt och allt du behöver göra är att klicka på uppladdning i programvaran.

Vår ESP32 kräver att du håller in programmeringsknappen medan koden skickas. Du måste också återställa den efter att koden laddats upp genom att trycka en gång på återställningsknappen.

Vår ESP32s programmeringsknapp finns till vänster, återställningsknappen till höger. Se din manual om du har en annan mikrokontroller.

Steg 16: Citat

Denna instruerbara gjordes med hjälp av följande självstudier:

randomnerdtutorials.com/installing-the-esp…

Används för att installera ESP32 i Arduino IDE.

Författare:

Nathaniel Barone Gabriel Castro

Redaktör:

Cedric Bleimling

Rekommenderad: