Misurazione della tensione di alimentazione di un Arduino utilizzando Analog In


9

Sto alimentando un Arduino usando una batteria da 5 v (da 3,7 V a un modulo step-up) e devo misurare la tensione. Diciamo che la batteria eroga corrente elevata , è sicuro misurare la tensione tramite Analog In? Come in questo:

inserisci qui la descrizione dell'immagine

Il motivo per cui lo sto chiedendo è che non so molto sull'architettura e sui limiti dell'ADC dell'Arduino. Quindi normalmente lo farei per sicurezza:

inserisci qui la descrizione dell'immagine

Le connessioni nel primo diagramma sono sicure per l'ADC? Grazie in anticipo!

Nota: una domanda simile è stata posta qui: ( Monitoraggio dell'utilizzo dell'alimentazione CC ), ma non risponde alla domanda di elevati carichi di corrente sulla batteria.


1
Dove hai preso una batteria da 5 V?

In realtà è una batteria da 3,7 V che entra in un circuito regolatore di tensione step-up. Sono davvero interessato a misurare la batteria stessa da 3,7 V, ma per esempio, ho ipotizzato che il suo 5 V dimostrasse che l'Arduino sta funzionando.
Ahmed Farid,

Ah, ma potrebbe cambiare le cose. Probabilmente no: all'arduino non importa quanta corrente viene assorbita dalla batteria, purché non tutta quella corrente passi attraverso il pin IO. Ma non sono sicuro, non conosco Arduino.

È vero. Sono preoccupato per l'ingresso corrente al pin Analog In se lo collego direttamente a una batteria.
Ahmed Farid,

Risposte:


6

Controlla il foglio dati per la corrente di ingresso su un pin I / O Dipende dal tipo esatto di controller sul tuo Arduino. Probabilmente si chiama pin I / O della corrente di dispersione in ingresso e sarà vicino a 1μA .

Ecco un tipico foglio dati ATmega utilizzato su Uno / Duemilanove / ... , è possibile trovare il parametro a pagina 304. Controllare il foglio dati per il controller specifico per dettagli precisi.

Se si utilizza una batteria da 3,7 V e un convertitore step-up per fornire 5 V al controller, è possibile collegare la batteria direttamente all'ingresso analogico del controller. Tuttavia, quando la tensione di uscita del convertitore step up scende al di sotto della tensione della batteria (per qualsiasi motivo), l'intero Arduino verrà alimentato attraverso il pin di ingresso analogico e questo è ciò che non si desidera. Tutti i pin di ingresso hanno una protezione da sovratensione che consente questo comportamento, ma i diodi non sono classificati per correnti continue. In conclusione: è meglio includere un resistore in serie tra batteria e pin di ingresso.

Ma ora la tua misurazione si basa sulla precisione dell'alimentazione a 5 V. A seconda del controller esatto che hai, ci sono varie tensioni di riferimento interne disponibili che sono molto più accurate della tensione di alimentazione. Se si aggiunge un resistore aggiuntivo a terra (R2), è possibile utilizzare tale riferimento per misurare accuratamente la tensione di ingresso. Questo si chiama divisore di tensione (resistivo). Con il rapporto indicato, il voltaga sul pin di ingresso sarà di 1 V quando la tensione della batteria è di 3,7 V:

Vmeun'Surement=R2×VBUNTTR1+R2

schematico

simula questo circuito - Schema creato usando CircuitLab


1
Quindi, in sostanza, è possibile collegarlo direttamente a una batteria ma NON è raccomandato se il 5v varia. Anche se il 5v è regolato e costante?
Ahmed Farid,

2
Dovrebbe essere sicuro se 5V è costante, ma le cose vanno sempre male: meglio prevenire che curare. Uno o due resistori sono molto più economici di un nuovo microcontrollore. L'ingegneria non si limita solo a far funzionare le cose, ma anche a far funzionare le cose come richiesto.
jippie,

Un'altra domanda se posso: una singola resistenza (1K) in parallelo alla batteria non è abbastanza buona da impedire un ingresso di corrente elevato? (Vedi la mia seconda figura)
Ahmed Farid,

No, non fa altro che estrarre la batteria.
jippie

4

Un'altra opzione è quella di utilizzare il riferimento interno della tensione del bandgap 1.1V dell'Arduino per determinare il valore di VCC senza l'uso di parti esterne aggiuntive come dettagliato in questi due collegamenti:

http://jeelabs.org/2012/05/04/measuring-vcc-via-the-bandgap/

e

http://arduino.cc/forum/index.php?topic=88935.0

L'unico problema è che è necessario determinare un valore di calibrazione rispetto alla larghezza di banda interna di 1,1 V poiché può essere disattivata fino al 10%.

Ma ciò non richiederebbe parti aggiuntive e consentirebbe al tuo atmega di determinare la tensione della sua fonte di alimentazione.


3
Ecco un altro articolo che discute su come farlo. Il codice che utilizza è leggermente diverso: fornireyourown.com/2012/…
ThomasW il

@ThomasW nice! Un altro ottimo articolo sull'uso del bandgap 1.1v.
Wing Tang Wong,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.