Sadržaj:
- Pribor
- Korak 1: Opskrba
- Korak 2: Određivanje pravog izvora napajanja za vaš LedWall
- Korak 3: Kabel za napajanje
- Korak 4: Ožičenje napajanja
- Korak 5: Napajanje na ESP32S
- Korak 6: Napajanje LED svjetlosnih traka
- Korak 7: Spajanje ESP32 na LED svjetlosne trake
- Korak 8: Priprema računala: C2102 upravljački program
- Korak 9: Arduino softver - dodavanje podrške za ESP32 - korak 1
- Korak 10: Arduino softver - dodavanje podrške za ESP32 - korak 2
- Korak 11: Arduino softver - dodavanje podrške za ESP32 - korak 3
- Korak 12: Dodavanje knjižnica u Arduino IDE
- Korak 13: Prvi kod: Ispitivanje niti
- Korak 14: Uzorak koda SHU
- Korak 15: Prijenos koda na ESP32
- Korak 16: Citati
Video: 500 LED dioda za zid sa ESP32: 16 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Pozdrav svima! Do kraja ovog vodiča znat ćete kako stvoriti vlastiti LED zid.
Ovaj se vodič temelji na ljetnom programu koji se nudi na Sveučilištu Sacred Heart.
Zabavi se!
Pribor
Potrošni materijal dolje naveden.
Korak 1: Opskrba
Počnimo skupljajući sve što nam je potrebno za dovršenje našeg Led zida:
(Linkovi su stvoreni 10.07.2019.)
Arduino IDE softver
ESP32 mikrokontroler
LED svjetlo piksela
Napajanje
Kabel za napajanje
Alat za skidanje žice
Kablovi za skakače od umrežene ploče
Električna žica
Korak 2: Određivanje pravog izvora napajanja za vaš LedWall
Postoji jednostavan matematički način da saznate koje je napajanje najbolje za vas.
Koristimo Ohmov zakon snage: P = IxV (Snaga = Intenzitet x Napon)
Napon određuju naše LED diode: u ovom slučaju 5V.
Intenzitet ovisi o hardveru, jedan LED troši 30mA.
Svaka traka od 50 LED -a stoga troši 50 x 30mA = 1250mA = 1.25A.
Naš 500 Led zid stoga troši 10 puta više (10 traka): 12,5A.
Potrošnja energije tada iznosi 5V x 12,5A = 62,5W za LED diode.
Naravno, povrh Leda morate uzeti u obzir ESP i svaku drugu stavku u vašem krugu.
Imamo napajanje od 60A, imamo mnogo više nego što nam treba.
Korak 3: Kabel za napajanje
Naše napajanje dolazi s žičanim konektorima. Moramo prilagoditi kabel za napajanje da ga spojimo na utikač od 110 V.
- Odrežite ženski priključak s kabela za napajanje. Zadržat ćemo muški dio, inače poznat kao NEMA 5-15P.
- Skinite kabel tako da na svim žicama bude vidljivo oko 3 mm bakra.
Evo kratkog video vodiča o tome kako skinuti žice:
Korak 4: Ožičenje napajanja
Sada smo spremni za uključivanje napajanja!
Uvijek isključite napajanje iz struje kad god radite na njemu.
Ožičenje
- Crna žica (faza) spaja se na "L" pin napajanja
- Bijela žica (neutralna) spaja se na "N" pin napajanja
- Zelena žica spaja se na pin za uzemljenje napajanja
(Ako unutarnje žice vašeg kabela za napajanje nisu iste boje kao naše, budite sigurni i potražite sheme na mreži.)
Testiranje
Priključite kabel za napajanje računala u bilo koju utičnicu. Zelena LED dioda na napajanju bi se trebala uključiti.
Korak 5: Napajanje na ESP32S
Gledajući vaš ESP, pored svakog pin -a trebale bi biti oznake. Ako nije označen, možete na internetu pronaći "pinout" vašeg pojedinačnog ESP -a.
Koristeći kratkospojnu žicu s muške na žensku ploču ili električnu žicu, spojite:
- Pin "5V" ESP32S na "+V" napajanja (narančasta na gornjoj fotografiji)
- Pin 'GND' ESP32S na odjeljak '-V' napajanja (crno na gornjoj fotografiji)
(Na nekim ESP -ovima pin '5V' je označen kao 'VCC', oboje znače istu stvar.)
Imajte na umu da vaš ESP može imati drugačiji "pinout" od onog koji koristimo. Kao što je moguće, svoje žice spajate na drugo mjesto nego na gornjoj slici. Sve dok se spajate na ispravne pinove (5 V i GND), fizičko mjesto na ploči nije važno.
Ponovno uključite napajanje i ako vaš ESP ima LED indikator (većina ima), zasvijetlit će kako bi označio da se napajanje šalje ESP -u. Čestitamo!
Korak 6: Napajanje LED svjetlosnih traka
Korištenje električnih žica:
- Spojite crvenu žicu LED svjetlosne trake na V+ na napajanju.
- Spojite plavu žicu LED svjetlosne trake na V- na izvoru napajanja.
Korak 7: Spajanje ESP32 na LED svjetlosne trake
Naš ESP32 upućuje upravljački program WS2811 spojen na svaku LED diodu s potrebnom bojom i svjetlinom. Da bi to učinili, našem ESP32 treba "podatkovni" kabel na trake.
Led trake dolaze s 3 -žičnim priključkom:
- Crveno: Napajanje- Plavo: Neutralno- Bijelo: Podaci
Spojimo White Led strip kabel na digitalni pin na ESP -u. Molimo zapamtite odabrani PIN broj jer ćemo ga kasnije morati odabrati u kodu. Naš smo priključili na pin 13.
Korak 8: Priprema računala: C2102 upravljački program
Sada kada je naš hardver ožičen, želimo učitati svoj prvi kôd kako bismo ga testirali. Prema zadanim postavkama, Windows ili MacO ne mogu komunicirati s našim ESP32. Da bismo to učinili, moramo preuzeti "upravljački program" za ESP USB komunikacijski čip: C2102.
Ovaj upravljački program morate preuzeti i instalirati:
- Windows 10: https://www.silabs.com/documents/public/software/C…- Windows 7/8/8.1: https://www.silabs.com/documents/public/software/C…- Mac:
(Veze od 10.7.2019.)
Korak 9: Arduino softver - dodavanje podrške za ESP32 - korak 1
Prije nego što možemo koristiti naš ESP32 sa softverom Arduino, moramo se uvjeriti da je prepoznat. Prema zadanim postavkama, softver Arduino ne može sastaviti kôd za naš ESP32, ispravimo to:
Korak 1: Dodavanje ploča upravitelju
1 - Pritisnite u Arduinu opciju Datoteka >> Postavke
2- U polje "Dodatni URL-ovi upravitelja ploča" kopirajte sljedeću vezu:
Korak 10: Arduino softver - dodavanje podrške za ESP32 - korak 2
Sada kada softver Arduino "zna" više ploča, instalirajmo našu ESP32 podršku
Korak 2: Instaliranje ESP32 podrške
1 - U gornjem izborniku odaberite: Alati >> Ploča >> Upravitelj ploča
2 - Pojavit će se prozor. Pomoću okvira za pretraživanje u gornjem desnom kutu pronađite "ESP32".
3 - Pronađite onu koju je napravio espressif. Instalirajte ga. (Vidi sliku)
Korak 11: Arduino softver - dodavanje podrške za ESP32 - korak 3
Sada kada softver Arduino može komunicirati s našim ESP32, priključimo ga na računalo i provjerimo radi li sve.
1 - Uvjerimo se da radimo na platformi ESP32:
Pritisnite Alati >> Ploča >> ESP32 Dev Modul
1- Uvjerimo se da softver Arduino zna komunicirati s našim ESP-om:
Pritisnite Alati >> Priključak i odaberite onaj koji će se pojaviti nakon uključivanja ovog kabela.
Važno:
Ako imate problema s učitavanjem koda na svoj ESP, prvo provjerite ta dva izbornika. Ako port nije označen kvačicom, softver Arduino neće komunicirati s njim.
Korak 12: Dodavanje knjižnica u Arduino IDE
Sada ćemo dodati knjižnicu koja će nam omogućiti testiranje našeg Led zida!
1- Kliknite na Alati >> Upravljanje knjižnicama.
2- U gornjem desnom kutu potražite NeoPixelBus. Pronađite "NeoPixelBus by Makuna", instalirajte ga (pogledajte sliku)
Potencijalne druge zanimljive knjižnice: (Nije potrebno za ovaj vodič)
- NeoMatrix
- FastLed
- Artnet
- GFX
Korak 13: Prvi kod: Ispitivanje niti
Naš prvi kôd je primjer iz Knjižnice.
Možete kopirati / zalijepiti donji kôd ili kliknuti na:
Datoteka >> Primjeri >> Adafruit NeoPixelBus >> Strandtest
Promijenite svoj LED_PIN na onaj koji ste koristili za fizičko povezivanje LED dioda. U ovom smo vodiču koristili 13.
Također prilagodite veličinu niti s varijablom LED_COUNT.
// Osnovni svakodnevni program LED Striptest.
#include #ifdef _AVR_ #include // Potrebno za 16 MHz Adafruit Trinket #endif // Koji je pin na Arduinu spojen na NeoPixele? #define LED_PIN 13 // Koliko je NeoPixela priključeno na Arduino? #define LED_COUNT 500 // Deklarirajte naš NeoPixel strip objekt: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Broj piksela u NeoPixel traci // Argument 2 = Arduino broj pina (većina je ispravna) // Argument 3 = Zastavice tipa piksela, zbrajajte se prema potrebi: // NEO_KHZ800 800 KHz bitstream (većina NeoPixel proizvoda w/ WS2812 LED) // NEO_KHZ400 400 KHz (klasični 'v1' (ne v2) FLORA pikseli, upravljački programi WS2811) // NEO_GRB Pikseli su ožičeni za GRB bitstream (većina proizvoda NeoPixel) // NEO_RGB Pikseli su ožičeni za RGB bitstream (v1 FLORA piksela, ne v2) // NEO_RGBW Pikseli su ožičeni za RGBW tok bitova (NeoPixel RGBW proizvodi) // funkcija setup ()-pokreće se jednom pri pokretanju -------------------- ------------ void setup () {// Ove linije posebno podržavaju Adafruit Trinket 5V 16 MHz. // Bilo koju drugu ploču, možete ukloniti ovaj dio (ali nema štete ako ga ostavite): #ako je definirano (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // KRAJ koda specifičnog za Trinket. strip.begin (); // INICIALIZE NeoPixel strip objekt (OBAVEZNO) strip.show (); // ISKLJUČI sve piksele ASAP strip.setBrightness (50); // Postavite BRIGHTNESS na otprilike 1/5 (max = 255)} // funkcija loop ()-radi više puta sve dok je ploča na --------------- void loop () {// Ispunite duljinu trake u raznim bojama … colorWipe (strip. Color (255, 0, 0), 50); // Crvena bojaWipe (strip. Color (0, 255, 0), 50); // Zelena bojaWipe (strip. Color (0, 0, 255), 50); // Plava // Učinite kazališni efekt u različitim bojama … theatreChase (strip. Color (127, 127, 127), 50); // Bijela, pola svjetline TheaterChase (strip. Color (127, 0, 0), 50); // Crvena, pola svjetline TheaterChase (strip. Color (0, 0, 127), 50); // Plava, pola svjetline duga (10); // Ciklus duge koji teče duž cijelog strip kazalištaChaseRainbow (50); // Rainbow bowling theatreChase varijanta} // Neke vlastite funkcije za stvaranje animiranih efekata ----------------- // Ispunite piksele trake jedan za drugim bojom. Traka se NE briše // prva; sve što je tamo bit će pokriveno piksel po piksel. Proslijedi u boji // (kao jednu 'zapakiranu' 32-bitnu vrijednost, koju možete dobiti pozivom // strip. Color (crvena, zelena, plava) kao što je prikazano u funkciji loop () gore), // i vrijeme kašnjenja (u milisekundama) između piksela. void colorWipe (uint32_t boja, int čekanje) {for (int i = 0; i strip.setPixelColor (i, boja); // Postavi boju piksela (u RAM -u) strip.show (); // Ažuriraj traku tako da odgovara kašnjenju ((pričekajte); // Pauzirajte na trenutak}} // Potraga za svjetlima u stilu kazališta. Proslijedite u boji (32-bitna vrijednost, // a la strip. Boja (r, g, b) kako je gore spomenuto), i vrijeme kašnjenja (u ms) // između okvira. void theatreChase (uint32_t boja, int čekanje) {for (int a = 0; a <10; a ++) {// Ponovite 10 puta … za (int b = 0; b <3; b ++) {// 'b' broji od 0 do 2 … strip.clear (); // Postavi sve piksele u RAM -u na 0 (isključeno) // 'c' odbrojava od 'b' do kraja strip u koracima od 3… for (int c = b; c strip.setPixelColor (c, boja); // Postavi piksel 'c' na vrijednost 'color'} strip.show (); // Ažuriraj traku s kašnjenjem novog sadržaja (pričekajte); // Pauzirajte na trenutak}}} // Rainbow ciklus duž cijele trake. Prođite vrijeme kašnjenja (u ms) između okvira. void rainbow (int wait) {// Nijansa prvog piksela prolazi 5 kompletnih petlji kotačić u boji. // Kotač u boji ima raspon 65536, ali je U redu ako se prevrnemo, pa // samo brojimo od 0 do 5*65536. Dodavanjem 256 u firstPixelHue svaki put // znači da ćemo napraviti 5*65536/256 = 1280 prolaza kroz ovu vanjsku petlju: for (long firstPixelHue = 0; firstPixelHue <5*65536; firstPixelHue += 256) {for (int i = 0; I // Pomicanje nijanse piksela za iznos za jedan potpuni zaokret // kotačića u boji (raspon 65536) duž duljine trake // (strip.numPixels () koraci): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()); // strip. ColorHSV () može uzeti 1 ili 3 argumenta: nijansu (0 do 65535) ili // po izboru dodati zasićenost i vrijednost (svjetlinu) (svaki od 0 do 255). // Ovdje koristimo samo varijantu nijanse s jednim argumentom. Rezultat // se prosljeđuje kroz strip.gamma32 () za pružanje 'istinitijih' boja // prije dodjeljivanja svakom pikselu: strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue)));} strip.show (); // Ažuriraj traku s kašnjenjem novog sadržaja (čekanje); // Pauzirajte na trenutak}} // Rainbow poboljšani kazališni okvir. Prođite vrijeme kašnjenja (u ms) između okvira. void theatreChaseRainbow (int wait) {i nt firstPixelHue = 0; // Prvi piksel počinje crveno (nijansa 0) za (int a = 0; a <30; a ++) {// Ponoviti 30 puta … za (int b = 0; b RGB strip.setPixelColor (c, boja); / / Postavite piksel 'c' na vrijednost 'color'} strip.show (); // Ažuriraj traku s kašnjenjem novog sadržaja (čekanje); // Prvo pauzirajte na trenutakPixelHue += 65536 /90; // Jedan ciklus kotačića u boji preko 90 sličica}}}
Korak 14: Uzorak koda SHU
Naš kôd uključuje sve LED -ove jedan po jedan kako bi se uvjerio da rade:
// U ovom primjeru prikazat će se 500 piksela u crvenom
#includeconst uint16_t PixelCount = 500; // ovaj primjer pretpostavlja 4 piksela, što će ga smanjiti uzrokovati neuspjeh const uint8_t PixelPin = 13; // svakako postavite ovo na ispravni pin, zanemareno za Esp8266
#define colorSaturation 128 // tri elementa piksela, različitim redoslijedom i brzinama
NeoPixelBus traka (PixelCount, PixelPin);
// NeoPixelBus traka (PixelCount, PixelPin); RgbColor crvena (0, colorSaturation, 0); RgbBoja zelena (colorSaturation, 0, 0); RgbColor blue (0, 0, colorSaturation); RgbColor bijela (colorSaturation); RgbColor crna (0); HslColor hslRed (crvena); HslBoja hslZelena (zelena); HslColor hslBlue (plava); HslBoja hslBjela (bijela); HslColor hslBlack (crno); void setup () {Serial.begin (115200) while (! Serial); // čekamo serijsko prilaganje Serial.println (); Serial.println ("Inicijalizacija …"); Serial.flush (); // ovo resetira sve neopiksele na isključeno stanje. Begin (); strip. Show (); Serial.println (); Serial.println ("Trčanje …"); } void loop () {delay (100); Serial.println ("Boje R, G, B, W …"); for (int i = 0; i <= 499; i ++) {// postavite boje, // ako se ne podudaraju redom, trebate upotrijebiti NeoGrbFeature feature strip. SetPixelColor (i, crveno); strip. Show (); kašnjenje (100); strip. SetPixelColor (i, hslRed); strip. Show (); kašnjenje (100); }}
Korak 15: Prijenos koda na ESP32
Važno:
Da biste mogli učitati kôd na bilo koji mikro kontroler, on mora biti u načinu programiranja. To morate učiniti automatski i sve što trebate učiniti je kliknuti na upload u softveru.
Naš ESP32 zahtijeva da držite gumb za programiranje dok se kôd šalje. Također ga morate poništiti nakon učitavanja koda pritiskom na tipku za poništavanje.
Gumb za programiranje našeg ESP32 nalazi se s lijeve strane, gumb za resetiranje s desne strane. Molimo vas da pogledate vaš priručnik ako imate drugi mikrokontroler.
Korak 16: Citati
Ovo uputstvo napravljeno je uz pomoć sljedećih vodiča:
randomnerdtutorials.com/installing-the-esp…
Koristi se za instaliranje ESP32 u Arduino IDE.
Autori:
Nathaniel BaroneGabriel Castro
Urednik:
Cedric Bleimling
Preporučeni:
Arduino - Robot za rješavanje labirinta (mikro miš) Robot koji prati zid: 6 koraka (sa slikama)
Arduino | Robot za rješavanje labirinta (MicroMouse) Zidni robot: Dobro došli, ja sam Isaac i ovo je moj prvi robot "Striker v1.0". Ovaj je robot dizajniran za rješavanje jednostavnog labirinta. Na natjecanju smo imali dva labirinta i robota uspio ih je identificirati. Sve druge promjene u labirintu mogu zahtijevati promjenu
Interaktivni LED zid od pločica (lakše nego što izgleda): 7 koraka (sa slikama)
Interaktivni zid od LED pločica (lakše nego što izgleda): U ovom projektu izgradio sam interaktivni LED zidni zaslon koristeći Arduino i 3D tiskane dijelove. Inspiracija za ovaj projekt djelomično je došla od Nanoleaf pločica. Htio sam smisliti vlastitu verziju koja je ne samo pristupačnija, već i mo
Interaktivni zid za projekciju na dodir: 6 koraka
Interaktivni zid za projekciju na dodir: Danas vam donosim dodir animiranog zida na izložbi kulture vaše robne marke, aktivnosti izložbenih dvorana i na drugim mjestima, postavite takvu upravljačku ploču kako bi vaš zid bio zabavan
3D ispisani modularni LED zid: 6 koraka (sa slikama)
3D tiskani modularni LED zid: Ovako možete vrlo jednostavno izraditi LED zid koristeći 3D tiskane module, 12 mm WS2812 LED svjetla i 38 mm kugle za ping-pong. Međutim, izrada mehaničke konstrukcije bila je vrlo komplicirana. Umjesto toga dizajnirao sam 3D modularni sustav. Svaki modul je 30x30 cm i
Zid koji odbija zvuk/prigušuje zid s plakatom: 5 koraka
Zvuk koji odbija zvuk/prigušuje zid s posterboarda: Ovo je wozn iz Rooftop Ridicule -a i dobrodošli u moju prvu instrukciju bez struje, ali naravno naravno jako puno o zvuku. Pjena za prigušivanje zvuka nije samo skupa, ali ako pokrijete svaki zid u njoj, možda ćete napraviti sobu " premrlom. &