INHOUDSOPGAWE:

Nie-aanspreekbare RGB LED Strip Audio Visualizer: 6 stappe (met foto's)
Nie-aanspreekbare RGB LED Strip Audio Visualizer: 6 stappe (met foto's)

Video: Nie-aanspreekbare RGB LED Strip Audio Visualizer: 6 stappe (met foto's)

Video: Nie-aanspreekbare RGB LED Strip Audio Visualizer: 6 stappe (met foto's)
Video: Исследование JavaScript и API веб-аудио Сэма Грина и Хью Забриски 2024, November
Anonim
Image
Image

Ek het al 'n rukkie 'n 12V RGB LED-strook om my TV-kas en dit word beheer deur 'n vervelige LED-bestuurder waarmee ek een uit 16 vooraf geprogrammeerde kleure kan kies!

Ek luister baie musiek wat my gemotiveerd hou, maar die beligting stel die stemming net nie reg nie. Om dit op te los, het ek besluit om die klanksein wat deur die AUX (3,5 mm -aansluiting) aan my luidspreker gegee is, op te neem, verwerk dit en beheer die RGB -strook dienooreenkomstig.

Die LED's reageer op die musiek gebaseer op die grootte van bas (laag), diskant (middel) en hoë frekwensies.

Die frekwensiebereik - kleur is soos volg:

Laag - rooi

Middelgroen

Hoog - Blou

Hierdie projek behels baie DIY -dinge, want die hele kring is van nuuts af opgebou. Dit behoort redelik maklik te wees as u dit op 'n broodbord opstel, maar dit is baie uitdagend om dit op 'n PCB te soldeer.

Voorrade

(x1) RGB LED -strook

(x1) Arduino Uno/Nano (Mega word aanbeveel)

(x1) TL072 of TL082 (TL081/TL071 is ook goed)

(x3) TIP120 NPN Transistor (TIP121, TIP122 of N-Channel MOSFET's soos IRF540, IRF 530 is ook goed)

(x1) 10kOhm potensiometer lineêr

(x3) 100kOhm 1/4watt weerstande

(x1) 10uF elektrolitiese kapasitor

(x1) 47nF keramiek kondensator

(x2) 3,5 mm klankaansluiting - vroulik

(x2) 9V battery

(x2) 9V battery -aansluiting

Stap 1: Verstaan die tipes RGB LED -strokies

Verstaan die tipes RGB LED -strokies
Verstaan die tipes RGB LED -strokies

Daar is twee basiese soorte LED -stroke, die 'analoog' en 'digitale' soort.

Analoge tipe (fig 1) stroke het al die LED's parallel gekoppel, en dit werk dus soos een groot drie-kleur LED; u kan die hele strook instel op elke kleur wat u wil hê, maar u kan nie die kleure van die individuele LED beheer nie. Hulle is baie maklik om te gebruik en redelik goedkoop.

Die stroke van die digitale tipe (fig 2) werk op 'n ander manier. Hulle het 'n chip vir elke LED, om die strook te gebruik, moet u digitaal gekodeerde data na die skyfies stuur. Dit beteken egter dat u elke LED individueel kan beheer! As gevolg van die ekstra kompleksiteit van die chip, is dit duurder.

As u dit moeilik vind om die verskille tussen die analoge en digitale tipe stroke fisies te identifiseer,

  1. Anolog-tipe gebruik 4 penne, 1 algemene positiewe en 3 negatiewe, dit wil sê een vir elke RGB-kleur.
  2. Digitale tipe gebruik 3 penne, positief, data en grond.

Ek sal die analoogstroke gebruik, want

  1. Daar is baie min tot geen instruksies wat leer hoe om 'n musiekreaktiewe strook van 'n analoog tipe te maak nie. Die meerderheid van hulle fokus op die digitale tipe, en dit is makliker om hulle op musiek te laat reageer.
  2. Ek het 'n paar Analog-tipe stroke laat lê.

Stap 2: Versterk die klanksein

Versterking van die klanksein
Versterking van die klanksein
Versterking van die klanksein
Versterking van die klanksein
Versterking van die klanksein
Versterking van die klanksein

Die klanksein wat deur die klankaansluiting gestuur word, is

'n analoog sein wat ossilleer binne +200mV en -200mV. Dit is 'n probleem: ons wil die klanksignaal met een van Arduino se analoog insette meet, omdat die analoog insette van die Arduino slegs spanning tussen 0 en 5V kan meet. As ons probeer om die negatiewe spannings in die klanksignaal te meet, lees die Arduino slegs 0V en eindig die onderkant van die sein.

Om dit op te los, moet ons die klankseine versterk en verreken sodat dit binne 'n reeks van 0-5V val. Ideaal gesproke moet die sein 'n amplitude van 2.5V hê wat ongeveer 2.5V ossilleer, sodat sy minimum spanning 0V is en die maksimum spanning 5V.

Versterking

Die versterker is die eerste stap in die stroombaan, dit verhoog die amplitude van die sein van ongeveer + of - 200mV tot + of - 2.5V (ideaal). Die ander funksie van die versterker is om die klankbron (die ding wat die klanksignaal in die eerste plek genereer) teen die res van die stroombaan te beskerm. Die uitgaande versterkte sein sal al sy stroom uit die versterker verkry, sodat enige las wat later op die stroombaan aangebring word, nie deur die klankbron 'gevoel' kan word nie (die telefoon/iPod/skootrekenaar in my geval). Doen dit deur een van die op-versterkers in die pakket TL072 of TL082 (fig 2) op te stel in 'n nie-omkeerversterker-opset.

Die datablad van die TL072 of TL082 sê dat dit met +15 en -15V aangedryf moet word, maar aangesien die sein nooit bo + of -2.5V versterk word nie, is dit goed om die op -amp met iets laer te laat loop. Ek het twee nege -volt batterye in serie gebruik om 'n + of - 9V kragbron te skep.

Draai jou +V (pen 8) en –V (pen 4) na die op-amp. Dra die sein van die mono-aansluiting na die nie-omkeer-ingang (pen 3) en koppel die grondpen van die domkrag aan die 0V-verwysing op u spanningsbron (vir my was dit die aansluiting tussen die twee 9V-batterye in serie). Dra 'n 100kOhm-weerstand tussen die uitset (pen 1) en die omkeerinvoer (pen 2) van die op-amp. In hierdie kring gebruik ek 'n 10kOhm potensiometer wat as 'n veranderlike weerstand bedraad is om die versterking (die hoeveelheid wat die versterker versterk) van my nie-omkerende versterker aan te pas. Draai hierdie 10K lineêre tapspot tussen die omkeerinvoer en die 0V -verwysing.

DC -verrekening

Die DC -verrekeningskring het twee hoofkomponente: 'n spanningsverdeler en 'n kapasitor. Die spanningsverdeler bestaan uit twee 100k -weerstande wat in serie van die Arduino se 5V -voeding na die aarde bedraad is. Aangesien die weerstande dieselfde weerstand het, is die spanning by die aansluiting tussen hulle gelyk aan 2.5V. Hierdie 2.5V -aansluiting is vasgemaak aan die uitset van die versterker via 'n 10uF -kondensator. Namate die spanning aan die versterkerkant van die kapasitor styg en daal, veroorsaak dit dat lading kortstondig ophoop en afstoot van die kant van die kapasitor wat aan die 2.5V -aansluiting geheg is. Dit veroorsaak dat die spanning by die 2.5V -aansluiting op en af ossilleer, rondom 2,5V gesentreer.

Soos in die skema getoon, koppel die negatiewe leiding van 'n 10uF -kondensator aan die uitset van die versterker. Verbind die ander kant van die kap met die aansluiting tussen twee 100k -weerstande wat in serie tussen 5V en grond bedraad is. Voeg ook 'n 47nF -kondensator van 2,5V na die aarde.

Stap 3: Ontbinding van die sein in 'n som van stilstaande sinusoïede - teorie

Ontbinding van die sein in 'n som van stilstaande sinusoïede - teorie
Ontbinding van die sein in 'n som van stilstaande sinusoïede - teorie

Die klanksein wat deur enige 3,5 mm -aansluiting gestuur word, is in die

reeks van 20 Hz tot 20 kHz. Dit word bemonster op 44,1 kHz en elke monster word op 16 bisse gekodeer.

Om die basiese elementêre frekwensies wat die klanksein uitmaak, te dekonstrueer, pas ons Fourier Transform toe op die sein, wat die sein in 'n som van stilstaande sinusoïede ontbind. Met ander woorde, Fourier -analise sit 'n sein van sy oorspronklike domein (dikwels tyd of ruimte) om in 'n voorstelling in die frekwensiedomein en omgekeerd. Maar om dit direk uit die definisie te bereken, is dikwels te traag om prakties te wees.

Syfers toon hoe die sein in tyd- en frekwensiedomein lyk.

Dit is hier waar die Fast Fourier Transform (FFT) algoritme redelik handig is!

By definisie, 'N FFT bereken sulke transformasies vinnig deur die DFT -matriks te faktoriseer tot 'n produk van yl (meestal nul) faktore. Gevolglik slaag dit daarin om die kompleksiteit van die berekening van die DFT van O (N2), wat ontstaan as 'n mens net die definisie van DFT toepas, te verminder na O (N log N), waar N die datagrootte is. Die snelheidsverskil kan enorm wees, veral vir lang datastelle waar N in die duisende of miljoene kan wees. In die teenwoordigheid van afrondingsfoute is baie FFT-algoritmes baie akkurater as om die DFT-definisie direk of indirek te evalueer.

In eenvoudige terme beteken dit net dat die FFT -algoritme 'n vinniger manier is om die Fourier -transform van enige sein te bereken. Dit word gewoonlik gebruik op toestelle met 'n lae rekenaarkrag.

Aanbeveel: