Sommario:

Arduino-Oscilloscopio: perché funziona: 4 passaggi
Arduino-Oscilloscopio: perché funziona: 4 passaggi

Video: Arduino-Oscilloscopio: perché funziona: 4 passaggi

Video: Arduino-Oscilloscopio: perché funziona: 4 passaggi
Video: Oscilloscopio Fai da Te con Arduino - Video 339 2024, Novembre
Anonim
Image
Image

Qualche anno fa, mentre mi avvicinavo all'elettronica e studiavo i principi di base. Ho scoperto che un ambito è lo strumento che ti aiuta in quasi tutto. Ora che l'ho capito, mi sono messo ad apprendere i principi base del funzionamento di un oscilloscopio, dopo qualche mese, ho pensato tra me e me, beh un oscilloscopio è implementabile su un microcontrollore se mi metto in un punto di apprendimento di prospettiva. Perché un microcontrollore, perché aveva tutte le cose necessarie per costruirne uno, come un ADC per ricevere un segnale (ma senza front-end di controllo), aveva porte GPIO che potevano essere utilizzate per molti scopi, inoltre ha una CPU seppur mite! (Pensavo ad un arduino).

Ho iniziato con la ricerca sugli oscilloscopi arduino che erano buoni e molto buoni, ma mi sarebbe piaciuto un codice più semplice, facile da modificare e capire. Proprio mentre stavo cercando, mi sono imbattuto nella base del codice corrente sui forum di arduino da "vaupell". Ho iniziato a modificarlo e commentarlo e pulire le cose per renderlo più leggibile. Il codice originale è di Noriaki Mitsunaga.

Quindi vediamo come configurare l'hardware e il software e come utilizzarlo.

Devo ancora iniziare a scrivere la spiegazione per il codice sul wiki di GitHub. se hai un po' di tempo dai un'occhiata in giro.

! - Questo progetto non spiega come realizzare un oscilloscopio, ma mostra come utilizzare un semplice microcontrollore per emulare il comportamento di un oscilloscopio reale per capire come funziona un oscilloscopio.

Passaggio 1: conoscere il proprio hardware

Conoscere il tuo hardware
Conoscere il tuo hardware

L'obiettivo di questo progetto è fornire una panoramica del funzionamento di un ambito. Per questo motivo ho scelto la piattaforma hardware più semplice e popolare arduino. Il codice è eseguibile su un arduino uno o un arduino mega, dove quest'ultimo è preferito perché ha più pin liberi e accessibili quando su di esso è installato un display.

Quindi in questo progetto userò un arduino mega (2560).

Il componente successivo è il display. Questa configurazione utilizza uno schermo touch arduino TFT da 2,5 pollici (l'ID del driver è 0x9341). Ciò dà la possibilità di visualizzare più canali sullo schermo che sono distinguibili l'uno dall'altro.

Questo è tutto quello che c'è da fare. Tuttavia!, questo ambito è molto limitato nelle sue capacità, quindi non spingerlo al limite. Alcune cose specifiche di cui preoccuparsi sono;

l'arduino ADC non può gestire molto bene le tensioni superiori a 5 volt e nemmeno può gestire bene le tensioni inferiori a 0 volt. Perché, perché è progettato così.

acquisire dati da più canali contemporaneamente riduce la frequenza di campionamento effettiva di un singolo canale perché i campioni vengono prelevati alternativamente dai più canali.

la frequenza di campionamento è molto bassa (per un'acquisizione a canale singolo potrebbe arrivare fino a 10kSps, ma con due canali scende a 5kSps/canale). Ciò può essere mitigato impostando la frequenza di riferimento dell'ADC (impostando il prescalare) su un valore inferiore. Tuttavia, questo ha i suoi problemi di cattiva risoluzione.

Inoltre, non dimenticare un computer per caricare il codice su arduino.

Passaggio 2: configurazione

Impostare
Impostare
Impostare
Impostare

La configurazione è molto semplice;

Collega lo schermo del display ad Arduino Mega in modo che i pin di alimentazione su entrambe le schede siano allineati.

collegare la scheda al computer tramite un cavo USB.

Apri l'IDE di arduino e aggiungi la libreria del display TFT SPFD5408 (0x9341), se non è già presente.

Ora carica il file di codice da github su Arduino.

GitHub - Arduino-Oscilloscopio

Ecco qua!. È possibile armeggiare con il codice impostando i canali 8 (ch0) e 15 (ch1) su ON o OFF nella sezione di configurazione del canale del codice. È possibile modificare la variabile rate in un valore dall'array rate per impostare il tempo/la divisione dell'ambito. È possibile impostare il tipo di trigger su automatico o singolo nella sezione trigger del codice.

Il passaggio seguente mostra un accelerometro a 3 assi ADXL335 alimentato e letto dall'Arduino-Oscilloscopio, come si vede nel primo video.

Fase 3: Esempio - ADXL335 Lettura dell'accelerometro

Esempio - ADXL335 Lettura dell'accelerometro
Esempio - ADXL335 Lettura dell'accelerometro
Esempio - ADXL335 Lettura dell'accelerometro
Esempio - ADXL335 Lettura dell'accelerometro
Esempio - ADXL335 Lettura dell'accelerometro
Esempio - ADXL335 Lettura dell'accelerometro

Alimenta il modulo accelerometro da 5 V CC e GND della scheda arduino all'estrema destra in alto e in basso. Collega ora il pin x-out del modulo adxl335 al pin A8 della scheda arduino come si può vedere nelle immagini. se l'asse x dell'accelerometro è puntato verso il basso, la linea dati sullo schermo dell'oscilloscopio sarà spostata da zero poiché il modulo adxl leggerà l'accelerazione dovuta alla gravità. prova a scuoterlo nella direzione x come indicato sulla scheda adxl, i picchi verranno visualizzati sullo schermo.

Per saperne di più sull'ambito e sul suo funzionamento, vedere il Wiki di GitHub

Passaggio 4: contribuire?

Se desideri contribuire alla documentazione della wiki, sei più che benvenuto. L'oscilloscopio è un fantastico strumento e penso che sia un buon strumento STEM!.

Attualmente sto lavorando su un piccolo front-end con un PGA fittizio e un controllo offset e aggiungerei un controllo per il tempo/div e forse leggendo segnali CA a bassa tensione.

Consigliato: