Spisu treści:

Ściana z 500 diodami LED z ESP32: 16 kroków
Ściana z 500 diodami LED z ESP32: 16 kroków

Wideo: Ściana z 500 diodami LED z ESP32: 16 kroków

Wideo: Ściana z 500 diodami LED z ESP32: 16 kroków
Wideo: #policja ❤️ #kia #randka 2024, Lipiec
Anonim
Ściana 500 LED z ESP32
Ściana 500 LED z ESP32

Cześć wszystkim! Pod koniec tego samouczka dowiesz się, jak stworzyć własną ścianę LED.

Ten samouczek jest oparty na letnim programie oferowanym na Sacred Heart University.

Baw się dobrze!

Kieszonkowe dzieci

Materiały wymienione poniżej.

Krok 1: Materiały eksploatacyjne

Kieszonkowe dzieci
Kieszonkowe dzieci

Zacznijmy od zebrania wszystkiego, czego potrzebujemy do ukończenia naszej ściany Led:

(Linki zostały utworzone 7.10.2019)

Oprogramowanie Arduino IDE

Mikrokontroler ESP32

Oświetlenie pikselowe LED

Zasilacz

Kabel zasilający

Narzędzie do ściągania izolacji

Kable połączeniowe do płyt chlebowych

Przewód elektryczny

Krok 2: Określenie odpowiedniego zasilacza dla twojego LedWall

Istnieje prosty matematyczny sposób, aby dowiedzieć się, który zasilacz jest najlepszy dla Ciebie.

Używamy prawa mocy Ohma: P = IxV (Moc = Intensywność x Napięcie)

Napięcie określają nasze diody: w tym przypadku 5V.

Intensywność zależy od sprzętu, pojedyncza dioda LED pobiera 30mA.

Każdy pasek 50 diod LED zatem zużywa 50 x 30mA = 1250mA = 1,25A.

Dlatego nasza ściana 500 Led zużywa 10 razy więcej (10 pasków): 12,5 A.

Zużycie energii wynosi wtedy 5V x 12,5A = 62,5W dla diod LED.

Oczywiście, oprócz diod LED, musisz uwzględnić ESP i każdy inny element twojego obwodu.

Mamy zasilacz 60A, mamy dużo więcej niż potrzebujemy.

Krok 3: Przewód zasilający

Image
Image

Nasz zasilacz jest dostarczany ze złączami przewodowymi. Musimy przystosować przewód zasilający, aby podłączyć go do wtyczki 110V.

- Odetnij złącze żeńskie od przewodu zasilającego. Zachowamy męską część, inaczej znaną jako NEMA 5-15P.

- Usuń izolację kabla, aby na wszystkich przewodach było widoczne około 3 mm miedzi.

Oto krótki samouczek wideo na temat zdejmowania izolacji z przewodów:

Krok 4: Podłączanie zasilania

Zasilanie do ESP32S
Zasilanie do ESP32S

Teraz jesteśmy gotowi do podłączenia zasilania!

Zawsze odłączaj zasilanie podczas pracy z nim.

Okablowanie

  • Czarny przewód (faza) łączy się z pinem „L” zasilacza
  • Biały przewód (neutralny) łączy się z pinem 'N' zasilacza
  • Zielony przewód łączy się z pinem uziemienia zasilacza

(Jeśli wewnętrzne przewody twojego kabla zasilającego nie są w tym samym kolorze co nasze, bądź bezpieczny i sprawdź schematy online.)

Testowanie

Podłącz przewód zasilający komputera do dowolnego gniazdka elektrycznego. Zielona dioda LED na zasilaczu powinna się zaświecić.

Krok 5: Zasilanie ESP32S

Patrząc na swój ESP, obok każdego pinu powinny znajdować się etykiety. Jeśli nie jest oznaczony, możesz sprawdzić „pinout” swojego indywidualnego ESP online.

Używając męskiego do żeńskiego przewodu połączeniowego płytki stykowej lub przewodu elektrycznego, podłącz:

  • Pin '5V' ESP32S do '+V' zasilacza (pomarańczowy na zdjęciu powyżej)
  • Pin 'GND' ESP32S do sekcji '-V' zasilacza (czarny na zdjęciu powyżej)

(W niektórych ESP pin „5V” jest oznaczony jako „VCC”, oba oznaczają to samo.)

Pamiętaj, że twój ESP może mieć inny "pinout" niż ten, którego używamy. W związku z tym możesz podłączać przewody do innej lokalizacji niż na powyższym obrazku. O ile łączysz się z odpowiednimi pinami (5 V i GND), fizyczna lokalizacja na planszy nie ma znaczenia.

Testing Podłącz ponownie zasilacz, a jeśli Twój ESP ma wskaźnik LED (większość tak), zaświeci się, aby wskazać, że zasilanie jest wysyłane do ESP. Gratulacje!

Krok 6: Zasilanie pasków świetlnych LED

Zasilanie taśm świetlnych LED
Zasilanie taśm świetlnych LED

Za pomocą przewodów elektrycznych:

- Podłącz czerwony przewód taśmy LED Light Strip do V+ na zasilaczu.

- Podłącz niebieski przewód taśmy LED Light Strip do V- na zasilaczu.

Krok 7: Podłączanie ESP32 do taśm świetlnych LED

Nasz ESP32 instruuje sterownik WS2811 podłączony do każdej diody LED o kolorze i jasności, które muszą być. Aby to zrobić, nasz ESP32 potrzebuje kabla "data" do pasków.

Paski Leds są dostarczane z 3 przewodowym złączem:

-Czerwony: Moc-Niebieski: Neutralny-Biały: Dane

Podłączmy kabel taśmy z białą diodą LED do cyfrowego pinu w ESP. Zapamiętaj wybrany numer PIN, ponieważ będziemy musieli go później wybrać w kodzie. Podłączyliśmy nasz do pinu 13.

Krok 8: Przygotowanie komputera: sterownik C2102

Teraz, gdy nasz sprzęt jest podłączony, chcemy wgrać nasz pierwszy kod, aby go przetestować. Domyślnie Windows lub MacOs nie mogą komunikować się z naszym ESP32. Aby to zrobić, musimy pobrać "sterownik" do układu komunikacyjnego USB ESP: C2102.

Ten sterownik należy pobrać i zainstalować:

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

(Linki na dzień 7.10.2019)

Krok 9: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 1

Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 1
Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 1
Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 1
Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 1

Zanim będziemy mogli używać naszego ESP32 z oprogramowaniem Arduino, musimy się upewnić, że jest ono rozpoznawane. Domyślnie oprogramowanie Arduino nie może skompilować kodu dla naszego ESP32, naprawmy to:

Krok 1: Dodanie tablic do menedżera

1 - Kliknij w Arduino opcję Plik >> Preferencje

2- W polu „Additional Boards Manager URLs” skopiuj następujący link:

Krok 10: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 2

Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 2
Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 2
Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 2
Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 2

Teraz, gdy oprogramowanie Arduino „zna” więcej płyt, zainstalujmy naszą obsługę ESP32

Krok 2: Instalacja obsługi ESP32

1 - W górnym menu wybierz: Narzędzia >> Tablica >> Menedżer tablic

2 - Pojawi się okno. Użyj pola wyszukiwania, znajdującego się w prawym górnym rogu, aby znaleźć „ESP32”.

3 - Znajdź ten zrobiony przez espressif. Zainstaluj to. (Zobacz zdjęcie)

Krok 11: Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 3

Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 3
Oprogramowanie Arduino - Dodawanie obsługi ESP32 - Krok 3

Teraz, gdy oprogramowanie Arduino może komunikować się z naszym ESP32, podłączmy go do komputera i sprawdźmy, czy wszystko działa.

1 - Upewnijmy się, że pracujemy na platformie ESP32:

Kliknij Narzędzia >> Płyta >> Moduł deweloperski ESP32

1- Upewnijmy się, że oprogramowanie Arduino wie, jak komunikować się z naszym ESP:

Kliknij Narzędzia >> Port i wybierz ten, który wyskakuje po podłączeniu tego kabla.

Ważny:

Jeśli masz problem z przesłaniem kodu do ESP, najpierw sprawdź te dwa menu. Jeśli port nie jest zaznaczony znacznikiem, oprogramowanie Arduino nie będzie się z nim komunikować.

Krok 12: Dodawanie bibliotek do Arduino IDE

Dodawanie bibliotek do Arduino IDE
Dodawanie bibliotek do Arduino IDE

Teraz dodamy bibliotekę, która pozwoli nam przetestować naszą Led Wall!

1- Kliknij Narzędzia >> Zarządzaj bibliotekami.

2- W prawym górnym rogu wyszukaj NeoPixelBus. Zlokalizuj „NeoPixelBus by Makuna”, zainstaluj go (patrz zdjęcie)

Potencjalne inne interesujące biblioteki: (niewymagane w tym samouczku)

- NeoMatrix

- FastLed

- Artnet

- GFX

Krok 13: Pierwszy kod: test pasm

Nasz pierwszy kod jest przykładem z Biblioteki.

Możesz skopiować/wkleić poniższy kod lub kliknąć:

Plik >> Przykłady >> Adafruit NeoPixelBus >> Strandtest

Upewnij się, że zmieniłeś swój LED_PIN na ten, którego użyłeś do fizycznego podłączenia diod LED. W tym samouczku użyliśmy 13.

Upewnij się również, że dostosowałeś rozmiar nici za pomocą zmiennej LED_COUNT.

// Podstawowy codzienny program LED Striptest.

#include#ifdef _AVR_ #include // Wymagane dla 16 MHz Adafruit Trinket #endif // Który pin Arduino jest podłączony do NeoPixels? #define LED_PIN 13 // Ile NeoPixels jest podłączonych do Arduino? #define LED_COUNT 500 // Zadeklaruj nasz obiekt paska NeoPixel: Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Liczba pikseli w pasku NeoPixel // Argument 2 = Numer pinu Arduino (większość jest prawidłowa) // Argument 3 = Flagi typu pikseli, dodaj je w razie potrzeby: // Strumień bitów NEO_KHZ800 800 kHz (większość produktów NeoPixel z Diody LED WS2812) // NEO_KHZ400 400 KHz (klasyczne piksele „v1” (nie v2) FLORA, sterowniki WS2811) // NEO_GRB Piksele są okablowane dla strumienia bitowego GRB (większość produktów NeoPixel) // Piksele NEO_RGB są okablowane dla strumienia bitowego RGB (piksele v1 FLORA), nie v2) // NEO_RGBW Piksele są podłączone do strumienia bitów RGBW (produkty NeoPixel RGBW) // funkcja setup() -- uruchamia się raz przy starcie -------------------- ------------ void setup() { // Te wiersze są przeznaczone specjalnie do obsługi Adafruit Trinket 5V 16 MHz. // Dowolna inna płyta, możesz usunąć tę część (ale nie zaszkodzi jej pozostawienie): #if defined(_AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // KONIEC kodu specyficznego dla Trinket. strip.początek(); // INICJALIZUJ obiekt paska NeoPixel (WYMAGANE) strip.show(); // WYŁĄCZ wszystkie piksele JAK NAJSZYBCIEJ strip.setBrightness(50); // Ustaw JASNOŚĆ na około 1/5 (maks. = 255) } // Funkcja loop() -- działa wielokrotnie, dopóki tablica jest włączona --------------- void loop() { // Wypełnij wzdłuż paska różnymi kolorami… colorWipe(strip. Color(255, 0, 0), 50); // Czerwony colorWipe(strip. Color(0, 255, 0), 50); // Zielony colorWipe(strip. Color(0, 0, 255), 50); // Niebieski // Zrób efekt teatralny w różnych kolorach… theaterChase(strip. Color(127, 127, 127), 50); // Biały, połowa jasności theaterChase(strip. Color(127, 0, 0), 50); // Czerwony, połowa jasności theaterChase(strip. Color(0, 0, 127), 50); // Niebieski, tęcza o połowie jasności(10); // Płynący cykl tęczy wzdłuż całego paska teatrChaseRainbow(50); // Wariant theatreChase z technologią Rainbow } // Niektóre własne funkcje do tworzenia animowanych efektów ----------------- // Wypełnij piksele pasków jeden po drugim kolorem. Pasek NIE jest wyczyszczony // najpierw; wszystko, co tam będzie, zostanie zakryte piksel po pikselu. Przekaż kolor // (jako pojedynczą „spakowaną” 32-bitową wartość, którą można uzyskać przez wywołanie // strip. Color(red, green, blue), jak pokazano w funkcji loop() powyżej), // i czas opóźnienia (w milisekundach) między pikselami. void colorWipe(uint32_t color, int wait) { for(int i=0; i strip.setPixelColor(i, color); // Ustaw kolor piksela (w pamięci RAM) strip.show(); // Zaktualizuj pasek, aby dopasować opóźnienie(czekaj); // Pauza na chwilę } } // Pogoń za światłami w stylu teatralnej markizy. Przekaż kolor (wartość 32-bitowa, // a la strip. Color(r, g, b) jak wspomniano powyżej), i czas opóźnienia (w ms) // między klatkami void theaterChase(uint32_t color, int wait) { for(int a=0; a<10; a++) { // Powtórz 10 razy… for(int b=0; b<3;b++) { // 'b' liczy od 0 do 2… strip.clear();// ustawia wszystkie piksele w pamięci RAM na 0 (wyłączone) // 'c' liczy od 'b' do końca strip w krokach co 3… for(int c=b; c strip.setPixelColor(c, color); // Ustaw piksel 'c' na wartość 'color' } strip.show(); // Zaktualizuj pasek z opóźnieniem nowej zawartości (wait); // Pauza na chwilę } } } // Cykl tęczy wzdłuż całego paska. Przekaż czas opóźnienia (w ms) między klatkami. void rainbow(int wait) { // Barwa pierwszego piksela wykonuje 5 pełnych pętli przez Koło kolorów. // Koło kolorów ma zakres 65536, ale jest OK, jeśli przewrócimy, // policz od 0 do 5*65536. Dodanie 256 do firstPixelHue za każdym razem // oznacza, że 5*65536/256 = 1280 przechodzi przez tę zewnętrzną pętlę: for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) { for(int i= 0; I // Przesuń odcień piksela o wartość, aby wykonać jeden pełny obrót // koła kolorów (zakres 65536) wzdłuż paska // (strip.numPixels() steps): int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels()); // strip. ColorHSV() może przyjmować 1 lub 3 argumenty: odcień (0 do 65535) lub // opcjonalnie dodać nasycenie i wartość (jasność) (każdy od 0 do 255). // Tutaj używamy tylko jednoargumentowego wariantu odcienia. Wynik // jest przekazywany przez strip.gamma32() w celu zapewnienia 'prawdziwszych' kolorów // przed przypisaniem do każdego piksela: strip.setPixelColor(i, strip.gamma32 (strip. ColorHSV(pixelHue))); } strip.show(); // Zaktualizuj pasek z nową zawartością delay(wait); // Wstrzymaj na chwilę } } // Ulepszona oprawa kinowa Rainbow. Przekaż czas opóźnienia (w ms) void theatreChaseRainbow(int wait) { i nt pierwszyPixelHue = 0; // Pierwszy piksel zaczyna się od koloru czerwonego (odcień 0) for(int a=0; a<30; a++) { // Powtórz 30 razy… for(int b=0; b RGB strip.setPixelColor(c, color); / / Ustaw piksel 'c' na wartość 'color' } strip.show(); // Zaktualizuj pasek z nową zawartością delay(wait); // Najpierw wstrzymaj na chwilęPixelHue += 65536 / 90; // Jeden cykl koła kolorów ponad 90 klatek } } }

Krok 14: Przykładowy kod SHU

Image
Image

Nasz kod włącza wszystkie diody po kolei, aby upewnić się, że działają:

// Ten przykład będzie przełączać się między wyświetlaniem 500 pikseli jako czerwony

#includeconst uint16_t Liczba pikseli = 500; // ten przykład zakłada 4 piksele, zmniejszenie ich spowoduje błąd const uint8_t PixelPin = 13; // upewnij się, że ustawiłeś właściwy pin, zignorowany dla Esp8266

#define colorSaturation 128// trzy elementy pikseli, w różnej kolejności i prędkości

Pasek NeoPixelBus (PixelCount, PixelPin);

//NeoPixelBus pasek(PixelCount, PixelPin); RgbColor czerwony (0, nasycenie koloru, 0); RgbColor zielony(Nasycenie koloru, 0, 0); RgbColor niebieski (0, 0, nasycenie koloru); RgbColor biały (nasycenie koloru); RGBKolor czarny(0); HslColor hslRed(czerwony); HslColor hslGreen(zielony); HslColor hslBlue(niebieski); HslColor hslWhite(biały); HslColor hslBlack(czarny); void setup() { Serial.begin(115200) while (!Serial); // czekaj na dołączenie szeregowe Serial.println(); Serial.println("Inicjowanie…"); Serial.flush(); // to resetuje wszystkie neopiksele do stanu wyłączonego strip. Begin(); strip. Show(); Serial.println(); Serial.println("Działa…"); } void loop() { delay(100); Serial.println("Kolory R, G, B, W…"); for(int i = 0; i <=499;i++){ // ustaw kolory, // jeśli nie pasują do siebie w kolejności, musisz użyć funkcji NeoGrbFeature strip. SetPixelColor(i, red);strip. Show (); opóźnienie (100); strip. SetPixelColor(i, hslRed); strip. Pokaż(); opóźnienie (100); }}

Krok 15: Przesyłanie kodu do ESP32

Ważny:

Aby móc wgrać kod do dowolnego mikrokontrolera, musi on być w trybie programowania. Większość z nich robi to automatycznie, a wystarczy kliknąć w oprogramowaniu.

Nasz ESP32 wymaga przytrzymania przycisku programowania podczas wysyłania kodu. Musisz również zresetować go po przesłaniu kodu, naciskając raz przycisk resetowania.

Przycisk programowania naszego ESP32 znajduje się po lewej stronie, przycisk resetowania po prawej. Jeśli masz inny mikrokontroler, zapoznaj się z instrukcją.

Krok 16: Cytaty

Ta instrukcja została stworzona za pomocą następujących samouczków:

randomnerdtutorials.com/installing-the-esp…

Służy do instalacji ESP32 w Arduino IDE.

Autorski:

Nathaniel BaroneGabriel Castro

Redaktor:

Cedric Bleimling

Zalecana: