In questo progetto realizzeremo un amperometro di gamma bassa utilizzando il microcontrollore ATMEGA8. In ATMEGA8, utilizzeremo la funzione ADC a 10 bit (conversione da analogico a digitale) per farlo. Sebbene abbiamo pochi altri modi per ottenere il parametro corrente da un circuito, utilizzeremo il metodo di caduta resistiva, perché è il modo più semplice e semplice per ottenere il parametro corrente.
In questo metodo passeremo la corrente che doveva essere misurata a una piccola resistenza, in questo modo otteniamo una caduta attraverso quella resistenza che è correlata alla corrente che scorre attraverso di essa. Questa tensione attraverso la resistenza viene inviata ad ATMEGA8 per la conversione ADC. Con ciò avremo la corrente in valore digitale che verrà visualizzato su un LCD 16x2.
Per questo utilizzeremo un circuito divisore di tensione. Alimenteremo la corrente attraverso il ramo completo della resistenza. Il punto medio del ramo viene preso per la misurazione. Quando la corrente cambia, ci sarà una variazione della resistenza lineare ad essa. Quindi con questo abbiamo una tensione che cambia con la linearità.
La cosa importante da notare qui è che l'input preso dal controller per la conversione ADC è di appena 50µAmp. Questo effetto di carico del partitore di tensione basato sulla resistenza è importante poiché la corrente assorbita da Vout del partitore di tensione aumenta la percentuale di errore aumenta, per ora non dobbiamo preoccuparci dell'effetto di carico.
Componenti richiesti
Hardware: ATMEGA8, alimentatore (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), condensatore 100uF, condensatore 100nF (4 pezzi), resistenza 100Ω (7 pezzi) o 2.5Ω (2 pezzi), resistenza 100KΩ.
Software: Atmel studio 6.1, progisp o flash magic.
Schema del circuito e spiegazione del funzionamento
La tensione tra R2 e R4 non è completamente lineare; sarà rumoroso. Per filtrare il rumore, i condensatori sono posizionati su ciascun resistore nel circuito del divisore come mostrato in figura.
In ATMEGA8, possiamo fornire un ingresso analogico a uno qualsiasi dei QUATTRO canali di PORTC, non importa quale canale scegliamo poiché sono tutti uguali. Sceglieremo il canale 0 o PIN0 di PORTC. In ATMEGA8, l'ADC ha una risoluzione di 10 bit, quindi il controller può rilevare una variazione minima di Vref / 2 ^ 10, quindi se la tensione di riferimento è 5V otteniamo un incremento dell'uscita digitale per ogni 5/2 ^ 10 = 5mV. Quindi per ogni incremento di 5mV in ingresso avremo un incremento di uno in uscita digitale.
Ora dobbiamo impostare il registro di ADC in base ai seguenti termini:
1. Prima di tutto dobbiamo abilitare la funzione ADC in ADC.
2. Qui si otterrà una tensione di ingresso massima per la conversione ADC è + 5V. Quindi possiamo impostare il valore massimo o il riferimento dell'ADC a 5V.
3. Il controller ha una funzione di conversione del trigger che significa che la conversione dell'ADC avviene solo dopo un trigger esterno, poiché non vogliamo che sia necessario impostare i registri affinché l'ADC funzioni in modalità di esecuzione libera continua.
4. Per qualsiasi ADC, la frequenza di conversione (da valore analogico a valore digitale) e la precisione dell'uscita digitale sono inversamente proporzionali. Quindi, per una migliore precisione dell'uscita digitale, dobbiamo scegliere una frequenza inferiore. Per il normale orologio ADC stiamo impostando la prevendita dell'ADC al valore massimo (2). Dato che stiamo utilizzando l'orologio interno di 1 MHZ, l'orologio dell'ADC sarà (1000000/2).
Queste sono le uniche quattro cose che dobbiamo sapere per iniziare con ADC.
Tutte le quattro funzioni di cui sopra sono impostate da due registri,
ROSSO (ADEN): questo bit deve essere impostato per abilitare la funzione ADC di ATMEGA.
BLU (REFS1, REFS0): Questi due bit vengono utilizzati per impostare la tensione di riferimento (o la tensione di ingresso massima che daremo). Dato che vogliamo avere una tensione di riferimento di 5V, REFS0 dovrebbe essere impostato, dalla tabella.
GIALLO (ADFR): questo bit deve essere impostato affinché l'ADC funzioni continuamente (modalità di funzionamento libero).
ROSA (MUX0-MUX3): questi quattro bit servono per indicare il canale di ingresso. Poiché utilizzeremo ADC0 o PIN0, non è necessario impostare alcun bit come da tabella.
MARRONE (ADPS0-ADPS2): questi tre bit servono per impostare il prescalar per ADC. Dato che stiamo usando un prescalar di 2, dobbiamo impostare un bit.
VERDE SCURO (ADSC): questo bit consente all'ADC di avviare la conversione. Questo bit può essere disabilitato nel programma quando è necessario interrompere la conversione.