Sommario:
- Passaggio 1: generatore di segnale più semplice
- Passaggio 2: aggiungi un OLED
- Passaggio 3: sviluppi futuri
Video: Generatore di segnale AD9833: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Un generatore di segnale è un attrezzo di prova molto utile. Questo utilizza un modulo AD9833 e un Arduino Nano - tutto qui, nemmeno un PCB. Puoi opzionalmente aggiungere un display OLED. L'AD9833 può generare onde sinusoidali, triangolari e quadre da 0,1 Hz a 12,5 MHz - il software in questo progetto è limitato a 1Hz a 100kHz.
Ci sono stati altri Instructables che utilizzano un Arduino e un AD9833, qui e qui. Questo è più semplice e può essere utilizzato come generatore di sweep. I generatori di sweep aiutano a testare la risposta in frequenza di filtri, amplificatori e così via. A differenza degli altri modelli Instructables, questo non include un amplificatore o un controllo di ampiezza, ma puoi aggiungerli se lo desideri.
Passaggio 1: generatore di segnale più semplice
Per il generatore di segnale più semplice, è sufficiente saldare il modulo AD9833 sul retro di Arduino Nano. Non è necessario alcun PCB.
Il modulo AD9833 che ho scelto è simile a questo. Non sto dicendo che sia il fornitore migliore o più economico, ma dovresti comprarne uno che assomigli a quella foto (o alla foto sopra).
Le connessioni tra i moduli sono:
- terreni collegati tra loro
- D2 = FSync
- D3 = Clk
- D4 = Dati
- D6 = Vcc di AD9833
L'AD9833 è alimentato dal pin dati D6 dell'Arduino: l'Arduino può fornire una corrente sufficiente. Ho aggiunto un condensatore di disaccoppiamento da 100n perché pensavo di "dovrei" ma non ho notato alcuna differenza: c'è già un condensatore di disaccoppiamento sulla scheda del modulo AD9833.
Se fossi fantasioso, potresti preoccuparti del "terreno analogico" rispetto al "terreno digitale", ma se fossi fantasioso, spenderesti più di £ 4.
Il generatore di segnale più semplice è controllato e alimentato tramite un cavo USB da un PC. L'USB emula una porta seriale in esecuzione a 115200 bps (8 bit, nessuna parità). I comandi sono:
- '0'..'9': sposta la cifra nell'array di frequenza "min"
- 'S': imposta la frequenza AD9833 e produce un'onda sinusoidale
- 'T': imposta la frequenza e produce un'onda triangolare
- 'Q': imposta la frequenza e produce un'onda quadra
- 'R': resetta AD9833
- 'M': copia l'array di frequenza "min" nell'array "max"
- 'G': sweep da "min" a "max" in 1 secondo
- 'H': sweep da "min" a "max" in 5 secondi
- 'I': sweep da "min" a "max" in 20 secondi
Il programma Arduino contiene due array di 6 caratteri "min" e "max. Se trasmetti una cifra, questa viene spostata nell'array "min". Se invii una "S", i caratteri dell'array "min" vengono convertiti in un longint e inviato all'AD9833. Quindi inviando la stringa
002500S
imposterà l'uscita AD9833 su un'onda sinusoidale di 2500Hz. Devi sempre inviare tutte e 6 le cifre. La frequenza minima è 000001 e la frequenza massima è 999999.
Se invii una "M", l'array "min" viene copiato nell'array "max". Se si invia una 'H', l'AD9833 emette ripetutamente una frequenza che aumenta gradualmente nell'arco di 5 secondi. Inizia alla frequenza "min" e 5 secondi dopo è alla frequenza "max". Così
020000M000100SH
spazia da 100Hz a 20kHz. La variazione di frequenza è logaritmica quindi dopo 1 secondo la frequenza sarà 288Hz, dopo 2 secondi 833Hz poi 2402, 6931 e 20000. La frequenza cambia ogni millisecondo.
Il ciclo si interrompe quando Arduino riceve un altro carattere, quindi fai attenzione a non inviare il comando seguito da ritorno a capo o avanzamento riga. Quel carattere in più interromperebbe il ciclo. Se stai usando il monitor seriale, c'è una casella in basso a destra che potrebbe dire ad esempio "Entrambi NL e CR" che (credo) invia caratteri dopo il tuo comando. Impostalo su "Nessuna fine di riga".
Puoi scaricare il programma EXE di Windows di seguito che invierà i comandi richiesti o potresti scriverne uno tuo. Il file INO di Arduino è anche qui.
Passaggio 2: aggiungi un OLED
Se aggiungi un OLED e due pulsanti, il generatore di segnale può funzionare da solo senza un PC.
Chi di voi ha letto il mio oscilloscopio Instructable riconoscerà la somiglianza. Il modulo AD9833 può essere aggiunto al mio oscilloscopio per produrre un "Oscilloscopio e generatore di segnale in una scatola di fiammiferi".
Il display è un OLED da 1,3 funzionante a 3,3V che è controllato da un chip SH1106 tramite un bus I2C.
Cerca su eBay OLED da 1,3". Non voglio raccomandare un venditore in particolare poiché i collegamenti diventano rapidamente obsoleti. Scegli uno che assomigli a quella foto, dica "I2C" o "IIC" e abbia quattro pin etichettati VDD GND SCL SDA (Alcuni display sembrano avere i pin in un ordine diverso. Controllali. Il nome corretto per l'orologio di I2C è "SCL" ma su eBay le schede possono essere etichettate come "SCK" come la mia nella foto.)
Una descrizione più completa della libreria OLED è nel mio oscilloscopio Instructable nel passaggio 8. Dovresti scaricare e installare la libreria dei driver SimpleSH1106.zip che si trova nel passaggio 8. (non voglio caricare un'altra copia qui e devo mantenere due copie.)
Il file INO può essere scaricato di seguito. I numeri di pin utilizzati per l'OLED sono dichiarati intorno alla riga 70. Se hai costruito il mio "Oscilloscopio e generatore di segnale in una scatola di fiammiferi" e vuoi testare questo file INO con esso, i numeri di pin alternativi sono abilitati tramite un #define.
Ho mostrato un layout stripboard per il circuito. Ci sono due stripboard: una per Nano e AD9833 e una per il display. Dovrebbero formare un panino. Le schede sono mostrate dal lato dei componenti. Fili sottili e flessibili uniscono le due schede. Fissare le schede insieme ai distanziatori saldati. Nel mio diagramma, il rame dello stripboard è mostrato in ciano. Le linee rosse sono collegamenti di filo sulla stripboard o fili flessibili che uniscono le schede. Non ho mostrato i cavi di alimentazione e "segnale".
Il modulo AD9833 è saldato sul lato rame della stripboard - sul lato opposto del Nano. Saldare i pin sulle strisce di rame, quindi inserire l'AD9833 su di essi e saldarlo.
Il display mostra una singola frequenza o le frequenze "min" e "max".
Ci sono due pulsanti: un pulsante "Orizzontale" per selezionare una cifra delle frequenze e un pulsante "Verticale" per cambiare quella cifra.
Alimento il generatore di segnale dal circuito che sto sviluppando - ho sempre 5V disponibili sulla mia postazione di lavoro.
Passaggio 3: sviluppi futuri
Potrebbe essere alimentato a batteria? Sì, basta aggiungere un PP3 da 9V collegato al pin RAW del Nano. In genere utilizza 20 mA.
Potrebbe essere alimentato da una singola cella al litio? Non vedo perché no. Dovresti collegare l'OLED Vdd e la sua resistenza di pull-up alla batteria da 3,7 V (dubito che l'uscita da 3,3 V di Arduino funzionerebbe correttamente).
Un generatore di sweep è più utile quando si testa la risposta in frequenza di un filtro se è possibile rappresentare graficamente l'ampiezza rispetto alla frequenza. Misurare l'ampiezza di un segnale è complicato: devi scambiare il decadimento del tuo rilevatore di inviluppo rispetto all'ondulazione per le basse frequenze e il tempo di risposta per le alte frequenze. Dopo aver costruito il tuo rilevatore di ampiezza, potresti alimentare la sua uscita nell'ADC dell'Arduino del "Simplest Signal Generator" quindi inviare il risultato, insieme alla frequenza corrente, al PC.
Questa pagina è un utile punto di partenza o cerca su Google "rilevatore di buste" o "rilevatore di picco". Nel circuito suggerito sopra, dovresti impostare la frequenza del segnale, attendere che si stabilizzi, impostare il pin Arduino A0 su output digitale basso, attendere per scaricare C, impostare A0 su input, attendere, quindi misurare con l'ADC. Fammi sapere come ti trovi.
Consigliato:
Come utilizzare il generatore di segnale di frequenza DDS Arduino AD9850: 7 passaggi
Come utilizzare il generatore di segnale di frequenza DDS Arduino AD9850: in questo tutorial impareremo come realizzare un generatore di segnale di frequenza utilizzando un modulo AD9850 e Arduino. Guarda il video! Nota: sono riuscito a ottenere una frequenza fino a + 50 MHz ma la qualità del segnale diventa peggio con le frequenze più alte
Revisione completa del generatore di segnale vintage: 8 passaggi
Revisione completa del generatore di segnale vintage: ho acquistato un generatore di segnale Eico 320 RF a un raduno di scambio di radioamatori per un paio di dollari alcuni anni fa, ma non sono mai riuscito a farci nulla fino ad ora. Questo generatore di segnale ha cinque gamme commutabili da 150 kHz a 36 MHz e con ha
Generatore di segnale RF 100 KHz-600 MHZ su DDS AD9910 Arduino Shield: 5 passaggi
Generatore di segnale RF 100 KHz-600 MHZ su DDS AD9910 Arduino Shield: come creare un generatore RF a basso rumore, alta precisione e stabile (con modulazione AM, FM) su Arduino
Generatore di segnale a due canali per chitarra: 10 passaggi
Generatore di segnale a due canali per chitarra: questo progetto è un design originale e facile da costruire per un generatore di segnale a doppio canale per chitarra e altri usi. Copre l'intera gamma di note della chitarra (per voi chitarristi, dalla corda aperta del Mi basso - 83 Hertz, fino al 24° tasto del Mi acuto s
Costruisci questo generatore di segnale di scansione LED da 5Hz a 400KHz dai kit: 8 passaggi
Costruisci questo generatore di segnale di scansione a LED da 5Hz a 400KHz dai kit: costruisci questo generatore di segnale di scansione facile da kit prontamente disponibili. all'epoca, che era un generatore di segnale. volevo un