Sadržaj:
- Supplies
- Korak 1: Potrošni materijal
- 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čunara: 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 biblioteka u Arduino IDE
- Korak 13: Prvi kod: Test pramena
- Korak 14: Uzorak koda SHU
- Korak 15: Prijenos koda na ESP32
- Korak 16: Navodi
Video: 500 LED dioda za zid sa ESP32: 16 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Zdravo svima! Do kraja ovog vodiča znat ćete kako stvoriti vlastiti LED zid.
Ovaj vodič je zasnovan na ljetnom programu koji se nudi na Sveučilištu Sacred Heart.
Zabavi se!
Supplies
Potrošni materijal naveden u nastavku.
Korak 1: Potrošni materijal
Počnimo sa prikupljanjem svega što nam je potrebno da dovršimo naš LED zid:
(Linkovi su stvoreni 10.07.2019.)
Arduino IDE softver
ESP32 mikrokontroler
LED Pixel Light
Napajanje
Kabel za napajanje
Alat za skidanje žice
Kablovi za prespajanje
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 vašu upotrebu.
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 LED -a morate uzeti u obzir ESP i svaku drugu stavku vašeg kola.
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 konektor 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 napajanje 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) povezuje se s 'N' pinom napajanja
- Zelena žica spaja se na pin za uzemljenje napajanja
(Ako unutrašnje žice vašeg kabela za napajanje nisu iste boje kao naše, budite sigurni i potražite sheme na mreži.)
Testiranje
Uključite kabl za napajanje računara 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 pina bi trebale biti naljepnice. Ako nije označeno, možete potražiti 'pinout' vašeg pojedinačnog ESP -a na mreži.
Koristeći kratkospojnu žicu s muške na žensku ploču ili električnu žicu, spojite:
- Pin '5V' ESP32S na '+V' napajanja (narandžasto na gornjoj fotografiji)
- Pin 'GND' ESP32S na odjeljku '-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. Na taj način svoje žice možda povezujete na drugu lokaciju nego na gornjoj slici. Sve dok se povezujete na ispravne pinove (5 V i GND), fizička lokacija na ploči nije bitna.
Ponovo uključite napajanje, a ako vaš ESP ima LED indikator (većina to radi), zasvijetlit će kako bi označio da se napajanje šalje ESP -u. Čestitamo!
Korak 6: Napajanje LED svjetlosnih traka
Upotreba električnih žica:
- Priključite 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 u boji i svjetlini koja im je potrebna. Da bi to učinili, našem ESP32 je potreban "podatkovni" kabel za trake.
Led trake dolaze s trožilnim konektorom:
- Crveno: Napajanje- Plavo: Neutralno- Bijelo: Podaci
Spojimo White Led strip kabel na digitalni pin na ESP -u. Molimo zapamtite PIN broj koji smo odabrali jer ćemo ga kasnije morati odabrati u kodu. Naš smo priključili na pin 13.
Korak 8: Priprema računara: C2102 upravljački program
Sada kada je naš hardver ožičen, želimo učitati naš prvi kôd da 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:
(Linkovi 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 Arduino softver "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 koji se nalazi 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:
Kliknite na Tools> Board >> ESP32 Dev Module
1- Uvjerimo se da Arduino softver zna komunicirati s našim ESP-om:
Pritisnite Alati >> Priključak i odaberite onaj koji će se pojaviti nakon uključivanja ovog kabela.
Bitan:
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 biblioteka u Arduino IDE
Sada ćemo dodati biblioteku koja će nam omogućiti testiranje našeg Led zida!
1- Kliknite na Alati >> Upravljanje bibliotekama.
2- U gornjem desnom kutu potražite NeoPixelBus. Pronađite "NeoPixelBus by Makuna", instalirajte ga (pogledajte sliku)
Potencijalne druge zanimljive biblioteke: (Nije potrebno za ovaj vodič)
- NeoMatrix
- FastLed
- Artnet
- GFX
Korak 13: Prvi kod: Test pramena
Naš prvi kôd je primjer iz biblioteke.
Možete kopirati / zalijepiti donji kôd ili kliknuti na:
Datoteka >> Primjeri >> Adafruit NeoPixelBus >> Strandtest
Molimo vas da promijenite LED_PIN na onaj koji ste koristili za fizičko povezivanje LED dioda. Koristili smo 13 u ovom vodiču.
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 važeća) // Argument 3 = Zastavice tipa piksela, zbrajajte se po potrebi: // NEO_KHZ800 800 KHz bitstream (većina NeoPixel proizvoda w/ WS2812 LED diode) // 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 podataka (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): #if defined (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // KRAJ specifičnog koda za Trinket. strip.begin (); // INICIALIZE NeoPixel strip objekt (OBAVEZNO) strip.show (); // ISKLJUČI sve piksele ASAP strip.setBrightness (50); // Postavite BRIGHTNESS na približno 1/5 (max = 255)} // funkcija loop ()-radi više puta sve dok je ploča na --------------- void loop () {// Popunite dužinu trake u različitim bojama … colorWipe (strip. Color (255, 0, 0), 50); // Crvena colorWipe (strip. Color (0, 255, 0), 50); // Zelena colorWipe (strip. Color (0, 0, 255), 50); // Plava // Učinite kazališni efekt u različitim bojama … theatreChase (strip. Color (127, 127, 127), 50); // Bijelo, pola svjetline TheaterChase (strip. Color (127, 0, 0), 50); // Crveno, pola svjetline TheaterChase (strip. Color (0, 0, 127), 50); // Plava, pola svjetline duga (10); // Ciklus duge koji teče duž cijele trake TheaterChaseRainbow (50); // Rainbow teatarska varijanta TheaterChase} // Neke vlastite funkcije za stvaranje animiranih efekata ----------------- // Popunite piksele trake jedan za drugim bojom. Traka se NE briše // prva; bilo šta će biti pokriveno piksel po piksel. Proslijedi u boji // (kao jednu 'zapakiranu' 32-bitnu vrijednost, koju možete dobiti pozivanjem // strip. Color (crvena, zelena, plava) kao što je prikazano u funkciji loop () iznad), // 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); // Postavljanje boje piksela (u RAM -u) strip.show (); // Ažuriranje trake tako da odgovara kašnjenju ((wait); // Pauzirajte na trenutak}} // Potraga za svjetlima u stilu kazališta. Proslijedite u boji (32-bitna vrijednost, // a la strip. Boja (r, g, b) kao što je gore spomenuto), i vrijeme kašnjenja (u ms) // između kadrova. void theatreChase (uint32_t boja, int čekanje) {for (int a = 0; a <10; a ++) {// Ponovite 10 puta… for (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); // Postavite piksel 'c' na vrijednost 'color'} strip.show (); // Ažurirajte traku sa kašnjenjem novog sadržaja (čekanje); // Pauza na trenutak}}} // Rainbow ciklus duž cijele trake. 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ž dužine 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 želji 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žuriranje trake sa kašnjenjem novog sadržaja (čekanje); // Pauza na trenutak}} // Rainbow poboljšana kino dvorana. 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žurirajte traku sa 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 diode jedan po jedan kako bi se uvjerio da rade:
// Ovaj primjer će se prikazivati između 500 piksela u crvenom
#includeconst uint16_t PixelCount = 500; // ovaj primjer pretpostavlja 4 piksela, što će ga smanjiti uzrokovati grešku const uint8_t PixelPin = 13; // obavezno postavite 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 red (0, colorSaturation, 0); RgbColor green (colorSaturation, 0, 0); RgbColor blue (0, 0, colorSaturation); RgbColor bijela (colorSaturation); RgbColor crna (0); HslColor hslRed (crveno); HslColor hslGreen (zelena); HslColor hslBlue (plava); HslColor hslWhite (bijela); HslColor hslBlack (crno); void setup () {Serial.begin (115200) while (! Serial); // čekamo serijsko prilaganje Serial.println (); Serial.println ("Inicijalizacija …"); Serial.flush (); // ovo resetuje sve neopiksele na traku za 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 po redu, trebate koristiti 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
Bitan:
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 tipku za programiranje dok se šalje kôd. Također ga morate resetirati nakon što se kôd učita pritiskom na dugme za poništavanje.
Tipka za programiranje našeg ESP32 nalazi se s lijeve strane, tipka za resetiranje s desne strane. Molimo vas da pogledate vaš priručnik ako imate drugi mikrokontroler.
Korak 16: Navodi
Ovo uputstvo je napravljeno 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čuje se:
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 robot je dizajniran za rješavanje jednostavnog labirinta. U konkurenciji smo imali dva labirinta i robota uspio ih je identificirati. Bilo koje druge promjene u labirintu mogu zahtijevati promjenu
Interaktivni zid od LED 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 ekran koristeći Arduino i 3D štampane 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 predstavljam dodir animiranog zida na izložbi kulture vašeg brenda, aktivnosti izložbenih dvorana i na drugim mjestima, postavljajući takvu kontrolnu ploču kako bi vaš zid bio zabavan
Interaktivni radarski zid: 5 koraka
Interaktivni radarski zid: Interaktivni radarski zid jedan je od multi-touch sistema. Baziran je na tehnologiji računarskog vida, prepoznaje i prepoznaje kretanje nečijeg prsta po projekcionom području (prozori ili stolovi). Sa softverom za kontrolu stava prirodnim pokretima
3D štampani modularni LED zid: 6 koraka (sa slikama)
3D štampani modularni LED zid: Ovako možete vrlo jednostavno napraviti LED zid koristeći 3D štampane 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 sistem. Svaki modul je dimenzija 30x30 cm i