Spisu treści:

Sound Reactive Tanie Ir Led Strip: 4 kroki
Sound Reactive Tanie Ir Led Strip: 4 kroki

Wideo: Sound Reactive Tanie Ir Led Strip: 4 kroki

Wideo: Sound Reactive Tanie Ir Led Strip: 4 kroki
Wideo: WLED Sound Reactive - ESP32 WROOM с микрофоном, добавляем функцию светомузыки 2024, Lipiec
Anonim
Reaktywny dźwięk taniej taśmy ledowej na podczerwień
Reaktywny dźwięk taniej taśmy ledowej na podczerwień
Reaktywny dźwięk taniej taśmy ledowej na podczerwień
Reaktywny dźwięk taniej taśmy ledowej na podczerwień
Reaktywny dźwięk taniej taśmy ledowej na podczerwień
Reaktywny dźwięk taniej taśmy ledowej na podczerwień

Reaktywny dźwięk taniej taśmy ledowej na podczerwień

no cóż, pomysł przyszedł po tym, jak przyjechała taśma led z AliExpress i to nie były neopiksele tylko taśma LED RGB z 44krys lub 24 typami pilotów kluczykowych, Dumb me lol, zamówiłem zły. Chciałem je na imprezę, ale z pilotem! !! Nieee. Więc podwinąłem rękawy i googlowałem.

Mam serwer sieciowy na podczerwień oparty na ESP, który mapuje te same przyciski pilota na pin emitera podczerwieni podłączony do diody podczerwieni.

ale chciałem czegoś innego, na przykład reaktywnego dźwięku, znowu dostałem wiele samouczków z ws1811 lub neopikselami, a niektóre nawet z tranzystorami MOSFET i diodami LED, ale nie miałem czasu, więc spróbowałem głupiego podejścia do mapowania dźwięku przez A0 PIN esp i mapowanie danych wyjściowych w wiadrach, aby umożliwić niektóre kombinacje przycisków pilota na podczerwień Głównie tylko rgb, ale założę się, że zrobisz to lepiej niż ja.

Kieszonkowe dzieci

1. Taśmy LED oczywiście z zasilaniem

2. esp8266 / węzeł mcu

3. Ir emiter led

4. Rezystor

5. Kabel do programowania

6. pomysł na arduino

7. lutownica (niektóre podstawowe lutownice)

8. 7805 ic (do używania zasilania led jako zasilania esp)

9. Moduł mikrofonu lub aux y split dla wejścia dźwięku

Krok 1: Przygotowanie Esp

  • Przede wszystkim połącz Nodemcu z komputerem lub laptopem.
  • Teraz zainstaluj sterownik nodemcu (google it).
  • Po tym otwarciu Arduino IDE (oczywiście musisz go pobrać i zainstalować) Kliknij "Narzędzia" na pasku narzędzi Arduino kliknij "Płyta" Wybierz "Menedżer tablicy" i wyszukaj esp8266 zainstaluj go (zakończenie zajmie trochę czasu)
  • Teraz wybierz "Szkic" z paska narzędzi Arduino wybierz "Dołącz bibliotekę" stamtąd wybierz "Zarządzaj bibliotekami"Wyszukaj "IRremoteESP8266" i zainstaluj go
  • Teraz konfiguracja odbywa się tylko z "Narzędzia" musimy przejść do "Płyty" Wybierz "NodeMcu 1.0(ESP 12-E)" lub inną wersję ESP8266.

Krok 2: Przygotowanie i testowanie diody podczerwieni

Przygotowanie i testowanie diody IR
Przygotowanie i testowanie diody IR

Przede wszystkim musimy zainstalować bibliotekę irLED dla esp

Przejdź tutaj

Identyfikowanie paska ledowego z pilotem 24-klawiszowym lub 44-klawiszowym (większy)

aby uzyskać kod pilotów, przejdź TUTAJ

Po zainstalowaniu biblioteki musimy przygotować naszą diodę podczerwieni, podłączając ją tak, jak pokazano na obrazku. Na jego podstawie podłącz diodę IR, a następnie wgraj poniższy szkic i skieruj diodę IR na kontroler. Pasek LED powinien migać (włącza się i wyłącza). // działa zarówno z 24 jak i 44 klawiszami Remote.

TUTAJ jest kod, aby to zrobić.

#define IR_OFF 0xF740BF //Resekcyjny kod IR w 32 bitach#define IR_ON 0xF7C0 #include<IRremoteESP8266.h IRsend irsend(4); // pin IR void setup() { irsend.begin(); } void loop() { irsend.sendNEC(IR_ON, 32); opóźnienie(5000); irsend.sendNEC(IR_OFF, 32); opóźnienie(5000); }

Krok 3: Okablowanie i przygotowanie mikrofonu

Okablowanie i przygotowanie mikrofonu
Okablowanie i przygotowanie mikrofonu
Okablowanie i przygotowanie mikrofonu
Okablowanie i przygotowanie mikrofonu

Użyjemy tylko analogowego pinu Espe8266 A0 do pobierania sygnału wejściowego jako sygnału analogowego i używania go do wyzwalania diody podczerwieni w oparciu o dźwięk

Podłącz wyjście pin do a0

Podłącz 5 V do Vin (mcu węzła AS nie ma wyjścia 5 V)

to wszystko, wyrównamy diodę podczerwieni podłączoną do pinu D2 do odbiornika taśmy LED.

a

Krok 4: Prześlij kod i jest gotowy do Rock

Prześlij kod i jest gotowy do Rock
Prześlij kod i jest gotowy do Rock
Prześlij kod i jest gotowy do Rock
Prześlij kod i jest gotowy do Rock

#include #include#definiuj pinezkę mikrofonu A0 int sound; wew dźwięk1; const int irPin = 4; //d2IRsend irsend(irPin);unieważnij ustawienia() { Serial.begin(9600); pinMode (mikrofonPin, INPUT); pinMode(irPin, OUTPUT);} // Kody diod ir #define IR_BPlus 0xFF3AC5 // #define IR_BMinus 0xFFBA45 // #define IR_ON 0xFF827D // #define IR_OFF 0xFF02FD // #define IR_R 0x //#FF1AE5 // define IR_B 0xFFA25D // #define IR_W 0xFF22DD // #define IR_B1 0xFF2AD5 // #define IR_B2 0xFFAA55 // #define IR_B3 0xFF926D // #define IR_B4 0xFF12ED // #defineB_75_B5 0xFFB24D // #define IR_B8 0xFF32CD // #define IR_B9 0xFF38C7 // #define IR_B10 0xFFB847 // #define IR_B11 0xFF7887 // #define IR_B12 0xFFF807 // #define FFB18_EB7_98 // #define FF67_EB7_10x / #define IR_B16 0xFFD827 // #define IR_UPR 0xFF28D7 // #define IR_UPG 0xFFA857 // #define IR_UPB 0xFF6897 // #define IR_QUICK 0xFFE817 // #define IR_DOWNR 0x //B07/FFIR7_// DOWN define IR_SLOW 0xFFC837 // #define IR_DIY1 0xFF30CF // #define IR_DIY2 0xFFB04F // #define IR_DIY3 0xFF708F // #define IR_AUTO 0xFFF00F // #define IR_DIY4 0xFF10EF // #define IR_DIY5 0xFF906F // #define IR_DIY6 0xFF50AF // #define IR_FLASH 0xFFD02F // #define IR_JUMP3 0xFF20DF // // UMP7_FFF_FJ9 / void loop() { sound = analogRead(microphonePin); // odczytywanie wejściowego sygnału audio Serial.print(sound); // wprowadź odczyty sygnału audio do wyświetlacza szeregowego Serial.print(" "); if (dźwięk > 415) { dźwięk1 = mapa(dźwięk, 415, 750, 140, 255); // mapowanie wyższych wartości częstotliwości, które są powyżej offsetu do skali 150 - 255 } else if (dźwięk > 340 && dźwięk < 415) // utrzymywanie odczytu offsetu na skali zerowej..tutaj wartość offsetu w zakresie 340 - 415(wartość przesunięcia przy 1.45v)..to zależy od komponentów użytych w obwodzie.. { sound1 = map(sound, 340, 415, 0, 9); } else if (dźwięk 240) { irsend.sendNEC(IR_FLASH, 32); irsend.sendNEC(IR_QUICK, 32); irsend.sendNEC(IR_QUICK, 32); irsend.sendNEC(IR_QUICK, 32); irsend.sendNEC(IR_QUICK, 32); irsend.sendNEC(IR_QUICK, 32); irsend.sendNEC(IR_QUICK, 32); } else if ((dźwięk1) > 200) { irsend.sendNEC(IR_G, 32); irsend.sendNEC(IR_B, 32); delay(120);} else if (dźwięk1 > 160) { irsend.sendNEC(IR_R, 32); irsend.sendNEC(IR_B, 32); opóźnienie(120); } else if (dźwięk1 > 120) { irsend.sendNEC(IR_B, 32); opóźnienie(120); } else if (dźwięk1 > 80) { irsend.sendNEC(IR_B, 32); opóźnienie(120); } else if (dźwięk1 > 40) { irsend.sendNEC(IR_G, 32); opóźnienie(120); } else if (dźwięk1 > 10) { irsend.sendNEC(IR_R, 32); delay(120);} else { irsend.sendNEC(IR_FADE7, 32); opóźnienie(120); } Serial.println(dźwięk1); opóźnienie(50); }

Zalecana: