Sommario:

Visualizzatore audio con striscia LED RGB non indirizzabile: 6 passaggi (con immagini)
Visualizzatore audio con striscia LED RGB non indirizzabile: 6 passaggi (con immagini)

Video: Visualizzatore audio con striscia LED RGB non indirizzabile: 6 passaggi (con immagini)

Video: Visualizzatore audio con striscia LED RGB non indirizzabile: 6 passaggi (con immagini)
Video: PCB design for Arduino Nano RP2040 Wireless RGB Pixels (NeoPixels) 2024, Novembre
Anonim
Image
Image

Ho una striscia LED RGB da 12v intorno al mio mobile TV da un po' ed è controllata da un noioso driver LED che mi permette di scegliere uno dei 16 colori pre-programmati!

Ascolto molta musica che mi tiene motivato, ma l'illuminazione non crea l'atmosfera giusta. Per risolvere il problema ho deciso di prendere il segnale audio che è stato dato al mio altoparlante tramite AUX (jack da 3,5 mm), elaborarlo e controllare di conseguenza la striscia RGB.

I LED reagiscono alla musica in base all'ampiezza delle frequenze basse (basse), alte (medie) e alte.

La gamma di frequenze - Colore è la seguente:

Basso – Rosso

Medio – Verde

Alto – Blu

Questo progetto prevede molte cose fai-da-te perché l'intero circuito è stato costruito da zero. Questo dovrebbe essere abbastanza facile se lo stai configurando su una breadboard, ma piuttosto difficile saldarlo su un PCB.

Forniture

(x1) Striscia LED RGB

(x1) Arduino Uno/Nano (si consiglia Mega)

(x1) TL072 o TL082 (va bene anche TL081/TL071)

(x3) Transistor NPN TIP120 (anche TIP121, TIP122 o MOSFET a canale N come IRF540, IRF 530 vanno bene)

(x1) Potenziometro lineare 10kOhm

(x3) resistori da 100kOhm 1/4watt

(x1) condensatore elettrolitico da 10uF

(x1) condensatore ceramico 47nF

(x2) Connettore audio da 3,5 mm – Femmina

(x2) batteria 9V

(x2) connettore a scatto per batteria da 9 V

Passaggio 1: Comprensione dei tipi di strisce LED RGB

Comprensione dei tipi di strisce LED RGB
Comprensione dei tipi di strisce LED RGB

Esistono due tipi fondamentali di strisce LED, il tipo "analogico" e il tipo "digitale".

Le strisce di tipo analogico (fig 1) hanno tutti i LED collegati in parallelo e quindi si comportano come un enorme LED tricolore; puoi impostare l'intera striscia su qualsiasi colore desideri, ma non puoi controllare i colori dei singoli LED. Sono molto facili da usare e abbastanza economici.

Le strisce di tipo digitale (fig 2) funzionano in modo diverso. Hanno un chip per ogni LED, per usare la striscia devi inviare dati codificati digitalmente ai chip. Tuttavia, questo significa che puoi controllare ogni LED individualmente! A causa della maggiore complessità del chip, sono più costosi.

Se hai difficoltà a identificare fisicamente le differenze tra le strisce analogiche e di tipo digitale,

  1. Il tipo analogico utilizza 4 pin, 1 positivo comune e 3 negativi cioè uno per ogni colore di RGB.
  2. Il tipo digitale utilizza 3 pin, positivo, dati e massa.

Userò le strisce di tipo analogico, perché

  1. Ci sono pochissimi o nessun Instructables che insegnano come creare una striscia di tipo analogico reattiva alla musica. La maggior parte di loro si concentra sul tipo digitale ed è più facile farli reagire alla musica.
  2. Avevo delle strisce di tipo analogico in giro.

Passaggio 2: amplificazione del segnale audio

Amplificazione del segnale audio
Amplificazione del segnale audio
Amplificazione del segnale audio
Amplificazione del segnale audio
Amplificazione del segnale audio
Amplificazione del segnale audio

Il segnale audio che viene inviato attraverso il jack audio è

un segnale analogico che oscilla tra +200mV e -200mV. Ora questo è un problema è che vogliamo misurare il segnale audio con uno degli ingressi analogici di Arduino perché gli ingressi analogici di Arduino possono misurare solo tensioni tra 0 e 5V. Se provassimo a misurare le tensioni negative nel segnale audio da, l'Arduino leggerebbe solo 0V e finiremmo per tagliare la parte inferiore del segnale.

Per risolverlo dobbiamo amplificare e compensare i segnali audio in modo che rientrino in un range di 0-5V. Idealmente, il segnale dovrebbe avere un'ampiezza di 2,5 V che oscilla intorno a 2,5 V in modo che la sua tensione minima sia 0 V e la sua tensione massima sia 5 V.

Amplificazione

L'amplificatore è il primo passo nel circuito, aumenta l'ampiezza del segnale da circa + o - 200 mV a + o - 2,5 V (idealmente). L'altra funzione dell'amplificatore è quella di proteggere la sorgente audio (la cosa che genera il segnale audio in primo luogo) dal resto del circuito. Il segnale amplificato in uscita proverrà tutta la sua corrente dall'amplificatore, quindi qualsiasi carico applicato successivamente nel circuito non sarà "sentito" dalla sorgente audio (il telefono/iPod/laptop nel mio caso). Fallo impostando uno degli amplificatori operazionali nel pacchetto TL072 o TL082 (fig 2) in una configurazione di amplificatore non invertente.

La scheda tecnica del TL072 o TL082 dice che dovrebbe essere alimentato con +15 e -15V, ma poiché il segnale non verrà mai amplificato sopra + o - 2,5V va bene far funzionare l'amplificatore operazionale con qualcosa di più basso. Ho usato due batterie da nove volt collegate in serie per creare un alimentatore + o - 9V.

Collega il tuo +V (pin 8) e –V (pin 4) all'amplificatore operazionale. Collega il segnale dal jack mono all'ingresso non invertente (pin 3) e collega il pin di terra del jack al riferimento 0V sulla tua alimentazione (per me questa era la giunzione tra le due batterie da 9V in serie). Collegare un resistore da 100 kOhm tra l'uscita (pin 1) e l'ingresso invertente (pin 2) dell'amplificatore operazionale. In questo circuito, ho usato un potenziometro da 10kOhm cablato come resistore variabile per regolare il guadagno (la quantità che l'amplificatore amplifica) del mio amplificatore non invertente. Collegare questo potenziometro lineare da 10K tra l'ingresso invertente e il riferimento 0V.

Compensazione CC

Il circuito di offset DC ha due componenti principali: un partitore di tensione e un condensatore. Il partitore di tensione è costituito da due resistori da 100k collegati in serie dall'alimentazione 5V di Arduino a terra. Poiché i resistori hanno la stessa resistenza, la tensione alla giunzione tra loro è pari a 2,5 V. Questa giunzione da 2,5V è collegata all'uscita dell'amplificatore tramite un condensatore da 10uF. Quando la tensione sul lato dell'amplificatore del condensatore sale e scende, fa sì che la carica si accumuli momentaneamente e si respinga dal lato del condensatore collegato alla giunzione da 2,5 V. Ciò fa sì che la tensione alla giunzione da 2,5 V oscilli su e giù, centrata intorno a 2,5 V.

Come mostrato nello schema, collegare il cavo negativo di un condensatore da 10uF all'uscita dell'amplificatore. Collegare l'altro lato del cappuccio alla giunzione tra due resistori da 100k collegati in serie tra 5V e massa. Inoltre, aggiungi un condensatore 47nF da 2,5 V a terra.

Passaggio 3: scomporre il segnale in una somma di sinusoidi stazionarie - Teoria

Scomposizione del segnale in una somma di sinusoidi stazionarie - Teoria
Scomposizione del segnale in una somma di sinusoidi stazionarie - Teoria

Il segnale audio inviato tramite qualsiasi jack da 3,5 mm è nel

gamma da 20 Hz a 20 kHz. È campionato a 44,1 kHz e ogni campione è codificato a 16 bit.

Per decostruire le frequenze elementari di base che compongono il segnale audio, applichiamo al segnale la trasformata di Fourier, che scompone il segnale in una somma di sinusoidi stazionarie. In altre parole, l'analisi di Fourier converte un segnale dal suo dominio originale (spesso tempo o spazio) in una rappresentazione nel dominio della frequenza e viceversa. Ma calcolarlo direttamente dalla definizione è spesso troppo lento per essere pratico.

Le figure mostrano come appare il segnale nel dominio del tempo e della frequenza.

È qui che l'algoritmo Fast Fourier Transform (FFT) è piuttosto utile!

Per definizione, Una FFT calcola rapidamente tali trasformazioni fattorizzando la matrice DFT in un prodotto di fattori sparsi (per lo più zero). Di conseguenza, riesce a ridurre la complessità del calcolo della DFT da O(N2), che sorge se si applica semplicemente la definizione di DFT, a O(N log N), dove N è la dimensione dei dati. La differenza di velocità può essere enorme, specialmente per set di dati lunghi in cui N può essere di migliaia o milioni. In presenza di errori di arrotondamento, molti algoritmi FFT sono molto più accurati rispetto alla valutazione diretta o indiretta della definizione DFT.

In parole povere, significa solo che l'algoritmo FFT è un modo più veloce per calcolare la trasformata di Fourier di qualsiasi segnale. Questo è generalmente utilizzato su dispositivi con bassa potenza di calcolo.

Consigliato: