INHOUDSOPGAWE:

500 LED's muur met ESP32: 16 stappe
500 LED's muur met ESP32: 16 stappe

Video: 500 LED's muur met ESP32: 16 stappe

Video: 500 LED's muur met ESP32: 16 stappe
Video: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, Julie
Anonim
500 LED's muur met ESP32
500 LED's muur met ESP32

Haai almal! Aan die einde van hierdie handleiding weet u hoe u u eie LED -muur kan maak.

Hierdie tutoriaal is gebaseer op 'n somerprogram wat aan die Sacred Heart University aangebied word.

Hê pret!

Voorrade

Voorrade hieronder gelys.

Stap 1: Voorrade

Voorrade
Voorrade

Kom ons begin deur alles bymekaar te maak wat ons nodig het om ons Led Wall te voltooi:

(Skakels is op 7/10/2019 geskep)

Arduino IDE sagteware

ESP32 mikrobeheerder

LED Pixel Light

Kragtoevoer

Krag draad

Gereedskap vir draadstroop

Broodbord springkabels

Elektriese draad

Stap 2: Bepaal die regte kragbron vir u LedWall

Daar is 'n eenvoudige wiskundige manier om uit te vind watter kragtoevoer die beste vir u gebruik is.

Ons gebruik Ohm se kragwet: P = IxV (Krag = Intensiteit x Spanning)

Spanning word bepaal deur ons LED's: in hierdie geval 5V.

Intensiteit hang af van die hardeware, 'n enkele Led verbruik 30mA.

Elke strook van 50 LED's verbruik dus 50 x 30mA = 1250mA = 1,25A.

Ons muur van 500 LED verbruik dus 10 keer soveel (10 stroke): 12,5A.

Die kragverbruik is dan 5V x 12.5A = 62.5W vir die Leds.

U moet natuurlik bo en behalwe die Leds rekening hou met die ESP en elke ander item in u kring.

Ons het 'n 60A -kragtoevoer, ons het baie meer as wat ons nodig het.

Stap 3: Die netsnoer

Image
Image

Ons kragtoevoer word voorsien van draadverbindings. Ons moet 'n netsnoer aanpas om dit aan 'n 110V -aansluiting te koppel.

- Sny die vroulike aansluiting van die netsnoer af. Ons behou die manlike deel, andersins bekend as NEMA 5-15P.

- Trek die kabel af sodat ongeveer 3 mm koper op alle drade sigbaar is.

Hier is 'n vinnige video -handleiding oor hoe om drade te strook:

Stap 4: Koppel die kragtoevoer aan

Skakel na die ESP32S
Skakel na die ESP32S

Nou is ons gereed om ons kragtoevoer aan te sluit!

Ontkoppel altyd die kragtoevoer wanneer u daaraan werk.

Bedrading

  • Die swart draad (fase) maak aansluiting by die 'L' -pen van die kragtoevoer
  • Die wit draad (neutraal) sluit aan op die 'N' pen van die kragtoevoer
  • Die groen draad maak aansluiting by die 'Ground' pen van die kragtoevoer

(As die binnedrade van u netsnoer nie dieselfde kleur as ons s'n het nie, moet u die skemas aanlyn opspoor.)

Toets

Steek die rekenaar se netsnoer in 'n elektriese aansluiting. Die groen LED op die kragtoevoer moet aanskakel.

Stap 5: Skakel na die ESP32S

As u na u ESP kyk, moet daar etikette langs elke pin wees. As dit nie gemerk is nie, kan u die 'pinout' van u individuele ESP aanlyn soek.

Verbind 'n manlike tot vroulike broodplankdraad of 'n elektriese draad:

  • Die '5V' ESP32S -pen aan die '+V' van die kragtoevoer (oranje op die foto hierbo)
  • Die 'GND' ESP32S-pen aan die '-V' -gedeelte van die kragtoevoer (swart op die foto hierbo)

(Op sommige ESP's word die '5V' -pen in plaas daarvan as' VCC 'aangedui, dit beteken albei dieselfde.)

Let daarop dat u ESP 'n ander 'pinout' kan hê as die wat ons gebruik. As gevolg hiervan kan u u drade aansluit op 'n ander plek as op die foto hierbo. Solank u aan die regte penne koppel (5V & GND), die fisiese ligging op die bord maak nie saak nie.

Toets weer u kragbron, en as u ESP 'n LED -aanwyser het (die meeste doen dit), sal dit brand om aan te dui dat die krag na die ESP gestuur word. Baie geluk!

Stap 6: Skakel die LED -ligstroke aan

Voed die LED -ligstroke
Voed die LED -ligstroke

Gebruik elektriese drade:

- Koppel die rooi draad van die LED Light Strip aan V+ op die kragtoevoer.

- Koppel die blou draad van die LED Light Strip aan die V- op die kragtoevoer.

Stap 7: Koppel die ESP32 aan die LED Light Strips

Ons ESP32 gee aan die WS2811 -bestuurder wat aan elke led gekoppel is, die kleur en helderheid wat hulle nodig het. Die ESP32 benodig 'n "data" -kabel na die stroke.

Die Leds -stroke het 'n 3 -draads aansluiting:

- Rooi: Krag- Blou: Neutraal- Wit: Data

Kom ons koppel die White Led -strookkabel aan 'n digitale pen op die ESP. Onthou asseblief die gekose PIN -nommer, aangesien ons dit later in die kode sal moet kies.

Stap 8: Voorbereiding van die rekenaar: C2102 -bestuurder

Noudat ons hardeware bedraad is, wil ons ons eerste kode oplaai om dit te toets. Standaard kan Windows of MacO's nie met ons ESP32 kommunikeer nie. Om dit te kan doen, moet ons 'n 'driver' vir die ESP USB -kommunikasie -chip aflaai: die C2102.

Hierdie bestuurder moet afgelaai en geïnstalleer word:

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

(Skakels vanaf 7/10/2019)

Stap 9: Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 1

Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 1
Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 1
Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 1
Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 1

Voordat ons ons ESP32 met die Arduino -sagteware kan gebruik, moet ons seker maak dat dit herken word. Standaard kan die Arduino -sagteware nie kode vir ons ESP32 saamstel nie, laat ons dit regstel:

Stap 1: Voeg borde by die bestuurder

1 - Klik in die Arduino op die opsie File >> Preferences

2- Kopieer die volgende skakel in die veld 'Bykomende bestuurders-URL's':

Stap 10: Arduino -sagteware - Voeg ESP32 -ondersteuning by - stap 2

Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 2
Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 2
Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 2
Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 2

Noudat die Arduino -sagteware meer borde "ken", laat ons ons ESP32 -ondersteuning installeer

Stap 2: Installeer die ESP32 -ondersteuning

1 - Kies in die boonste spyskaart: Tools >> Board >> Boards Manager

2 - 'n Venster verskyn. Gebruik die soekkassie in die regter boonste hoek om "ESP32" te vind.

3 - Soek die een wat deur espressif gemaak is. Installeer dit. (Sien prent)

Stap 11: Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 3

Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 3
Arduino -sagteware - Voeg ESP32 -ondersteuning by - Stap 3

Noudat die Arduino -sagteware met ons ESP32 kan kommunikeer, moet ons dit aan die rekenaar koppel en seker maak dat alles werk.

1 - Laat ons seker maak dat ons op die ESP32 -platform werk:

Klik op Tools >> Board >> ESP32 Dev Module

1- Laat ons seker maak dat die Arduino-sagteware weet hoe om met ons ESP te kommunikeer:

Klik op Tools >> Port en kies die een wat verskyn wanneer u hierdie kabel aansluit.

Belangrik:

As u probleme ondervind met die oplaai van die kode na u ESP, kyk dan eers na die twee spyskaarte. As die poort nie met 'n vinkje gekies is nie, kommunikeer die Arduino -sagteware daarmee nie.

Stap 12: Voeg biblioteke by die Arduino IDE

Voeg biblioteke by die Arduino IDE
Voeg biblioteke by die Arduino IDE

Nou gaan ons 'n biblioteek byvoeg waarmee ons ons Led Wall kan toets!

1- Klik op Tools >> Bestuur biblioteke.

2- Soek in die regter boonste hoek na NeoPixelBus. Soek "NeoPixelBus by Makuna", installeer dit (sien prent)

Potensiële ander interessante biblioteke: (nie nodig vir hierdie tutoriaal nie)

- NeoMatrix

- FastLed

- Artnet

- GFX

Stap 13: Eerste kode: Strandtoets

Ons eerste kode is 'n voorbeeld uit die biblioteek.

U kan die kode hieronder kopieer / plak, of klik op:

Lêer >> Voorbeelde >> Adafruit NeoPixelBus >> Strandtest

Maak seker dat u u LED_PIN verander na die een wat u gebruik het om u LED's fisies aan te sluit. Ons het 13 in hierdie tutoriaal gebruik.

Maak ook seker dat u die grootte van die draad aanpas met die veranderlike LED_COUNT.

// 'n Basiese daaglikse LED -strooiprogram.

#include #ifdef _AVR_ #include // Vereis vir 16 MHz Adafruit Trinket #endif // Watter pen op die Arduino is gekoppel aan die NeoPixels? #define LED_PIN 13 // Hoeveel NeoPixels is aan die Arduino gekoppel? #define LED_COUNT 500 // Declare our NeoPixel strip object: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Aantal pixels in NeoPixel -strook // Argument 2 = Arduino -speldnommer (die meeste is geldig) // Argument 3 = Pixel -tipe vlae, voeg by indien nodig: // NEO_KHZ800 800 KHz bitstroom (die meeste NeoPixel -produkte w/ WS2812 LED's) // NEO_KHZ400 400 KHz (klassieke 'v1' (nie v2) FLORA -pixels, WS2811 -bestuurders) // NEO_GRB Pixels is bedraad vir GRB -bitstroom (die meeste NeoPixel -produkte) // NEO_RGB Pixels is bedraad vir RGB -bitstroom (v1 FLORA -pixels, nie v2) // NEO_RGBW Pixels word bedraad vir RGBW-bitstroom (NeoPixel RGBW-produkte) // setup () -funksie-loop een keer by die aanvang -------------------- ------------ leemte-opstelling () {// Hierdie reëls is spesifiek ter ondersteuning van die Adafruit Trinket 5V 16 MHz. // Enige ander bord, u kan hierdie deel verwyder (maar sonder om dit te laat): #as gedefinieer (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // EINDE van Trinket-spesifieke kode. strip.begin (); // INITIALISEER NeoPixel -strookvoorwerp (VEREIST) strip.show (); // Skakel alle pixels so gou as moontlik strip.setBrightness (50) af; // Stel BRIGHTNESS op ongeveer 1/5 (maksimum = 255)} // lus () -funksie-loop herhaaldelik solank die bord aan is --------------- leemte lus () {// Vul die lengte van die strook in verskillende kleure … colorWipe (strip. Color (255, 0, 0), 50); // Rooi colorWipe (strook. Kleur (0, 255, 0), 50); // Groen kleurveeg (strook. Kleur (0, 0, 255), 50); // Blou // Maak 'n teater -effek in verskillende kleure … theaterChase (strip. Color (127, 127, 127), 50); // Wit, half helder teaterChase (strip. Color (127, 0, 0), 50); // Rooi, half helderheid theaterChase (strip. Color (0, 0, 127), 50); // Blou, half helder reënboog (10); // Vloeiende reënboog siklus deur die hele strook theaterChaseRainbow (50); // Rainbow-verbeterde teaterChase-variant} // Sommige van ons eie funksies vir die skep van geanimeerde effekte ----------------- // Vul strookpiksels een vir een met 'n kleur. Strook word NIE skoongemaak // eers; alles wat daar is, word pixel vir pixel gedek. Gee kleur // (as 'n enkele 'verpakte' 32-biswaarde, wat u kan kry deur // strip. Color (rooi, groen, blou) te noem, soos in die lus () -funksie hierbo), // en 'n vertragingstyd (in millisekondes) tussen pixels. void colorWipe (uint32_t color, int wait) {for (int i = 0; i strip.setPixelColor (i, color); // Stel pixel se kleur (in RAM) strip.show () in; // Werk strook by om vertraging te pas (wag); // Wag 'n rukkie}} // Teater-markiestyl-agtige ligte. Gee 'n kleur in (32-bis waarde, // a la strip. Color (r, g, b) soos hierbo genoem), en 'n vertragingstyd (in ms) // tussen rame. void theaterChase (uint32_t kleur, int wag) {vir (int a = 0; a <10; a ++) {// Herhaal 10 keer … vir (int b = 0; b <3; b ++) {// 'b' tel van 0 tot 2 … strip.clear (); // Stel alle pixels in RAM op 0 (af) // 'c' tel van 'b' tot einde van strook in stappe van 3 … vir (int c = b; c strip.setPixelColor (c, kleur); // Stel pixel 'c' in waarde 'kleur'} strip.show (); // Werk strook op met nuwe inhoudvertraging (wag); // Wag 'n rukkie}}} // Reënboogsiklus langs die hele strook. Gee vertragingstyd (in ms) tussen rame. leë reënboog (int wag) {// Die kleur van die eerste pixel loop 5 volledige lusse deur die kleurwiel. // Kleurwiel het 'n reeks van 65536, maar dit is OK as ons omdraai, dus // tel net van 0 tot 5*65536. Deur elke keer 256 by firstPixelHue te voeg // beteken ons sal 5*65536/256 = 1280 deur hierdie buitenste lus maak: for (long firstPixelHue = 0; firstPixelHue <5*65536; firstPixelHue += 256) {for (int i = 0; I // Verreken pixelkleur met 'n bedrag om 'n volledige omwenteling van die // kleurwiel (reeks van 65536) langs die lengte van die strook // (strip.numPixels () stappe) te maak: int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels ()); // strip. ColorHSV () kan 1 of 3 argumente aanneem: 'n tint (0 tot 65535) of // voeg eventueel versadiging en waarde (helderheid) by (elk 0 tot 255). // Hier gebruik ons slegs die enkele-argument-tintvariant. Die resultaat // word deur strip.gamma32 () deurgegee om 'meer' kleure te gee // voordat ons aan elke pixel toewys: strip.setPixelColor (i, strip.gamma32 (strip. ColorHSV (pixelHue)));} strip.show (); // Werk strook op met nuwe inhoudvertraging (wag); // Wag 'n rukkie}} // Rainbow-verbeterde teatertent. Slaag vertragingstyd (in ms) tussen rame. void theaterChaseRainbow (int wag) {i nt firstPixelHue = 0; // Eerste pixel begin by rooi (kleur 0) vir (int a = 0; a <30; a ++) {// Herhaal 30 keer … vir (int b = 0; b RGB strip.setPixelColor (c, kleur); / / Stel pixel 'c' in waarde 'color'} strip.show (); // Werk strook op met nuwe inhoudvertraging (wag); // Wag eers 'n rukkie eers PixelHue += 65536 /90; // Een siklus kleurwiel meer as 90 rame}}}

Stap 14: SHU -voorbeeldkode

Image
Image

Ons kode skakel al die Leds een vir een aan om seker te maak dat hulle werk:

// Hierdie voorbeeld wissel tussen die vertoon van 500 pixels as rooi

#includeconst uint16_t PixelCount = 500; // hierdie voorbeeld veronderstel 4 pixels, as dit kleiner word, sal dit 'n mislukking veroorsaak const uint8_t PixelPin = 13; // maak seker dat u dit op die regte pen stel, geïgnoreer vir Esp8266

#define colorSaturation 128 // drie elementpiksels, in verskillende volgorde en snelhede

NeoPixelBus -strook (PixelCount, PixelPin);

// NeoPixelBus -strook (PixelCount, PixelPin); RgbColor rooi (0, colorSaturation, 0); RgbColor green (colorSaturation, 0, 0); RgbColor blou (0, 0, kleurversadiging); RgbKleur wit (kleurversadiging); RgbColor swart (0); HslColor hslRed (rooi); HslColor hslGreen (groen); HslColor hslBlue (blou); HslColor hslWhite (wit); HslColor hslBlack (swart); ongeldige opstelling () {Serial.begin (115200) terwyl (! Serial); // wag vir die seriële hegstuk Serial.println (); Serial.println ("Initialiseer …"); Serial.flush (); // dit herstel al die neopixels na 'n af -toestand strook. Begin (); strook. Show (); Serial.println (); Serial.println ("hardloop …"); } leemte -lus () {vertraging (100); Serial.println ("Kleure R, G, B, W …"); vir (int i = 0; i <= 499; i ++) {// stel die kleure in, // as hulle nie ooreenstem nie, moet u die funksie strip NeoGrbFeature gebruik. SetPixelColor (i, rooi); strip. Show (); vertraging (100); strip. SetPixelColor (i, hslRed); strook. Show (); vertraging (100); }}

Stap 15: Laai kode op na die ESP32

Belangrik:

Om kode na enige mikrobeheerder te kan oplaai, moet dit in die programmeermodus wees. Die meeste doen dit outomaties, en u hoef net op oplaai in die sagteware te klik.

Ons ESP32 vereis dat u die programmeerknoppie ingedruk hou terwyl die kode gestuur word. U moet dit ook herstel nadat die kode opgelaai is deur een keer op die resetknoppie te druk.

Die programmeerknoppie van ons ESP32 is aan die linkerkant, die reset-knoppie aan die regterkant. Raadpleeg u handleiding as u 'n ander mikrobeheerder het.

Stap 16: Aanhalings

Hierdie instruksies is gemaak met behulp van die volgende tutoriale:

randomnerdtutorials.com/installing-the-esp…

Word gebruik om die ESP32 in Arduino IDE te installeer.

Skrywers:

Nathaniel BaroneGabriel Castro

Redakteur:

Cedric Bleimling

Aanbeveel: