Arduino alimentato da batteria da 9 V.


16

Ieri pomeriggio ho lasciato il mio Arduino acceso con una nuova batteria alcalina da 9 V (+ collegata a Vin, - collegata a GND). Oggi mattina (16 ore dopo) il display LCD non era più visibile e quando ho misurato il volatage, ho visto la batteria esaurita con mia sorpresa - la sua tensione inattiva era solo di 7 V.

Il mio dispositivo è Arduino Uno con LCD 2x16 con retroilluminazione LCD e 2 sensori DS18B20. È normale che un dispositivo del genere esaurisca la batteria da 9 V così rapidamente?

Ho letto una risposta a Quali sono (o come posso usare) le opzioni di risparmio energetico di Arduino per prolungare la durata della batteria? domanda e penso che ciò che vedo potrebbe essere correlato a questo, tuttavia non sono sicuro. Se lo è, ci sono alcuni schemi comuni come collegare Arduino per essere alimentato da una batteria in modo efficiente?


Proverei a collegare un multimetro e misurare la corrente dalla batteria con tutto e con il display e i sensori scollegati. Non cercare di ottimizzare l'arduino se è qualcos'altro che attira la maggior parte del potere.
BowlOfRed

@bowlofred "misura la corrente dalla batteria" - Lo farò, anche se prima devo comprare una nuova cella da 9V. :)
Suma,

1
Le batterie da 9 V sono minuscole, solo circa 500 mAh. La sola retroilluminazione LCD la ucciderà entro poche ore.
Hobbs

Approccio più radicale per il risparmio energetico: 1. Utilizzo della scheda TI MSP430 invece di Arduino; 2. Utilizzo del regolatore non lineare; 3. Utilizzo dell'LCD senza retroilluminazione (come in una calcolatrice).
Vi.

@bowlofred L'intera corrente è di 61 mA. Senza retroilluminazione è 57 mA, senza LCD e senza sensori è 56 mA.
Suma,

Risposte:


21

Consumo di energia

Le schede Arduino consumano abbastanza energia rispetto ad altri sistemi embedded con funzionalità simili.

Esistono tre fattori principali:

  • Il regolatore lineare 5V NCP1117 ( scheda tecnica ) nell'Arduino UNO R3 ( schematico ) ha una corrente di riposo di circa 6 mA.

  • ATMega328P ( scheda tecnica) assorbe circa 5 mA a 8 MHz e 5 V, e probabilmente più del doppio rispetto a 16 MHz.

  • user2973: ATMega16U2 utilizzato per le comunicazioni USB assorbe anche circa 13 mA.

Anche i LED e le altre periferiche assorbono corrente. Nel tuo circuito, probabilmente anche la retroilluminazione LCD sta disegnando 4mA.

Quando si fa cadere da 9 V a 5 V tramite un regolatore lineare, quasi la metà della potenza viene persa dal regolatore a causa della sua caduta di 4 V. Duncan osserva che ciò raddoppia quasi l' assorbimento di corrente a riposo da 9 V e la potenza necessaria per ogni mA di 5 V, poiché i 4/9 della potenza vengono sprecati come calore dal regolatore di tensione. Un efficiente regolatore di commutazione emetterebbe 5 V con poca energia sprecata, riducendo efficacemente l'assorbimento di corrente visto dalla batteria di 4 / 9s.

Una batteria Duracell da 9 V ( scheda tecnica ) scende da 9 V a 7 V in circa 7,5 ore con un assorbimento di corrente di 50 mA. Pertanto, un'ipotesi approssimativa è che il tuo circuito assorba circa 25 mA, che suona proprio sulla base della descrizione del tuo circuito.

Nota, la durata della batteria alcalina non è lineare rispetto alla corrente. Per correnti molto piccole (<1mA) la durata di una batteria alcalina si avvicina a quella di una batteria al litio.

Abbassarsi

Ecco alcuni suggerimenti per ridurre il consumo attuale:

  • Regolatore: sostituire il regolatore con uno con una corrente di riposo bassa o, meglio ancora, un regolatore di commutazione (anche con una corrente di riposo bassa). Un regolatore di commutazione utilizza "impulsi" di corrente e alcuni induttori e condensatori esterni per fornire un'uscita di tensione stabile e ragionevole. Non spreca energia come con la caduta di tensione del regolatore lineare e l'efficienza nell'alto 90% è possibile.

    • Ci sono convertitori buck (step down) che prendono la batteria come input, quindi si collegano direttamente a 5V e GND, bypassando VIN e il regolatore. Questo di Pololu si muove su e giù e ha una corrente di quiescenza di 0,1 mA.
    • In alternativa, è possibile utilizzare alcune batterie alcaline da 1,5 V e un convertitore boost (step up) per ottenere una tensione fino a 5 V (ad esempio questo prodotto di Sparkfun). Sembra che i convertitori boost siano più comunemente forniti.
    • Infine, è possibile acquistare una batteria al litio ricaricabile con schermo di ricarica. Questo vantaggio non è quello di dover acquistare nuove batterie, e per un po 'più grande di una batteria da 9 V quella al litio ha una capacità molto maggiore. Un prodotto davvero interessante è il kit impermeabile stalker seeeduino che include un circuito di ricarica, batteria, pannello solare e altri gadget.
  • ATMega328P: Invece di utilizzare delayper il cronometraggio e la rotazione in loopattesa infinita di qualcosa, riscrivi il codice in modo che vada a dormire tra le letture del sensore, ecc. Ci sono alcune librerie a bassa potenza là fuori che usano il timer watchdog per sveglia periodica dal sonno che sono utili. Durante il sonno è possibile ottenere un consumo attuale di ATMega328P inferiore a 0,1 mA.

  • LCD: disattiva la retroilluminazione o persino l'intero LCD. Aggiungi un pulsante al design che l'utente può premere per attivare il display LCD e farlo spegnere dopo un determinato periodo di inattività.

  • Periferiche: la maggior parte dei chip periferici ha anche una modalità di sospensione che riduce drasticamente il consumo di energia. Rimuovere i LED di alimentazione e altri indicatori non necessari.

  • ATMegu16U2: commenti di user2973 Sembra che questo chip abbia molta fame di energia ( user2973 ). Potrebbe essere rimosso per risparmiare energia e utilizzare invece l'UART, ma sembra eccessivo. Ci sono schede Arduino Pro che sono solo le ossa nude di Arduino senza l'interfaccia USB che potrebbero essere utilizzate al posto di UNO.

  • Batterie: altre celle alcaline hanno una capacità molto maggiore. Ad esempio, un AA da 1,5 V ha oltre 2000 mAh per basse correnti. L'uso di celle AA più un convertitore boost può aumentare il tempo prima della sostituzione della batteria. Usa celle D (16000 mAh) e funzionerà per un bel po '. : D

Sommario

Con l'alimentatore e la codifica appropriati è possibile ottenere una durata ragionevole della batteria. Utilizzando i principi di cui sopra, ho creato una scheda derivata Arduino che misura alcuni sensori e memorizza le letture su una scheda SD ogni mezzo secondo. Può durare per circa 4 mesi con 2 batterie AA, quindi è sicuramente possibile avere poca energia e rimanere nell'ecosistema Arduino.

Il chip che ho usato per la bassa potenza nella mia scheda è l'LTC3525-3.3V. Prende una tensione di ingresso di soli 0,8 V e aumenta fino a 3,3 V ed è disponibile anche una versione a 5 V. Ho progettato un PCB per questo chip in quanto non vi era alcuna rottura già pronta e nel foglio dati ci sono progetti di riferimento. Il criterio principale per la scelta di questo chip era che aveva ancora un'alta efficienza a correnti molto basse. Alcuni altri convertitori necessitano di un piccolo assorbimento di corrente minimo.

Il più grande consumatore di energia sulla scheda ha finito per essere la scheda micro SD. Può variare tra 0,1 mA e 1,5 mA di corrente inattiva a seconda del produttore. Ho scoperto che le carte Verbatim e Lexar consumano la minima quantità di energia. Farò questa domanda EE.SE aggiornata con i risultati dei test di consumo energetico della mia scheda micro SD.


1
Buona risposta approfondita. Nota: il consumo di energia da usb a seriale atmega16u2 che sarà molto significativo dopo aver risolto gli altri problemi.
user2973

@ user2973 hai un'idea di cosa potrebbe essere? Riesco a ottenere le caratteristiche tipiche dalla scheda tecnica, ma non l'ho inserito perché non so se il firmware è inattivo. Se sta funzionando normalmente, è 12 mA a 5 V, il che è un'attrazione significativa.
geometrikal,

@geometrikal, come si alimenta un Arduino con 2 batterie AA? Sono solo 3 volt, che è al di sotto del minimo. L'alimentatore che hai citato è un buck / boost? (Eccezionale risposta tra l'altro <votato>.)
Duncan C

1
@geometrikal, ti dispiacerebbe pubblicare un link a uno degli alimentatori buck che hai citato, come quello di SparkFun? Ho appena fatto qualche ricerca e non riesco a trovarlo. Per una lunga durata una fornitura di tipo buck sembra fondamentale, poiché la corrente inattiva da un regolatore di tensione convenzionale è significativa.
Duncan C

1
@geometrikal, hai detto "... Anche quando si fa cadere da 9 V a 5 V tramite un regolatore lineare, quasi la potenza viene persa dal regolatore a causa della sua caduta di 4 V" Non è quasi il doppio dell'assorbimento di POTENZA a riposo da 9 V e la potenza necessaria per ogni mA di 5 V? (Dato che il 4/9 della potenza viene sprecata come calore dal regolatore di tensione.) Sembra che eseguirlo da un convertitore buck come un TSR 1-2450 sarebbe meglio
Duncan C

3

Penso che un Arduino Uno non sia adatto a tali progetti. Alcuni componenti sulla scheda assorbono troppi amplificatori, come sottolinea correttamente @geometrikal. Se sei all'altezza di una sfida, ti consiglierei di portare il tuo progetto ad un altro livello e diventare barebone.

Sparkfun ha un buon articolo su come aumentare la durata della batteria, usando un ATmega328 che hai anche sul tuo Arduino Uno: https://www.sparkfun.com/tutorials/309

Cerca i modi per creare un circuito con solo i componenti di cui hai veramente bisogno e fai dormire il tuo microcontrollore il più possibile.


1

Un'altra opzione è quella di cercare un hardware (Arduino Clone) che è stato progettato per questo, come questa scheda: https://bitbucket.org/talk2/whisper-node-avr/overview

Combinando tale hardware con tecniche di codice a risparmio energetico dovresti essere in grado di eseguire progetti per un periodo piuttosto lungo con le batterie!

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.