Orodha ya maudhui:

Kielelezo kisichoonekana cha RGB LED Strip Visualizer: Hatua 6 (na Picha)
Kielelezo kisichoonekana cha RGB LED Strip Visualizer: Hatua 6 (na Picha)

Video: Kielelezo kisichoonekana cha RGB LED Strip Visualizer: Hatua 6 (na Picha)

Video: Kielelezo kisichoonekana cha RGB LED Strip Visualizer: Hatua 6 (na Picha)
Video: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Novemba
Anonim
Image
Image

Nimekuwa na mkanda wa 12v RGB LED karibu na kabati langu la TV kwa muda na inadhibitiwa na dereva wa LED anayechosha ambaye aniruhusu kuchagua moja kati ya rangi 16 zilizopangwa tayari!

Ninasikiliza muziki mwingi ambao unanitia motisha lakini taa haitoi hali sawa. Ili kurekebisha hiyo iliamua kuchukua ishara ya sauti ambayo ilipewa msemaji wangu kupitia AUX (3.5 mm jack), isindika na udhibiti mkanda wa RGB ipasavyo.

LED zinaitikia muziki kulingana na ukubwa wa Bass (Chini), Treble (Mid) na masafa ya Juu.

Masafa ya Rangi - Rangi ni kama ifuatavyo:

Chini - Nyekundu

Katikati - Kijani

Ya juu - Bluu

Mradi huu unajumuisha vitu vingi vya DIY kwa sababu mzunguko wote ulijengwa kutoka mwanzo. Hii inapaswa kuwa rahisi sana ikiwa unaiweka kwenye ubao wa mkate, lakini ni ngumu sana kuiunganisha kwenye PCB.

Vifaa

(x1) Ukanda wa LED wa RGB

(x1) Arduino Uno / Nano (Mega inapendekezwa)

(x1) TL072 au TL082 (TL081 / TL071 ni sawa pia)

(x3) TIP120 NPN Transistor (TIP121, TIP122 au N-Channel MOSFET kama IRF540, IRF 530 ni sawa pia)

(x1) 10kOhm potentiometer linear

(x3) 100kOhm 1 / 4watt vipinga

(x1) 10uF capacitor elektroni

(x1) 47nF kauri capacitor

(x2) 3.5 mm kiunganishi cha sauti - Mwanamke

(x2) 9V betri

(x2) 9V kontakt snap ya betri

Hatua ya 1: Kuelewa Aina za Vipande vya LED vya RGB

Kuelewa Aina za Vipande vya LED vya RGB
Kuelewa Aina za Vipande vya LED vya RGB

Kuna aina mbili za msingi za vipande vya LED, aina ya "analog" na aina ya "dijiti".

Vipande vya aina ya Analog (tini 1) vina LED zote zilizounganishwa kwa usawa na kwa hivyo inafanya kama LED moja kubwa ya rangi tatu; unaweza kuweka ukanda mzima kwa rangi yoyote unayotaka, lakini huwezi kudhibiti rangi za LED za kibinafsi. Ni rahisi kutumia na bei rahisi.

Vipande vya aina ya Dijiti (mtini 2) hufanya kazi kwa njia tofauti. Wana chip kwa kila LED, kutumia ukanda una kutuma data iliyowekwa nambari kwa chip. Walakini, hii inamaanisha unaweza kudhibiti kila LED peke yake! Kwa sababu ya ugumu wa ziada wa chip, ni ghali zaidi.

Ikiwa unapata shida kutambua kimwili tofauti kati ya vipande vya analog na aina ya dijiti,

  1. Matumizi ya aina ya Anologi pini 4, 1 chanya ya kawaida na hasi 3, moja kwa kila rangi ya RGB.
  2. Aina ya dijiti hutumia pini 3, chanya, data na ardhi.

Nitatumia vipande vya aina ya Analog, kwa sababu

  1. Kuna mafundisho machache sana ambayo hufundisha jinsi ya kutengeneza ukanda wa aina tendaji ya Analog. Wengi wao huzingatia aina ya Dijiti na ni rahisi kuwafanya waguswe na muziki.
  2. Nilikuwa na vipande vya aina ya Analogi vilivyokuwa karibu.

Hatua ya 2: Kukuza Saini ya Sauti

Kukuza Saini ya Sauti
Kukuza Saini ya Sauti
Kukuza Saini ya Sauti
Kukuza Saini ya Sauti
Kukuza Saini ya Sauti
Kukuza Saini ya Sauti

Ishara ya sauti ambayo hutumwa kupitia jack ya sauti ni

ishara ya analog ambayo hutengana ndani ya + 200mV na -200mV. Sasa hii ni shida tunataka kupima ishara ya sauti na moja ya pembejeo za Analog za Arduino kwa sababu pembejeo za Analog za Arduino zinaweza kupima tu kati ya 0 na 5V. Ikiwa tulijaribu kupima voltages hasi kwenye ishara ya sauti kutoka, Arduino ingesoma 0V tu na tungeishia kubonyeza chini ya ishara.

Ili kuisuluhisha lazima tukuze na kumaliza ishara za sauti ili ziwe ndani ya anuwai ya 0-5V. Kwa hakika, ishara inapaswa kuwa na urefu wa 2.5V ambayo huzunguka karibu 2.5V ili voltage yake ya chini ni 0V na voltage yake kubwa ni 5V.

Kuongeza

Amplifier ni hatua ya kwanza katika mzunguko, inaongeza ukubwa wa ishara kutoka karibu + au - 200mV hadi + au - 2.5V (kwa kweli). Kazi nyingine ya kipaza sauti ni kulinda chanzo cha sauti (kitu kinachozalisha ishara ya sauti mahali pa kwanza) kutoka kwa mzunguko wote. Ishara iliyotukuzwa inayotoka itatoa sasa yake yote kutoka kwa kipaza sauti, kwa hivyo mzigo wowote utakaowekwa baadaye kwenye mzunguko hautasikika na chanzo cha sauti (simu / iPod / kompyuta ndogo kwa upande wangu). Fanya hivi kwa kuanzisha op-amps moja kwenye kifurushi cha TL072 au TL082 (fig 2) katika usanidi wa kipaza sauti usiobadilisha.

Jedwali la TL072 au TL082 linasema kwamba inapaswa kuwezeshwa na +15 na -15V, lakini kwa kuwa ishara haitaongezwa kamwe juu + au - 2.5V ni sawa kuendesha op-amp na kitu cha chini. Nilitumia betri mbili za volt tisa zilizounganishwa mfululizo ili kuunda umeme wa + au - 9V.

Funga waya yako + V (pini 8) na -V (pini 4) kwa op-amp. Waya ishara kutoka kwa jack ya mono hadi kwa pembejeo isiyo ya kubadilisha (pini 3) na unganisha pini ya chini ya jack kwenye kumbukumbu ya 0V kwenye usambazaji wa voltage yako (kwangu hii ilikuwa makutano kati ya betri mbili za 9V mfululizo). Wamba kipingaji cha 100kOhm kati ya pato (pin 1) na inverting input (pin 2) ya op-amp. Katika mzunguko huu, nilitumia waya wa nguvu wa 10kOhm kama kontena la kutofautisha kurekebisha faida (kiasi ambacho kinakuza kinakuza) cha kipaza sauti changu kisichoingiza. Washa sufuria hii ya laini ya 10K kati ya pembejeo ya inverting na kumbukumbu ya 0V.

Kukabiliana na DC

Mzunguko wa kukabiliana na DC una sehemu kuu mbili: mgawanyiko wa voltage na capacitor. Mgawanyiko wa voltage hufanywa kutoka kwa vipinzani viwili vya 100k vilivyounganishwa kwa safu kutoka kwa usambazaji wa 5V wa Arduino hadi ardhini. Kwa kuwa wapinzani wana upinzani sawa, voltage kwenye makutano kati yao ni sawa na 2.5V. Makutano haya ya 2.5V yamefungwa na pato la kipaza sauti kupitia capacitor ya 10uF. Wakati voltage kwenye upande wa amplifier ya capacitor inapoinuka na kushuka, husababisha malipo kujilimbikiza kwa muda mfupi na kurudisha kutoka upande wa capacitor iliyounganishwa na makutano ya 2.5V. Hii inasababisha voltage kwenye makutano ya 2.5V kusonga juu na chini, iliyo katikati ya 2.5V.

Kama inavyoonekana katika mpango, unganisha mwongozo hasi wa capacitor ya 10uF kwenye pato kutoka kwa kipaza sauti. Unganisha upande wa pili wa kofia kwenye makutano kati ya vipikizi viwili vya 100k vilivyounganishwa kwa safu kati ya 5V na ardhi. Pia, ongeza capacitor ya 47nF kutoka 2.5V hadi ardhini.

Hatua ya 3: Kuoza Ishara kuwa Jumla ya Sinusoids zilizosimama - Nadharia

Kuoza Ishara kuwa Jumla ya Sinusoids zilizosimama - Nadharia
Kuoza Ishara kuwa Jumla ya Sinusoids zilizosimama - Nadharia

Ishara ya sauti iliyotumwa kupitia jack yoyote ya 3.5mm iko kwenye faili ya

masafa ya 20 Hz hadi 20 kHz. Ni sampuli kwa 44.1 kHz na kila sampuli imesimbwa kwa bits 16.

Ili kuunda masafa ya kimsingi ambayo hufanya ishara ya sauti, tunatumia Fourier Transform kwa ishara, ambayo hutenganisha ishara kuwa jumla ya sinusoids zilizosimama. Kwa maneno mengine, uchambuzi wa Fourier hubadilisha ishara kutoka kikoa chake cha asili (mara nyingi wakati au nafasi) kuwa uwakilishi katika uwanja wa masafa na kinyume chake. Lakini kuifanya kompyuta moja kwa moja kutoka kwa ufafanuzi mara nyingi ni polepole sana kuwa ya vitendo.

Takwimu zinaonyesha jinsi ishara inavyoonekana katika kikoa cha wakati na masafa.

Hapa ndipo algorithm ya Fast Fourier Transform (FFT) ni muhimu sana!

Kwa Ufafanuzi, FFT inashughulikia haraka mabadiliko kama haya kwa kuzidisha tumbo la DFT kuwa bidhaa ya vitu vichache (haswa sifuri). Kama matokeo, inafanikiwa kupunguza ugumu wa kuhesabu DFT kutoka O (N2), ambayo inaibuka ikiwa mtu atatumia tu ufafanuzi wa DFT, kwenda O (N logi N), ambapo N ni saizi ya data. Tofauti katika kasi inaweza kuwa kubwa, haswa kwa seti za data ndefu ambapo N inaweza kuwa katika maelfu au mamilioni. Mbele ya kosa la kuzunguka, algorithms nyingi za FFT ni sahihi zaidi kuliko kutathmini ufafanuzi wa DFT moja kwa moja au kwa njia isiyo ya moja kwa moja.

Kwa maneno rahisi, inamaanisha tu kuwa algorithm ya FFT ni njia ya haraka ya kuhesabu Mabadiliko ya Fourier ya ishara yoyote. Hii kwa ujumla hutumiwa kwenye vifaa vyenye nguvu ndogo ya kompyuta.

Ilipendekeza: