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, Novembar
Anonim
500 LED dioda Zidne sa ESP32
500 LED dioda Zidne sa ESP32

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

Supplies
Supplies

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

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 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

Napajanje na ESP32S
Napajanje na ESP32S

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

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

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 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

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:

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

Dodavanje biblioteka u Arduino IDE
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

Image
Image

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: