Tartalomjegyzék:

500 LED fal ESP32 segítségével: 16 lépés
500 LED fal ESP32 segítségével: 16 lépés

Videó: 500 LED fal ESP32 segítségével: 16 lépés

Videó: 500 LED fal ESP32 segítségével: 16 lépés
Videó: #5 Аналоговый ввод FLProg на ЖК-дисплее I2C | ESP32 NodeMCU |Визуальное программирование для Arduino 2024, Július
Anonim
500 LED fal ESP32 -vel
500 LED fal ESP32 -vel

Sziasztok! Ennek az oktatóanyagnak a végére tudni fogja, hogyan készíthet saját LED -falát.

Ez az oktatóanyag a Sacred Heart Egyetemen kínált nyári programon alapul.

Érezd jól magad!

Kellékek

Az alább felsorolt kellékek.

1. lépés: Kellékek

Kellékek
Kellékek

Kezdjük azzal, hogy összeszedünk mindent, amire szükségünk van a Led Wall elkészítéséhez:

(A linkek 2019.07.10 -én készültek)

Arduino IDE szoftver

ESP32 mikrovezérlő

LED Pixel Light

Tápegység

Tápkábel

Huzalcsupaszító eszköz

Breadboard jumper kábelek

Elektromos vezeték

2. lépés: A megfelelő tápegység meghatározása a LedWall számára

Van egy egyszerű matematikai módja annak, hogy megtudja, melyik tápegység a legjobb az Ön számára.

Az Ohm teljesítménytörvényét használjuk: P = IxV (teljesítmény = intenzitás x feszültség)

A feszültséget ledjeink határozzák meg: ebben az esetben 5V.

Az intenzitás a hardvertől függ, egyetlen LED 30 mA -t fogyaszt.

Ezért minden 50 LED -es csík 50 x 30mA = 1250mA = 1,25A -t fogyaszt.

Az 500 LED -es falunk tehát ennek tízszeresét (10 szalag) fogyasztja: 12,5A.

Az energiafogyasztás ekkor 5V x 12,5A = 62,5W a LED -eknél.

Természetesen a LED -eken felül számolni kell az ESP -vel és az áramkör minden más elemével.

Van egy 60A -es tápegységünk, bőven több van a kelleténél.

3. lépés: A tápkábel

Image
Image

Tápegységünk vezetékes csatlakozókkal érkezik. A tápkábelt hozzá kell igazítanunk a 110V -os csatlakozóhoz való csatlakoztatáshoz.

- Vágja le a csatlakozó dugót a tápkábelről. Megtartjuk a férfi részt, más néven NEMA 5-15P.

- Csupaszítsa le a kábelt, hogy körülbelül 3 mm réz legyen látható minden vezetéken.

Itt van egy gyors videó bemutató a vezetékek eltávolításáról:

4. lépés: A tápegység bekötése

Tápellátás az ESP32S -hez
Tápellátás az ESP32S -hez

Most készen állunk a tápegység bekötésére!

Mindig húzza ki a hálózati csatlakozót, ha valaha is dolgozik rajta.

Vezeték

  • A fekete vezeték (fázis) csatlakozik a tápegység L -érintkezőjéhez
  • A fehér vezeték (semleges) a tápegység „N” érintkezőjéhez csatlakozik
  • A zöld vezeték a tápegység földelt csatlakozójához csatlakozik

(Ha a tápkábel belső vezetékei nem azonos színűek, mint a miénk, akkor biztonságban van, és nézze meg a rajzokat az interneten.)

Tesztelés

Csatlakoztassa a számítógép tápkábelét bármilyen hálózati aljzathoz. A tápegység zöld LED -jének be kell kapcsolnia.

5. lépés: Tápellátás az ESP32S -hez

Az ESP -t tekintve minden tű mellett címkéket kell elhelyezni. Ha nincs megjelölve, online megkeresheti az egyéni ESP „pinoutját”.

Csatlakoztassa a férfi -női kenyérpult jumper vezetéket vagy elektromos vezetéket:

  • Az „5 V” ESP32S érintkező a tápegység „+V” pontjához (narancssárga a fenti képen)
  • A „GND” ESP32S csap a tápegység „-V” részéhez (fekete a fenti képen)

(Néhány ESP -n az "5V" érintkezőt "VCC" jelzi, mindkettő ugyanazt jelenti.)

Kérjük, vegye figyelembe, hogy az Ön ESP -jének eltérő „kivezetése” lehet, mint amit mi használunk. Így előfordulhat, hogy a vezetékeket más helyre csatlakoztatja, mint a fenti képen. Mindaddig, amíg a megfelelő tűkhöz csatlakozik (5V és GND), a fizikai hely a táblán nem számít.

Csatlakoztassa újra a tápegységet, és ha az ESP rendelkezik LED -es kijelzővel (a legtöbb esetben), akkor világítani kezd, jelezve, hogy áramot küld az ESP -nek. Gratulálunk!

6. lépés: A LED fénycsíkok bekapcsolása

A LED fénycsíkok áramellátása
A LED fénycsíkok áramellátása

Elektromos vezetékek használata:

- Csatlakoztassa a LED fénycsík piros vezetékét a tápegység V+ -ához.

- Csatlakoztassa a LED fénycsík kék vezetékét a tápegység V- csatlakozójához.

7. lépés: Az ESP32 csatlakoztatása a LED fénycsíkokhoz

Az ESP32 utasítja az egyes ledekhez csatlakoztatott WS2811 illesztőprogramot a szükséges színnek és fényerőnek. Ehhez az ESP32 -nek szüksége van egy "adat" kábelre a csíkokhoz.

A LED szalagok 3 vezetékes csatlakozóval vannak ellátva:

- Piros: Teljesítmény- Kék: Semleges- Fehér: Adatok

Csatlakoztassuk a White Led szalagkábelt az ESP digitális tűjéhez. Ne feledje, hogy a kiválasztott PIN -kódot később kell kiválasztanunk a kódban. Mi a 13 -as tűhöz csatlakoztattuk.

8. lépés: A számítógép előkészítése: C2102 illesztőprogram

Most, hogy a hardverünk be van kötve, fel akarjuk tölteni az első kódunkat annak tesztelésére. Alapértelmezés szerint a Windows vagy a MacO nem tud kommunikálni az ESP32 -vel. Ehhez le kell töltenünk egy "illesztőprogramot" az ESP USB kommunikációs chiphez: a C2102.

Ezt az illesztőprogramot le kell tölteni és telepíteni:

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

(Linkek 2019.07.10.)

9. lépés: Arduino szoftver - ESP32 támogatás hozzáadása - 1. lépés

Arduino szoftver - ESP32 támogatás hozzáadása - 1. lépés
Arduino szoftver - ESP32 támogatás hozzáadása - 1. lépés
Arduino szoftver - ESP32 támogatás hozzáadása - 1. lépés
Arduino szoftver - ESP32 támogatás hozzáadása - 1. lépés

Mielőtt ESP32 -t használhatnánk az Arduino szoftverrel, meg kell győződnünk arról, hogy a rendszer felismeri. Alapértelmezés szerint az Arduino szoftver nem tud kódot összeállítani az ESP32 -hez, javítsuk ki:

1. lépés: Táblák hozzáadása a kezelőhöz

1 - Kattintson az Arduino -ban a Fájl >> Beállítások lehetőségre

2- A "További táblák kezelői URL-ek" mezőbe másolja a következő linket:

10. lépés: Arduino szoftver - ESP32 támogatás hozzáadása - 2. lépés

Arduino szoftver - ESP32 támogatás hozzáadása - 2. lépés
Arduino szoftver - ESP32 támogatás hozzáadása - 2. lépés
Arduino szoftver - ESP32 támogatás hozzáadása - 2. lépés
Arduino szoftver - ESP32 támogatás hozzáadása - 2. lépés

Most, hogy az Arduino szoftver több lapot "ismer", telepítsük az ESP32 támogatást

2. lépés: Az ESP32 támogatás telepítése

1 - A felső menüben válassza: Eszközök >> Tábla >> Fórumkezelő

2 - Megjelenik egy ablak. Használja a jobb felső sarokban található keresőmezőt az "ESP32" megkereséséhez.

3 - Keresse meg az espressif által készített terméket. Telepítse. (Lásd a képet)

11. lépés: Arduino szoftver - ESP32 támogatás hozzáadása - 3. lépés

Arduino szoftver - ESP32 támogatás hozzáadása - 3. lépés
Arduino szoftver - ESP32 támogatás hozzáadása - 3. lépés

Most, hogy az Arduino szoftver képes kommunikálni az ESP32 -vel, csatlakoztassuk a számítógéphez, és ellenőrizzük, hogy minden működik -e.

1 - Győződjünk meg arról, hogy az ESP32 platformon dolgozunk:

Kattintson az Eszközök >> Tábla >> ESP32 Dev Module elemre

1- Győződjünk meg arról, hogy az Arduino szoftver tudja, hogyan kell kommunikálni az ESP-vel:

Kattintson az Eszközök >> Port elemre, és válassza ki azt, amelyik a kábel csatlakoztatásakor megjelenik.

Fontos:

Ha bármilyen problémája van a kód feltöltésével az ESP -be, először ellenőrizze ezt a két menüt. Ha a port nincs bejelölve pipa, akkor az Arduino szoftver nem kommunikál vele.

12. lépés: Könyvtárak hozzáadása az Arduino IDE -hez

Könyvtárak hozzáadása az Arduino IDE -hez
Könyvtárak hozzáadása az Arduino IDE -hez

Most hozzáadunk egy könyvtárat, amely lehetővé teszi a LED -fal tesztelését!

1- Kattintson az Eszközök >> Könyvtárak kezelése elemre.

2- A jobb felső sarokban keresse meg a NeoPixelBus parancsot. Keresse meg a "NeoPixelBus by Makuna" alkalmazást, telepítse (lásd a képet)

Lehetséges egyéb érdekes könyvtárak: (nem szükséges ehhez az oktatóanyaghoz)

- NeoMatrix

- FastLed

- Artnet

- GFX

13. lépés: Első kód: szál teszt

Első kódunk egy példa a Könyvtárból.

Másolhatja / beillesztheti az alábbi kódot, vagy kattintson a gombra:

Fájl >> Példák >> Adafruit NeoPixelBus >> Strandtest

Kérjük, győződjön meg arról, hogy a LED_PIN -t a LED -ek fizikai csatlakoztatásához használtra cserélte. Ebben az oktatóanyagban 13 -at használtunk.

Ügyeljen arra is, hogy a LED_COUNT változóval módosítsa a szál méretét.

// Alapvető mindennapi LED Striptest program.

#include #ifdef _AVR_ #include // 16 MHz -es Adafruit csecsebecséhez szükséges #endif // Az Arduino melyik tűje csatlakozik a NeoPixels -hez? #define LED_PIN 13 // Hány NeoPixel kapcsolódik az Arduino -hoz? #define LED_COUNT 500 // NeoPixel szalag objektumunk deklarálása: Adafruit_NeoPixel szalag (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = A pixelek száma a NeoPixel szalagon // Argument 2 = Arduino pin number (legtöbb érvényes) // Argument 3 = Pixel típusú zászlók, szükség szerint összeadva: // NEO_KHZ800 800 KHz bitfolyam (a legtöbb NeoPixel termék WS2812 LED -ek) // NEO_KHZ400 400 KHz (klasszikus 'v1' (nem v2) FLORA képpontok, WS2811 illesztőprogramok) // NEO_GRB Pixelek GRB bitfolyamhoz vannak kötve (a legtöbb NeoPixel termék) // A NEO_RGB képpontok RGB bitfolyamhoz vannak kötve (v1 FLORA képpontok), nem v2) // NEO_RGBW A Pixelek be vannak kötve az RGBW bitfolyamhoz (NeoPixel RGBW termékek) // setup () függvény-indításkor egyszer fut -------------------- ------------ void setup () {// Ezek a sorok kifejezetten az Adafruit Trinket 5V 16 MHz támogatását szolgálják. // Bármely más tábla eltávolíthatja ezt a részt (de nem árt, ha elhagyja): #if define (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END a Trinket-specifikus kód. strip.begin (); // INICIALIZÁLÁS NeoPixel szalag objektum (SZÜKSÉGES) strip.show (); // Kapcsolja ki az összes pixelt ASAP strip.setBrightness (50); // A FÉNYESSÉG beállítása körülbelül 1/5 (max = 255)} // loop () függvény-ismétlődően fut, amíg a tábla be van kapcsolva --------------- void loop () {// Töltse ki a csík hosszát különböző színekben … colorWipe (strip. Color (255, 0, 0), 50); // Red colorWipe (strip. Color (0, 255, 0), 50); // Zöld szín Törlés (csík. Szín (0, 0, 255), 50); // Kék // Végezzen színházi effektust különböző színekben… TheaterChase (strip. Color (127, 127, 127), 50); // Fehér, félig fényerő színházChase (strip. Color (127, 0, 0), 50); // Piros, félig fényerő színházChase (strip. Color (0, 0, 127), 50); // Kék, félig fényerő szivárvány (10); // Folyó szivárványciklus az egész szalagszínházbanChaseRainbow (50); // Szivárvány által továbbfejlesztett színházChase változat} // Néhány saját funkciónk animált effektek létrehozásához ----------------- // Töltse fel a csík pixeleit egymás után egy színnel. A csík NEM törlődik // először; ott bármi képpontonként lesz fedve. Színes átvitel // (egyetlen „csomagolt” 32 bites értékként, amelyet a // szalag meghívásával kaphat meg. Szín (piros, zöld, kék) a fenti loop () függvényben látható módon), // és késleltetési idő (ezredmásodpercben) a képpontok között. void colorWipe (uint32_t color, int wait) {for (int i = 0; i strip.setPixelColor (i, color); // Állítsa be a pixel színét (RAM -ban) strip.show (); // A csík frissítése a késleltetéshez (várjon); // Álljon meg egy pillanatra}}} // Színházi sátor stílusú üldöző fények. Adja át színben (32 bites érték, // a la csík. Szín (r, g, b) a fent említettek szerint), és késleltetési idő (ms -ban) // a keretek között. void TheaterChase (uint32_t color, int wait) {for (int a = 0; a <10; a ++) {// Ismételje meg 10 -szer… az (int b = 0; b <3; b ++) {// 'b' 0 -tól 2 -ig számít… strip.clear (); // Állítsa a RAM -ban lévő összes pixelt 0 -ra (ki) // 'c' számoljon fel 'b' -től a végéig csík 3 lépésben… for (int c = b; c strip.setPixelColor (c, color); // Állítsa a "c" pixelt "color" értékre} strip.show (); // A csík frissítése új tartalom késleltetéssel (várj); // Szünet egy pillanatra}}}} // Szivárványciklus az egész csík mentén. Késleltetési idő (ms -ban) halad a képkockák között. void rainbow (int wait) {// Az első képpont árnyalata 5 teljes cikluson keresztül fut // A színkör 65536 tartományban van, de ez OK, ha felborulunk, tehát // csak számoljunk 0 -tól 5*65536 -ig. 256 hozzáadása az elsőPixelHue -hoz minden alkalommal // azt jelenti, hogy 5*65536/256 = 1280 áthaladunk ezen a külső hurkon: for (long firstPixelHue = 0; firstPixelHue <5*65536; firstPixelHue += 256) {for (int i = 0; I. i * 65536L / strip.numPixels ()); // strip. ColorHSV () 1 vagy 3 argumentumot tartalmazhat: színárnyalat (0–65535) vagy // opcionálisan telítettség és érték (fényerő) hozzáadása (mindegyik 0–255). // Itt csak az egyetlen argumentum színárnyalatot használjuk. Az eredmény // a strip.gamma32 () -on keresztül kerül átadásra, hogy "igazabb" színeket biztosítson //, mielőtt minden pixelhez hozzárendelné: strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue))));} strip.show (); // A csík frissítése új tartalom késleltetéssel (várakozás); // Szünet egy pillanatra}} // Szivárvány által továbbfejlesztett színházi sátor. Késleltetési idő (in ms) a keretek között. void theatreChaseRainbow (int wait) {i nt firstPixelHue = 0; // Az első képpont pirossal kezdődik (0 színárnyalat) a (int a = 0; a <30; a ++) {// Ismételje meg 30 alkalommal… esetén (int b = 0; b RGB strip.setPixelColor (c, szín); / / Állítsa a "c" pixelt a "color"} értékre} strip.show (); // A csík frissítése új tartalom késleltetéssel (várakozás); // Először szüneteltesse egy pillanatra PixelHue += 65536 /90; // Egy színkör ciklus több mint 90 kép}}}

14. lépés: SHU mintakód

Image
Image

A kódunk egyenként bekapcsolja az összes LED -et, hogy megbizonyosodjon azok működéséről:

// Ez a példa ciklikusan változik az 500 képpont vörös színű megjelenítése között

#includeconst uint16_t PixelCount = 500; // ez a példa 4 képpontot tételez fel, kicsinyítése meghibásodást okoz konst uint8_t PixelPin = 13; // győződjön meg róla, hogy ezt a megfelelő tűre állította, figyelmen kívül hagyva az Esp8266 esetében

#define colorSaturation 128 // három elem pixel, különböző sorrendben és sebességgel

NeoPixelBus szalag (PixelCount, PixelPin);

// NeoPixelBus szalag (PixelCount, PixelPin); RgbColor red (0, colorSaturation, 0); RgbSzín zöld (színtelítettség, 0, 0); RgbColor blue (0, 0, colorSaturation); RgbSzín fehér (színtelítettség); RgbSzín fekete (0); HslColor hslRed (piros); HslColor hslGreen (zöld); HslColor hslBlue (kék); HslColor hslWhite (fehér); HslColor hslBlack (fekete); void setup () {Serial.begin (115200) while (! Serial); // várjon a soros csatolásra Serial.println (); Serial.println ("Inicializálás …"); Serial.flush (); // ez visszaállítja az összes neopixelt egy kikapcsolt állapotú sávra. Begin (); csík. Show (); Sorozat.println (); Serial.println ("Fut …"); } void loop () {delay (100); Serial.println ("R, G, B, W színek …"); for (int i = 0; i <= 499; i ++) {// állítsa be a színeket, // ha nem egyeznek sorrendben, akkor a NeoGrbFeature funkciósávot kell használni. SetPixelColor (i, piros); strip. Show (); késleltetés (100); strip. SetPixelColor (i, hslRed); csík. Show (); késleltetés (100); }}

15. lépés: A kód feltöltése az ESP32 -be

Fontos:

Ahhoz, hogy bármilyen mikrovezérlőre fel lehessen tölteni a kódot, programozási módban kell lennie. A legtöbb ezt automatikusan elvégzi, és mindössze annyit kell tennie, hogy rákattint a feltöltésre a szoftverben.

Az ESP32 megköveteli, hogy tartsa lenyomva a programozó gombot, amíg a kódot elküldi. A kód feltöltése után is vissza kell állítania, a reset gomb egyszeri megnyomásával.

Az ESP32 programozógombja a bal oldalon, a reset gomb a jobb oldalon található. Kérjük, olvassa el a kézikönyvet, ha rendelkezik másik mikrovezérlővel.

16. lépés: Idézetek

Ez az oktatható az alábbi oktatóanyagok segítségével készült:

randomnerdtutorials.com/installing-the-esp…

Az ESP32 telepítésére szolgál az Arduino IDE -be.

Szerzői:

Nathaniel Barone, Gabriel Castro

Szerkesztő:

Cedric Bleimling

Ajánlott: