Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Već neko vrijeme imam 12v RGB LED traku oko TV ormara i njome upravlja dosadni LED upravljač koji mi omogućuje odabir jedne od 16 unaprijed programiranih boja!
Slušam puno glazbe koja me motivira, ali osvjetljenje jednostavno ne stvara dobro raspoloženje. Kako bismo to riješili, odlučili smo uzeti audio signal koji je moj zvučnik dobio preko AUX -a (priključak od 3,5 mm), obraditi ga i sukladno tome kontrolirati RGB traku.
LED diode reagiraju na glazbu na temelju veličine basova (niske), visokih tonova (srednje) i visokih frekvencija.
Raspon frekvencija - Boja je sljedeća:
Nisko - crveno
Srednja - zelena
Visoka - Plava
Ovaj projekt uključuje mnogo DIY stvari jer je cijeli krug izgrađen od nule. Ovo bi trebalo biti prilično jednostavno ako ga postavljate na ploču, ali je prilično izazovno lemiti ga na PCB.
Pribor
(x1) RGB LED traka
(x1) Arduino Uno/Nano (preporučuje se Mega)
(x1) TL072 ili TL082 (i TL081/TL071 su u redu)
(x3) TIP120 NPN tranzistor (TIP121, TIP122 ili N-kanalni MOSFET-ovi poput IRF540, IRF 530 su također u redu)
(x1) 10kOhm potenciometar linearni
(x3) 100kOhm 1/4watt otpornici
(x1) 10uF elektrolitički kondenzator
(x1) 47nF keramički kondenzator
(x2) 3,5 mm audio priključak - ženski
(x2) 9V baterija
(x2) 9V priključak za zatvaranje baterije
Korak 1: Razumijevanje vrsta RGB LED traka
Postoje dvije osnovne vrste LED traka, "analogna" i "digitalna".
Trake analognog tipa (slika 1) imaju sve LED diode spojene paralelno pa se ponaša kao jedna ogromna trobojna LED; možete postaviti cijelu traku na bilo koju boju koju želite, ali ne možete kontrolirati pojedinačne boje LED dioda. Vrlo su jednostavni za upotrebu i prilično su jeftini.
Trake digitalnog tipa (slika 2) rade na drugačiji način. Imaju čip za svaku LED diodu, za korištenje trake morate poslati digitalno kodirane podatke na čipove. Međutim, to znači da možete upravljati svakom LED pojedinačno! Zbog dodatne složenosti čipa, oni su skuplji.
Ako vam je teško fizički identificirati razlike između analognih i digitalnih traka,
- Anološki tip koristi 4 igle, 1 zajednički pozitivan i 3 negativna, tj. Po jedan za svaku boju RGB-a.
- Digitalni tip koriste 3 pina, pozitivni, podaci i uzemljenje.
Ja ću koristiti trake analognog tipa, jer
- Postoji vrlo malo ili nimalo Instructables koji uče kako napraviti glazbeno reaktivnu traku analognog tipa. Većina se usredotočuje na digitalni tip i lakše ih je natjerati da reagiraju na glazbu.
- U blizini sam ležao neke trake analognog tipa.
Korak 2: Pojačavanje audio signala
Zvučni signal koji se šalje putem audio priključnice jest
analogni signal koji oscilira unutar +200mV i -200mV. Ovo je problem jer želimo izmjeriti audio signal jednim od Arduinovih analognih ulaza jer Arduino analogni ulazi mogu mjeriti samo napone između 0 i 5V. Kad bismo pokušali izmjeriti negativne napone u audio signalu iz, Arduino bi očitao samo 0V i na kraju bismo odrezali dno signala.
Da bismo to riješili, moramo pojačati i pomaknuti audio signale tako da spadaju u raspon od 0-5V. U idealnom slučaju, signal bi trebao imati amplitudu od 2,5 V koja oscilira oko 2,5 V tako da mu je minimalni napon 0 V, a maksimalni napon 5 V.
Pojačanje
Pojačalo je prvi korak u krugu, povećava amplitudu signala s oko + ili - 200mV na + ili - 2,5 V (idealno). Druga funkcija pojačala je zaštita audio izvora (stvar koja generira audio signal) od ostatka kruga. Odlazni pojačani signal izvor će cijele svoje struje iz pojačala, tako da svako opterećenje koje se kasnije postavi u krug neće "osjetiti" izvor zvuka (telefon/iPod/prijenosno računalo u mom slučaju). Učinite to postavljanjem jednog od op-pojačala u paketu TL072 ili TL082 (slika 2) u konfiguraciji neinvertirajućeg pojačala.
Tehnički list TL072 ili TL082 kaže da bi se trebao napajati s +15 i -15V, ali budući da signal nikada neće biti pojačan iznad + ili -2.5V, u redu je pokrenuti op -pojačalo s nečim nižim. Koristio sam dvije serijski ožičene baterije od devet volti za stvaranje + ili - 9V napajanja.
Priključite +V (pin 8) i –V (pin 4) na op-pojačalo. Spojite signal iz mono utičnice na neinvertirajući ulaz (pin 3) i spojite uzemljeni pin utičnice na 0V referencu na vašem napajanju (za mene je ovo spoj između dvije 9V baterije u seriji). Ožičite otpornik od 100 kOhm između izlaza (pin 1) i invertirajućeg ulaza (pin 2) op-pojačala. U ovom sam krugu upotrijebio potenciometar od 10 kOhm ožičen kao promjenjivi otpornik za podešavanje pojačanja (iznos koji pojačalo pojačava) mog neinvertirajućeg pojačala. Ožičite ovaj 10K linearni konusni lonac između invertirajućeg ulaza i 0V reference.
DC pomak
Krug istosmjernog pomaka ima dvije glavne komponente: razdjelnik napona i kondenzator. Razdjelnik napona izrađen je od dva 100k otpornika spojena serijski od Arduinovog 5V napajanja do mase. Budući da otpornici imaju isti otpor, napon na spoju između njih jednak je 2,5 V. Ovaj spoj od 2,5 V vezan je za izlaz pojačala putem kondenzatora od 10uF. Kako napon na strani pojačala kondenzatora raste i pada, uzrokuje da se naboj na trenutak akumulira i odbije sa strane kondenzatora spojenog na 2.5V spoj. To uzrokuje da napon na spoju od 2,5 V oscilira gore -dolje, centrirano oko 2,5 V.
Kao što je prikazano na shemi, spojite negativni vod 10uF kondenzatora na izlaz iz pojačala. Spojite drugu stranu poklopca na spoj između dva 100k otpornika koji su serijski spojeni između 5V i mase. Također, dodajte 47nF kondenzator od 2,5 V na masu.
Korak 3: Razlaganje signala na zbir stacionarnih sinusoida - teorija
Audio signal koji se šalje kroz bilo koju utičnicu od 3,5 mm nalazi se u
rasponu od 20 Hz do 20 kHz. Uzorkovano je na 44,1 kHz, a svaki uzorak kodiran je na 16 bita.
Za dekonstrukciju osnovnih elementarnih frekvencija koje čine audio signal, na signal primjenjujemo Fourierovu transformaciju koja signal razlaže na zbroj stacionarnih sinusoida. Drugim riječima, Fourierova analiza pretvara signal iz izvorne domene (često vremena ili prostora) u prikaz u frekvencijskoj domeni i obrnuto. No izračunavanje izravno iz definicije često je presporo da bi bilo praktično.
Slike prikazuju kako signal izgleda u vremenskoj i frekvencijskoj domeni.
Ovdje je algoritam brze Fourierove transformacije (FFT) prilično koristan!
Po definiciji, FFT brzo izračunava takve transformacije faktorisanjem DFT matrice u umnožak rijetkih (uglavnom nula) faktora. Kao rezultat toga, uspijeva smanjiti složenost izračuna DFT -a iz O (N2), koja nastaje ako se jednostavno primijeni definicija DFT -a, na O (N log N), gdje je N veličina podataka. Razlika u brzini može biti ogromna, osobito za dugačke skupove podataka gdje N može biti u tisućama ili milijunima. U prisutnosti pogreške zaokruživanja, mnogi FFT algoritmi mnogo su točniji od izravne ili neizravne procjene definicije DFT-a.
Jednostavno rečeno, to samo znači da je FFT algoritam brži način izračunavanja Fourierove transformacije bilo kojeg signala. To se općenito koristi na uređajima s niskom računalnom snagom.