Talaan ng mga Nilalaman:

500 LEDs Wall Na Sa ESP32: 16 Mga Hakbang
500 LEDs Wall Na Sa ESP32: 16 Mga Hakbang

Video: 500 LEDs Wall Na Sa ESP32: 16 Mga Hakbang

Video: 500 LEDs Wall Na Sa ESP32: 16 Mga Hakbang
Video: The Saga Has Ended - Tiny Apartment Final Steps 2024, Hulyo
Anonim
500 LEDs Wall Na May ESP32
500 LEDs Wall Na May ESP32

Kumusta kayong lahat! Sa pagtatapos ng tutorial na ito malalaman mo kung paano lumikha ng iyong sariling LED wall.

Ang tutorial na ito ay batay sa isang programa sa tag-init na inaalok sa Sacred Heart University.

Magsaya ka!

Mga gamit

Ang mga suplay na nakalista sa ibaba.

Hakbang 1: Mga Panustos

Mga gamit
Mga gamit

Magsimula tayo sa pamamagitan ng pagtipon ng lahat ng kailangan natin upang makumpleto ang aming Led Wall:

(Ang mga link ay nilikha noong 7/10/2019)

Arduino IDE Software

ESP32 Micro Controller

LED Pixel Light

Power Supply

Power Cord

Wire Stripping Tool

Breadboard Jumper Cables

Electrical wire

Hakbang 2: Pagtukoy sa Tamang Supply ng Kuryente para sa Iyong LedWall

Mayroong isang simpleng paraan ng matematika upang malaman kung aling mga supply ng kuryente ang pinakamahusay para sa iyong paggamit.

Gumagamit kami ng batas sa kapangyarihan ng Ohm: P = IxV (Power = Intensity x Boltahe)

Ang boltahe ay natutukoy ng aming mga leds: sa kasong ito 5V.

Ang intensidad ay nakasalalay sa hardware, ang isang solong Led ay gumagamit ng 30mA.

Ang bawat strip ng 50 Leds samakatuwid ay ubusin ang 50 x 30mA = 1250mA = 1.25A.

Samakatuwid ang aming 500 Led wall ay gumugugol ng 10 beses na (10 strips): 12.5A.

Ang paggamit ng kuryente ay 5V x 12.5A = 62.5W para sa Leds.

Siyempre, sa tuktok ng Leds kailangan mong account para sa ESP at bawat iba pang item ng iyong circuit.

Mayroon kaming 60A power supply, marami kaming higit sa kailangan namin.

Hakbang 3: Ang Power Cord

Image
Image

Ang aming supply ng kuryente ay mayroong mga konektor ng kawad. Kailangan naming iakma ang isang kurdon ng kuryente upang ikonekta ito sa isang 110V plug.

- Gupitin ang babaeng konektor mula sa kurdon ng kuryente. Panatilihin namin ang bahagi ng lalaki, kung hindi man ay kilala bilang NEMA 5-15P.

- Ihubad ang cable upang magkaroon ng halos 3mm ng tanso na nakikita sa lahat ng mga wire.

Narito ang isang mabilis na tutorial sa video kung paano mag-strip ng mga wire:

Hakbang 4: Pag-kable ng Upat ng Power Supply

Nagpapatakbo sa ESP32S
Nagpapatakbo sa ESP32S

Handa na kaming i-wire ang aming supply ng kuryente!

Palaging i-unplug ang suplay ng kuryente kahit kailan pa ito gumagana.

Kable

  • Ang itim na kawad (Phase) ay kumokonekta sa pin na 'L' na supply ng kuryente
  • Ang puting wire (Neutral) ay kumokonekta sa pin na 'N' na supply ng kuryente
  • Ang berdeng kawad ay kumokonekta sa pin na 'Ground' ng power supply

(Kung ang panloob na mga wire ng iyong kurdon ng kuryente ay hindi magkatulad na mga kulay tulad ng sa amin maging ligtas at tingnan ang mga iskema sa online.)

Pagsubok

I-plug ang kurdon ng kuryente sa computer sa anumang pinalakas na outlet. Ang berdeng LED sa power supply ay dapat na i-on.

Hakbang 5: Pagpapatakbo sa ESP32S

Ang pagtingin sa iyong ESP dapat mayroong mga label sa tabi ng lahat ng bawat pin. Kung hindi ito may label na maaari mong tingnan ang 'pinout' ng iyong indibidwal na online na online.

Gamit ang isang lalaki sa babae na breadboard jumper wire o isang electrical wire, kumonekta:

  • Ang '5V' ESP32S pin sa '+ V' ng power supply (orange sa larawan sa itaas)
  • Ang 'GND' ESP32S pin sa seksyong '-V' ng supply ng kuryente (itim sa larawan sa itaas)

(Sa ilang mga ESP ang pin na '5V' ay may label na 'VCC' sa halip, pareho silang nangangahulugang bagay.)

Mangyaring tandaan na ang iyong ESP ay maaaring magkaroon ng ibang 'pinout' kaysa sa ginagamit namin. Tulad nito maaari mong ikonekta ang iyong mga wire sa iba't ibang lokasyon kaysa sa larawan sa itaas. Hangga't kumokonekta ka sa mga tamang pin (5V & GND), ang pisikal na lokasyon sa board ay hindi mahalaga.

Ang TestingPlug sa iyong supply ng kuryente muli, at kung ang iyong ESP ay may isang tagapagpahiwatig na LED (karamihan ay gawin), ito ay magpapasindi upang ipahiwatig na ang kuryente ay ipinapadala sa ESP. Binabati kita!

Hakbang 6: Pagpapatakbo ng LED Light Strips

Pagpapatakbo ng LED Light Strips
Pagpapatakbo ng LED Light Strips

Paggamit ng mga wire sa kuryente:

- Ikonekta ang pulang kawad ng LED Light Strip sa V + sa power supply.

- Ikonekta ang asul na kawad ng LED Light Strip sa V- sa power supply.

Hakbang 7: Pagkonekta sa ESP32 sa mga LED Light Strips

Inatasan ng aming ESP32 ang driver ng WS2811 na konektado sa bawat isa na humantong sa kulay at ningning na kailangan nila. Upang magawa ito, ang aming ESP32 ay nangangailangan ng isang "data" na cable sa mga piraso.

Ang mga Leds strip ay may isang 3 konektor ng kawad:

- Pula: Kapangyarihan- Asul: Neutral- Puti: Data

Ikonekta natin ang White Led strip cable sa isang digital pin sa ESP. Mangyaring tandaan ang pin na numero ng PIN na kakailanganin naming piliin ito sa code sa paglaon. Isinaksak namin ang pin sa 13.

Hakbang 8: Paghahanda ng Computer: C2102 Driver

Ngayon na ang aming hardware ay wired, nais naming i-upload ang aming unang code upang subukan ito. Bilang default, ang Windows o MacOs ay hindi maaaring makipag-usap sa aming ESP32. Upang magawa ito, kailangan naming mag-download ng isang "driver" para sa chip ng komunikasyon ng USB USB: ang C2102.

Dapat i-download at mai-install ang driver na ito:

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

(Mga link hanggang 7/10/2019)

Hakbang 9: Arduino Software - Pagdaragdag ng Suporta ng ESP32 - Hakbang 1

Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 1
Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 1
Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 1
Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 1

Bago namin magamit ang aming ESP32 gamit ang Arduino software, kailangan naming tiyakin na ito ay kinikilala. Bilang default, ang Arduino software ay hindi maaaring mag-ipon ng code para sa aming ESP32, ayusin natin iyan:

Hakbang 1: Pagdaragdag ng mga board sa manager

1 - Mag-click sa Arduino ang opsyon na File >> Mga Kagustuhan

2- Sa patlang na "Mga Karagdagang URL ng Mga Tagapamahala ng Mga Board", kopyahin ang sumusunod na link:

Hakbang 10: Arduino Software - Pagdaragdag ng Suporta ng ESP32 - Hakbang 2

Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 2
Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 2
Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 2
Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 2

Ngayon na ang "Arduino software" ay "nakakaalam" ng higit pang mga board, i-install natin ang aming suporta sa ESP32

Hakbang 2: Pag-install ng suporta sa ESP32

1 - Sa tuktok na menu, piliin ang: Mga Tool >> Lupon >> Tagapangasiwa ng Mga Lupon

2 - lilitaw ang isang window. Gamitin ang box para sa paghahanap, na matatagpuan sa kanang sulok sa itaas, upang hanapin ang "ESP32".

3 - Hanapin ang ginawa ng espressif. I-install ito (Tingnan ang imahe)

Hakbang 11: Arduino Software - Pagdaragdag ng Suporta ng ESP32 - Hakbang 3

Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 3
Arduino Software - Pagdaragdag ng Suporta sa ESP32 - Hakbang 3

Ngayon na ang Arduino software ay maaaring makipag-usap sa aming ESP32, i-plug natin ito sa computer at i-verify na gumagana ang lahat.

1 - Siguraduhin nating nagtatrabaho tayo sa platform ng ESP32:

Mag-click sa Mga Tool >> Lupon >> Module ng ESP32 Dev

1- Siguraduhin natin na alam ng Arduino software kung paano makipag-usap sa aming ESP:

Mag-click sa Mga Tool >> Port at piliin ang isa na pops mula sa pag-plug sa cable na ito.

Mahalaga:

Kung mayroon kang anumang isyu sa pag-upload ng code sa iyong ESP, suriin muna ang dalawang mga menu. Kung ang port ay hindi napili na may isang marka ng tseke, kaysa ang Arduino software ay hindi makikipag-usap dito.

Hakbang 12: Pagdaragdag ng Mga Aklatan sa Arduino IDE

Pagdaragdag ng Mga Aklatan sa Arduino IDE
Pagdaragdag ng Mga Aklatan sa Arduino IDE

Ngayon ay magdaragdag kami ng isang silid-aklatan na magpapahintulot sa amin na subukan ang aming Led Wall!

1- Mag-click sa Mga Tool >> Pamahalaan ang Mga Aklatan.

2- Sa kanang sulok sa itaas, hanapin ang NeoPixelBus. Hanapin ang "NeoPixelBus ni Makuna", i-install ito (tingnan ang imahe)

Potensyal na iba pang mga kagiliw-giliw na Aklatan: (Hindi kinakailangan para sa tutorial na ito)

- NeoMatrix

- FastLed

- Artnet

- GFX

Hakbang 13: Unang Code: Pagsubok sa Strand

Ang aming unang code ay isang halimbawa mula sa Library.

Maaari mong kopyahin / i-paste ang code sa ibaba o mag-click sa:

File >> Mga Halimbawa >> Adafruit NeoPixelBus >> Strandtest

Mangyaring tiyaking baguhin ang iyong LED_PIN sa ginamit mo upang pisikal na ikonekta ang iyong mga leds. Gumamit kami ng 13 sa buong tutorial na ito.

Tiyaking din na iakma ang laki ng strand sa variable na LED_COUNT.

// Isang pangunahing araw-araw na programa ng LED Striptest.

# isama ang # ifdef _AVR_ #include // Kinakailangan para sa 16 MHz Adafruit Trinket #endif // Aling pin sa Arduino ang nakakonekta sa NeoPixels? #define LED_PIN 13 // Ilan ang NeoPixels na nakakabit sa Arduino? #define LED_COUNT 500 // Ideklara ang aming NeoPixel strip object: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Bilang ng mga pixel sa NeoPixel strip // Argument 2 = Arduino pin number (karamihan ay may bisa) // Argument 3 = Mga flag na uri ng Pixel, idagdag nang sama-sama kung kinakailangan: // NEO_KHZ800 800 KHz bitstream (karamihan sa mga produktong NeoPixel w / WS2812 LEDs) // NEO_KHZ400 400 KHz (klasikong 'v1' (hindi v2) FLORA pixel, mga driver ng WS2811) // Ang NEO_GRB Pixels ay naka-wire para sa GRB bitstream (karamihan sa mga produktong NeoPixel) // Ang NEO_RGB Pixels ay naka-wire para sa RGB bitstream (v1 FLORA pixel, hindi v2) // NEO_RGBW Ang mga pixel ay naka-wire para sa RGBW bitstream (mga produkto ng NeoPixel RGBW) // function na (setup) na tumatakbo nang isang beses sa pagsisimula -------------------- ------------ void setup () {// Ang mga linya na ito ay partikular na upang suportahan ang Adafruit Trinket 5V 16 MHz. // Anumang iba pang board, maaari mong alisin ang bahaging ito (ngunit walang pinsala na iwan ito): # Kung tinukoy (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END ng code na tukoy sa Trinket. strip.begin (); // INITIALIZE NeoPixel strip object (REQUIRED) strip.show (); // OFF OFF all pixel ASAP strip.setBrightness (50); // Itakda ang KARAPATAN sa halos 1/5 (max = 255)} // loop () na pagpapaandar - paulit-ulit na tumatakbo hangga't ang board ay nasa --------------- void loop () {// Punan ang haba ng strip sa iba't ibang kulay … colorWipe (strip. Color (255, 0, 0), 50); // Red colorWipe (strip. Color (0, 255, 0), 50); // Green colorWipe (strip. Kulay (0, 0, 255), 50); // Blue // Gumawa ng isang teatro na epekto sa iba't ibang kulay … teatroChase (strip. Color (127, 127, 127), 50); // White, kalahating ningning na teatroChase (strip. Kulay (127, 0, 0), 50); // Pula, kalahating ningning na teatroChase (strip. Kulay (0, 0, 127), 50); // Blue, kalahating ningning bahaghari (10); // Flow rainbow cycle kasama ang buong strip teatroChaseRainbow (50); // Iba't ibang teatro na pinaghusay ng Rainbow} // Ilang mga pag-andar namin para sa paglikha ng mga animated na epekto ----------------- // Punan ang mga strip pixel nang sunud-sunod na may isang kulay. Ang Strip ay HINDI na-clear // una; anupaman ay sasaklaw ng pixel ng pixel. Ipasa ang kulay // (bilang isang solong 'naka-pack' na 32-bit na halaga, na maaari mong makuha sa pamamagitan ng pagtawag sa // strip. Kulay (pula, berde, asul) tulad ng ipinakita sa pag-andar ng loop () sa itaas), // at isang antala ang oras (sa milliseconds) sa pagitan ng mga pixel. void colorWipe (uint32_t color, int wait) {for (int i = 0; i strip.setPixelColor (i, color); // Itakda ang kulay ng pixel (sa RAM) strip.show (); // Update strip upang maitugma ang pagkaantala (maghintay); // I-pause sandali}} // Mga ilaw sa paghabol sa istilo ng teatro-marquee. Ipasa sa isang kulay (32-bit na halaga, // a la strip. Kulay (r, g, b) tulad ng nabanggit sa itaas), at isang oras ng pagkaantala (sa ms) // sa pagitan ng mga frame. void theatreChase (uint32_t color, int wait) {for (int a = 0; a <10; a ++) {// Repeat 10 beses … para sa (int b = 0; b <3; b ++) {// 'b' ay binibilang mula 0 hanggang 2… strip.clear (); // Itakda ang lahat ng mga pixel sa RAM sa 0 (off) // 'c' bilang mula sa 'b' hanggang sa dulo ng i-strip sa mga hakbang ng 3 … para sa (int c = b; c strip.setPixelColor (c, kulay); // Itakda ang pixel 'c' upang pahalagahan ang 'kulay'} strip.show (); // I-update ang strip na may pagkaantala ng mga bagong nilalaman (maghintay); // I-pause sandali}}} // Rainbow cycle kasama ang buong strip. Ipasa ang oras ng pagkaantala (sa ms) sa pagitan ng mga frame. walang bisa ang bahaghari (int wait) {// Hue ng unang pixel ay nagpapatakbo ng 5 kumpletong mga loop sa pamamagitan ng color wheel. // Kulay ng gulong ay may saklaw na 65536 ngunit ito ay OK kung gumulong tayo, kaya // bilangin lamang mula 0 hanggang 5 * 65536. Ang pagdaragdag ng 256 sa firstPixelHue bawat oras // nangangahulugang gagawa kami ng 5 * 65536/256 = 1280 na dumadaan sa panlabas na loop na ito: para sa (long firstPixelHue = 0; firstPixelHue <5 * 65536; firstPixelHue + = 256) {para sa (int i = 0; I // Offset pixel hue ng isang halaga upang makagawa ng isang buong rebolusyon ng // color wheel (saklaw ng 65536) kasama ang haba ng strip // (strip.numPixels () mga hakbang): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()); // strip. ColorHSV () ay maaaring tumagal ng 1 o 3 mga argumento: isang kulay (0 hanggang 65535) o // opsyonal na magdagdag ng saturation at halaga (ningning) (bawat 0 hanggang 255). // Narito ginagamit namin ang variant na kulay ng solong-argumento. Ang resulta // ay naipasa sa strip.gamma32 () upang magbigay ng mga kulay na 'truer' // bago italaga sa bawat pixel: strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue)));} strip.show (); // Update strip na may mga bagong nilalaman na pagkaantala (maghintay); // I-pause nang sandali}} // Marquee ng teatro na pinahusay ng Rainbow. Ipasa ang oras ng pagkaantala (sa ms) sa pagitan ng mga frame. void theatreChaseRainbow (int wait) {i nt firstPixelHue = 0; // Ang unang pixel ay nagsisimula sa pula (kulay 0) para sa (int a = 0; a <30; a ++) {// Ulitin ng 30 beses … para sa (int b = 0; b RGB strip.setPixelColor (c, kulay); / / Itakda ang pixel 'c' sa halagang 'kulay'} strip.show (); // Update strip na may bagong nilalaman na pagkaantala (maghintay); // I-pause muna sandaliPixelHue + = 65536/90; // Isang pag-ikot ng kulay ng gulong higit sa 90 mga frame}}}

Hakbang 14: Sample Code ng SHU

Image
Image

Ang aming code ay binubuksan isa-isa ang lahat ng Leds upang matiyak na gumagana ang mga ito:

// Ang halimbawang ito ay mag-ikot sa pagitan ng pagpapakita ng 500 mga pixel bilang Pula

#includeconst uint16_t PixelCount = 500; // ang halimbawang ito ay ipinapalagay na 4 na mga pixel, ang paggawa ng mas maliit na ito ay magdudulot ng isang pagkabigo const uint8_t PixelPin = 13; // tiyaking itakda ito sa tamang pin, hindi pinansin para sa Esp8266

#define colorSaturation 128 // three element pixel, sa magkakaibang pagkakasunud-sunod at bilis

NeoPixelBus strip (PixelCount, PixelPin);

// NeoPixelBus strip (PixelCount, PixelPin); RgbColor pula (0, colorSaturation, 0); RgbColor berde (colorSaturation, 0, 0); RgbColor blue (0, 0, colorSaturation); RgbColor puti (colorSaturation); RgbColor itim (0); HslColor hslRed (pula); HslColor hslGreen (berde); HslColor hslBlue (asul); HslColor hslWhite (puti); HslColor hslBlack (itim); void setup () {Serial.begin (115200) habang (! Serial); // wait for serial attach Serial.println (); Serial.println ("Initializing…"); Serial.flush (); // ito ay nagre-reset ng lahat ng mga neopixel sa isang off state strip. Simula (); strip. Ipakita (); Serial.println (); Serial.println ("Tumatakbo …"); } void loop () {pagkaantala (100); Serial.println ("Mga Kulay R, G, B, W…"); para sa (int i = 0; i <= 499; i ++) {// itakda ang mga kulay, // kung hindi sila tumutugma sa pagkakasunud-sunod, kailangan mong gamitin ang NeoGrbFeature strip na tampok. SetPixelColor (i, pula); strip. Show (); pagkaantala (100); strip. SetPixelColor (i, hslRed); strip. Ipakita (); pagkaantala (100); }}

Hakbang 15: Pag-upload ng Code sa ESP32

Mahalaga:

Upang makapag-upload ng code sa anumang micro controller, kailangang nasa mode ng pagprograma. Ang pinaka-gawin ito awtomatiko at ang kailangan mo lang gawin ay mag-click sa upload sa software.

Hinihiling sa iyo ng aming ESP32 na hawakan ang pindutan ng programa habang ipinapadala ang code. Kailangan mo ring i-reset ito pagkatapos ma-upload ang code sa pamamagitan ng pagpindot nang isang beses ang pindutan ng pag-reset.

Ang pindutan ng programa ng aming ESP32 ay matatagpuan sa kaliwa, ang pindutan ng pag-reset sa kanan. Mangyaring sumangguni sa iyong manu-manong kung mayroon kang ibang micro-controller.

Hakbang 16: Mga Pagsipi

Ang itinuturo na ito ay ginawa sa tulong ng mga sumusunod na tutorial:

randomnerdtutorials.com/installing-the-esp…

Ginamit upang mai-install ang ESP32 sa Arduino IDE.

Mga May-akda:

Nathaniel BaroneGabriel Castro

Editor:

Cedric Bleimling

Inirerekumendang: