Spisu treści:

Wizualizator audio z nieadresowalną taśmą LED RGB: 6 kroków (ze zdjęciami)
Wizualizator audio z nieadresowalną taśmą LED RGB: 6 kroków (ze zdjęciami)

Wideo: Wizualizator audio z nieadresowalną taśmą LED RGB: 6 kroków (ze zdjęciami)

Wideo: Wizualizator audio z nieadresowalną taśmą LED RGB: 6 kroków (ze zdjęciami)
Wideo: Cała prawda o Izerze! Padną trudne pytania (gość. Wojciech Mieczkowski, EMP) | OTOMOTO NA ŻYWO #005 2024, Listopad
Anonim
Image
Image

Od jakiegoś czasu mam wokół szafki telewizyjnej taśmę LED 12V RGB i steruje nią nudny sterownik LED, który pozwala mi wybrać jeden z 16 zaprogramowanych kolorów!

Słucham dużo muzyki, która mnie motywuje, ale oświetlenie po prostu nie tworzy odpowiedniego nastroju. Aby to naprawić, postanowiłem pobrać sygnał audio, który był podawany do mojego głośnika przez AUX (gniazdo 3,5 mm), przetworzyć go i odpowiednio sterować paskiem RGB.

Diody LED reagują na muzykę w oparciu o wielkość tonów niskich (niskich), wysokich (średnich) i wysokich.

Zakres częstotliwości – kolor jest następujący:

Niski – Czerwony

Średni – zielony

Wysoki – Niebieski

Ten projekt wymaga wielu prac związanych z majsterkowaniem, ponieważ cały tor został zbudowany od podstaw. Powinno to być dość łatwe, jeśli konfigurujesz go na płytce stykowej, ale dość trudne do przylutowania na płytce drukowanej.

Kieszonkowe dzieci

(x1) Taśma LED RGB

(x1) Arduino Uno/Nano (zalecane Mega)

(x1) TL072 lub TL082 (TL081/TL071 też są w porządku)

(x3) Tranzystor TIP120 NPN (TIP121, TIP122 lub N-Channel MOSFET, takie jak IRF540, IRF 530 też są w porządku)

(x1) 10kOhm potencjometr liniowy

(x3) rezystory 100kOhm 1/4wata

(x1) kondensator elektrolityczny 10uF

(x1) kondensator ceramiczny 47nF

(x2) złącze audio 3,5 mm - żeńskie

(x2) bateria 9V

(x2) złącze zatrzaskowe baterii 9 V

Krok 1: Zrozumienie rodzajów taśm LED RGB

Zrozumienie rodzajów taśm LED RGB
Zrozumienie rodzajów taśm LED RGB

Istnieją dwa podstawowe rodzaje taśm LED: „analogowe” i „cyfrowe”.

Paski typu analogowego (rys. 1) mają wszystkie diody LED połączone równolegle, dzięki czemu działają jak jedna wielka trójkolorowa dioda LED; możesz ustawić cały pasek na dowolny kolor, ale nie możesz kontrolować poszczególnych kolorów diod LED. Są bardzo łatwe w użyciu i dość niedrogie.

Paski typu Digital (rys. 2) działają w inny sposób. Posiadają chip dla każdej diody LED, aby użyć paska należy przesłać cyfrowo zakodowane dane do chipów. Oznacza to jednak, że możesz sterować każdą diodą LED indywidualnie! Ze względu na dodatkową złożoność chipa są droższe.

Jeśli masz trudności z fizyczną identyfikacją różnic między paskami analogowymi i cyfrowymi,

  1. Typ Anolog używa 4 pinów, 1 wspólnego pozytywu i 3 negatywów, tj. Po jednym dla każdego koloru RGB.
  2. Typ cyfrowy wykorzystuje 3 piny, dodatni, dane i uziemienie.

Będę używał listew typu Analog, ponieważ

  1. Jest bardzo niewiele instrukcji, które uczą, jak zrobić pasek typu analogowego reagujący na muzykę. Większość z nich skupia się na typie cyfrowym i łatwiej jest sprawić, by reagowali na muzykę.
  2. Miałem kilka pasków typu Analog.

Krok 2: Wzmacnianie sygnału audio

Wzmacnianie sygnału audio
Wzmacnianie sygnału audio
Wzmacnianie sygnału audio
Wzmacnianie sygnału audio
Wzmacnianie sygnału audio
Wzmacnianie sygnału audio

Sygnał audio wysyłany przez gniazdo audio jest

sygnał analogowy, który oscyluje w granicach +200mV i -200mV. Teraz problem polega na tym, że chcemy zmierzyć sygnał audio jednym z wejść analogowych Arduino, ponieważ wejścia analogowe Arduino mogą mierzyć tylko napięcia od 0 do 5 V. Gdybyśmy próbowali zmierzyć ujemne napięcia w sygnale audio, Arduino odczytałoby tylko 0 V i skończylibyśmy na obcinaniu dolnej części sygnału.

Aby rozwiązać ten problem, musimy wzmocnić i zrównoważyć sygnały audio tak, aby mieściły się w zakresie 0-5V. W idealnym przypadku sygnał powinien mieć amplitudę 2,5 V, która oscyluje wokół 2,5 V, tak aby jego napięcie minimalne to 0 V, a napięcie maksymalne to 5 V.

Wzmocnienie

Wzmacniacz jest pierwszym stopniem w obwodzie, zwiększa amplitudę sygnału z około + lub - 200mV do + lub - 2,5V (idealnie). Inną funkcją wzmacniacza jest ochrona źródła audio (tego, co w pierwszej kolejności generuje sygnał audio) przed resztą obwodu. Wzmocniony sygnał wychodzący będzie czerpał cały swój prąd ze wzmacniacza, więc jakiekolwiek obciążenie włożone do niego później w obwodzie nie będzie „odczuwalne” przez źródło dźwięku (w moim przypadku telefon/iPod/laptop). Zrób to, ustawiając jeden ze wzmacniaczy operacyjnych w pakiecie TL072 lub TL082 (rys. 2) w konfiguracji wzmacniacza nieodwracającego.

Karta katalogowa TL072 lub TL082 mówi, że powinien być zasilany napięciem +15 i -15 V, ale ponieważ sygnał nigdy nie zostanie wzmocniony powyżej + lub - 2,5 V, dobrze jest uruchomić wzmacniacz operacyjny z czymś niższym. Użyłem dwóch dziewięciowoltowych baterii połączonych szeregowo, aby stworzyć zasilanie + lub - 9V.

Podłącz swoje +V (pin 8) i –V (pin 4) do wzmacniacza operacyjnego. Podłącz sygnał z gniazda mono do wejścia nieodwracającego (styk 3) i podłącz styk uziemienia gniazda do odniesienia 0 V na twoim zasilaniu napięciowym (dla mnie było to połączenie między dwiema bateriami 9 V połączonymi szeregowo). Podłącz rezystor 100kOhm między wyjściem (styk 1) a wejściem odwracającym (styk 2) wzmacniacza operacyjnego. W tym obwodzie użyłem potencjometru 10kOhm podłączonego jako rezystor zmienny do regulacji wzmocnienia (wielkości, którą wzmacnia wzmacniacz) mojego nieodwracającego wzmacniacza. Połącz ten liniowy potencjometr stożkowy 10K między wejściem odwracającym a odniesieniem 0V.

Przesunięcie DC

Obwód przesunięcia DC składa się z dwóch głównych elementów: dzielnika napięcia i kondensatora. Dzielnik napięcia składa się z dwóch rezystorów 100k połączonych szeregowo z zasilania 5V Arduino do masy. Ponieważ rezystory mają taką samą rezystancję, napięcie na styku między nimi wynosi 2,5V. To złącze 2,5 V jest połączone z wyjściem wzmacniacza za pomocą kondensatora 10 uF. Gdy napięcie po stronie wzmacniacza kondensatora rośnie i spada, powoduje chwilowe gromadzenie się ładunku i odpychanie się od strony kondensatora podłączonego do złącza 2,5V. To powoduje, że napięcie na złączu 2,5 V oscyluje w górę iw dół, wyśrodkowane wokół 2,5 V.

Jak pokazano na schemacie, podłącz ujemny przewód kondensatora 10uF do wyjścia ze wzmacniacza. Podłącz drugą stronę nasadki do złącza między dwoma rezystorami 100k połączonymi szeregowo między 5V a masą. Dodaj również kondensator 47nF od 2,5V do masy.

Krok 3: Rozkład sygnału na sumę stacjonarnych sinusoid – teoria

Rozkład sygnału na sumę stacjonarnych sinusoid - teoria
Rozkład sygnału na sumę stacjonarnych sinusoid - teoria

Sygnał audio wysyłany przez dowolne gniazdo 3,5 mm jest w

zakres od 20 Hz do 20 kHz. Jest próbkowany z częstotliwością 44,1 kHz, a każda próbka jest kodowana na 16 bitach.

Aby zdekonstruować podstawowe częstotliwości elementarne, które składają się na sygnał audio, stosujemy do sygnału transformację Fouriera, która rozkłada sygnał na sumę stacjonarnych sinusoid. Innymi słowy, analiza Fouriera przekształca sygnał z jego oryginalnej domeny (często czasu lub przestrzeni) na reprezentację w domenie częstotliwości i odwrotnie. Ale obliczanie go bezpośrednio z definicji jest często zbyt wolne, aby było praktyczne.

Liczby pokazują, jak wygląda sygnał w dziedzinie czasu i częstotliwości.

W tym miejscu algorytm szybkiej transformacji Fouriera (FFT) jest bardzo przydatny!

Zgodnie z definicją, FFT szybko oblicza takie przekształcenia poprzez faktoryzację macierzy DFT na iloczyn rzadkich (głównie zerowych) czynników. W rezultacie udaje mu się zmniejszyć złożoność obliczania DFT z O(N2), która powstaje, gdy po prostu zastosuje się definicję DFT, do O(N log N), gdzie N jest rozmiarem danych. Różnica w szybkości może być ogromna, szczególnie w przypadku długich zestawów danych, gdzie N może być liczone w tysiącach lub milionach. W obecności błędu zaokrąglenia wiele algorytmów FFT jest znacznie dokładniejszych niż ocena definicji DFT bezpośrednio lub pośrednio.

Mówiąc prościej, oznacza to po prostu, że algorytm FFT jest szybszym sposobem obliczenia transformacji Fouriera dowolnego sygnału. Jest to zwykle używane na urządzeniach o małej mocy obliczeniowej.

Zalecana: