Arduino alimenté par une batterie 9V

16

Hier après-midi, j'ai laissé mon Arduino fonctionner sur une nouvelle pile alcaline 9V (+ connectée à Vin, - connectée à GND). Aujourd'hui matin (16 heures plus tard), l'écran LCD n'était plus visible et lorsque j'ai mesuré la volatilité, j'ai vu la batterie s'épuiser à ma grande surprise - sa tension de repos n'était que de 7 V.

Mon appareil est Arduino Uno avec LCD 2x16 avec rétro-éclairage LCD et 2 capteurs DS18B20. Est-il normal qu'un tel appareil épuise la batterie 9V aussi rapidement?

J'ai lu une réponse à Quelles sont (ou comment utiliser) les options d'économie d'énergie de l'Arduino pour prolonger la durée de vie de la batterie? question et je pense que ce que je vois pourrait être lié à cela, mais je ne suis pas sûr. Si tel est le cas, existe-t-il des schémas communs sur la façon de connecter efficacement Arduino pour qu'il soit alimenté par une batterie?

Suma
la source
J'essayerais de fixer un multimètre et de mesurer le courant de la batterie avec le tout et avec l'écran et les capteurs déconnectés. N'essayez pas d'optimiser l'arduino si c'est autre chose qui tire le plus de puissance.
BowlOfRed du
@bowlofred "mesurer le courant de la batterie" - Fera, mais je dois d'abord acheter une nouvelle cellule 9V. :)
Suma
1
Les batteries 9V sont minuscules, seulement environ 500mAh. Le rétroéclairage LCD seul le tuera en quelques heures.
hobbs
Approche plus radicale pour l'économie d'énergie: 1. Utilisation de la carte TI MSP430 au lieu d'Arduino; 2. Utilisation d'un régulateur non linéaire; 3. Utilisation de l'écran LCD sans rétroéclairage (comme dans une calculatrice).
Vi.
@bowlofred Le courant total est de 61 mA. Sans rétro-éclairage, il est de 57 mA, sans écran LCD et sans capteur, il est de 56 mA.
Suma

Réponses:

21

Consommation d'énergie

Les cartes Arduino utilisent un peu de puissance par rapport à d'autres systèmes embarqués avec des fonctionnalités similaires.

Il y a trois facteurs principaux:

  • Le régulateur linéaire 5 V NCP1117 ( fiche technique ) de l'Arduino UNO R3 ( schéma ) a un courant de repos d'environ 6 mA.

  • L'ATMega328P ( fiche technique ) consomme environ 5 mA à 8 MHz et 5 V, et probablement plus du double à 16 MHz.

  • user2973: L'ATMega16U2 utilisé pour les communications USB consomme également environ 13 mA.

Les LED et autres périphériques consomment également du courant. Dans votre circuit, le rétro-éclairage LCD consomme probablement 4 mA également.

Lors de la chute de 9V à 5V via un régulateur linéaire, près de la moitié de la puissance est perdue par le régulateur en raison de sa chute de 4V. Duncan remarque que cela double presque la consommation d'énergie au repos de 9V ainsi que la puissance nécessaire pour chaque mA de 5V, car 4 / 9ème de la puissance est gaspillée sous forme de chaleur par le régulateur de tension. Un régulateur de commutation efficace produirait 5 V avec peu d'énergie gaspillée, réduisant efficacement la consommation de courant vue par la batterie de 4 / 9ème.

Une batterie duracell 9V ( fiche technique ) passe de 9V à 7V en environ 7,5 heures avec une consommation de courant de 50mA. Par conséquent, une estimation approximative est que votre circuit consomme environ 25 mA, ce qui semble à peu près correct en fonction de la description de votre circuit.

Remarque, la durée de vie des piles alcalines n'est pas linéaire par rapport au courant. Pour des courants très faibles (<1mA), la durée de vie d'une pile alcaline se rapproche de celle d'une pile au lithium.

Prendre du courant

Voici quelques conseils pour réduire la consommation actuelle:

  • Régulateur: remplacez le régulateur par un régulateur à faible courant de repos, ou mieux encore, un régulateur à découpage (également à faible courant de repos). Un régulateur à découpage utilise des «impulsions» de courant et certains inducteurs et condensateurs externes pour donner une sortie de tension stable raisonnable. Il ne gaspille pas d'énergie comme avec la chute de tension du régulateur linéaire et une efficacité de 90% élevée est possible.

    • Il existe des convertisseurs abaissés (abaissés) qui prennent la batterie en entrée, puis se connectent directement à 5V et GND, en contournant le VIN et le régulateur. Celui-ci de Pololu monte et descend à la fois et a un courant de repos de 0,1 mA.
    • Alternativement, vous pouvez utiliser des piles alcalines de 1,5 V et un convertisseur élévateur (élévateur) pour obtenir la tension jusqu'à 5 V (par exemple, ce produit de Sparkfun). Il semble que les convertisseurs boost soient plus généralement stockés.
    • Enfin, vous pouvez acheter une batterie au lithium rechargeable avec écran de chargement. Cet avantage n'est pas d'avoir à acheter de nouvelles batteries, et pour un tout petit peu plus gros qu'une batterie 9V, celle au lithium a une capacité beaucoup plus grande. Un produit vraiment cool est le kit étanche stalker seeeduino qui comprend un circuit de charge, une batterie, un panneau solaire et d'autres goodies.
  • ATMEGA328P: Plutôt que d' utiliser delaypour le moment et le filage en loopattente sans fin pour que quelque chose arrive, ré-écrire votre code afin qu'il va dormir entre lit capteur, etc. Il y a quelques bibliothèques de puissance faible là - bas qui utilisent la minuterie de chien de garde pour réveil périodique du sommeil qui est pratique. Vous pouvez obtenir la consommation actuelle de l'ATMega328P en dessous de 0,1 mA pendant le sommeil.

  • LCD: Désactivez le rétroéclairage, ou même la totalité de l'écran LCD. Ajoutez un bouton à la conception que l'utilisateur peut appuyer pour activer l'écran LCD et l'éteindre après une période d'inactivité définie.

  • Périphériques: la plupart des puces périphériques ont également un mode veille qui réduit considérablement leur consommation d'énergie. Retirez les voyants d'alimentation et autres indicateurs qui ne sont pas nécessaires.

  • ATMegu16U2: user2973 commentaires Il semble que cette puce est assez avide de pouvoir ( user2973 ). Il pourrait être supprimé pour économiser de l'énergie et utiliser simplement l'UART à la place, mais cela semble exagéré. Il existe des cartes Arduino Pro qui ne sont que des Arduino sans os sans interface USB qui pourraient être utilisées à la place de l'UNO.

  • Piles: D'autres piles alcalines ont une capacité beaucoup plus grande. Par exemple, un 1.5V AA a plus de 2000mAh pour les faibles courants. L'utilisation de piles AA et d'un convertisseur boost peut augmenter le temps avant le remplacement de la batterie. Utilisez des cellules D (16000mAh) et cela fonctionnera pendant un bon moment. :RÉ

Sommaire

Avec une alimentation et un codage appropriés, vous pouvez obtenir une durée de vie raisonnable d'une batterie. En utilisant les principes ci-dessus, j'ai créé une carte dérivée Arduino qui mesure quelques capteurs et stocke les lectures sur une carte SD toutes les demi-secondes. Il peut durer environ 4 mois sur 2 piles AA, il est donc définitivement possible d'avoir une faible puissance et de rester dans l'écosystème Arduino.

La puce que j'ai utilisée pour la faible puissance de ma carte est la LTC3525-3.3V. Il prend une tension d'entrée aussi faible que 0,8V et augmente jusqu'à 3,3V et une version 5V est également disponible. J'ai conçu un PCB pour cette puce car il n'y avait pas de cassure prête à l'emploi, et dans la fiche technique il y a des modèles de référence. Le principal critère de choix de cette puce était qu'elle avait toujours un rendement élevé à des courants très faibles. Certains autres convertisseurs ont besoin d'une petite consommation de courant minimum.

Le plus gros consommateur d'énergie sur la carte a finalement été la carte micro SD. Elle peut varier entre 0,1mA et 1,5mA de courant de repos selon le fabricant. J'ai trouvé que les cartes Verbatim et Lexar consomment le moins d'énergie. Je vais poser cette question EE.SE à jour avec les résultats de mes tests de consommation d'énergie de la carte micro SD.

geometrikal
la source
1
Bonne réponse approfondie. Remarque: la consommation d'énergie de l'USB en série atmega16u2 qui sera très importante après avoir résolu les autres problèmes.
user2973
@ user2973 avez-vous une idée de ce que cela pourrait être? Je peux obtenir les caractéristiques typiques de la fiche technique, mais je ne l'ai pas insérée car je ne sais pas si le firmware a du sommeil. S'il fonctionne simplement normalement, c'est 12mA @ 5V, ce qui est un tirage important.
geometrikal
@geometrikal, comment alimentez-vous un Arduino avec 2 piles AA? C'est seulement 3 volts, ce qui est inférieur au minimum. L'alimentation que vous avez mentionnée est-elle une alimentation buck / boost? (Réponse exceptionnelle au fait <voté>.)
Duncan C
1
@geometrikal, cela vous dérangerait-il de publier un lien vers l'une des alimentations électriques que vous mentionnez, comme celle de SparkFun? J'ai juste fait quelques recherches et je ne le trouve pas. Pour une longue durée de vie, une alimentation de type buck semble critique, car le courant de ralenti d'un régulateur de tension conventionnel est important.
Duncan C
1
@geometrikal, vous avez dit "... De plus, lors de la chute de 9V à 5V via un régulateur linéaire, presque toute la puissance est perdue par le régulateur en raison de sa chute de 4V" Cela ne fait-il pas presque doubler la consommation de puissance au repos de 9V ainsi que la puissance nécessaire pour chaque mA de 5V? (Étant donné que les 4 / 9ème de la puissance sont gaspillés sous forme de chaleur par le régulateur de tension.) Il semble que le faire fonctionner avec un convertisseur abaisseur comme un TSR 1-2450 serait mieux
Duncan C
3

Je pense qu'un Arduino Uno ne convient pas à de tels projets. Certains composants de la carte consomment trop d'amplis, comme le souligne @geometrikal correctement. Si vous êtes à la hauteur d'un défi, je vous conseillerais de prendre votre projet à un autre niveau et d'aller à l'essentiel.

Sparkfun a un bon article sur la façon d'augmenter la durée de vie de la batterie, en utilisant un ATmega328 que vous avez également sur votre Arduino Uno: https://www.sparkfun.com/tutorials/309

Cherchez des façons de créer un circuit avec uniquement les composants dont vous avez vraiment besoin et laissez votre microcontrôleur dormir autant que possible.

Franklin
la source
1

Une autre option consiste à rechercher un matériel (Arduino Clone) qui a été conçu pour cela, comme cette carte: https://bitbucket.org/talk2/whisper-node-avr/overview

En combinant un tel matériel avec des techniques de code d'économie d'énergie, vous devriez pouvoir exécuter des projets assez longtemps sur piles!

Talk2
la source