Sadržaj:

500 LED dioda za zid sa ESP32: 16 koraka
500 LED dioda za zid sa ESP32: 16 koraka

Video: 500 LED dioda za zid sa ESP32: 16 koraka

Video: 500 LED dioda za zid sa ESP32: 16 koraka
Video: Управляйте 10 выходными контактами или реле с помощью 10 кнопочных переключателей с 1 входным контактом Arduino ANPB-V2. 2024, Studeni
Anonim
500 LED dioda Zidne sa ESP32
500 LED dioda Zidne sa ESP32

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

Pribor
Pribor

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

Image
Image

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

Napajanje na ESP32S
Napajanje na ESP32S

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

Napajanje LED svjetlosnih traka
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

Arduino softver - dodavanje podrške za ESP32 - 1. korak
Arduino softver - dodavanje podrške za ESP32 - 1. korak
Arduino softver - dodavanje podrške za ESP32 - 1. korak
Arduino softver - dodavanje podrške za ESP32 - 1. korak

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

Arduino softver - dodavanje podrške za ESP32 - korak 2
Arduino softver - dodavanje podrške za ESP32 - korak 2
Arduino softver - dodavanje podrške za ESP32 - korak 2
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

Arduino softver - dodavanje podrške za ESP32 - korak 3
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

Dodavanje knjižnica u Arduino IDE
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

Image
Image

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: