lundi 18 février 2019

Alimenter un ARDUINO sur Pile ou Batterie

Alimenter un ARDUINO sur Pile ou Batterie


Cet article vise à examiner en profondeur la possibilité d'alimenter un montage ARDUINO sur piles ou batteries.

Sur certains forums il est courant de devoir répondre à des question naïves :

J'alimente mon ARDUINO UNO avec une pile 9V. Celle-ci est vide au bout de 3 heures. Comment se fait-il ?

Je voudrais alimenter une carte relais en 5V via une pile 9V. Que me faut-il comme régulateur ?

Sur ma carte UNO, j'ai un lecteur RFID et un servo-moteur sur le 5V. Tout fonctionne très bien en alimentant par le câble USB mais en alimentant avec une pile 9V, le moteur tremblote à peine.

Afin de répondre immédiatement à ces questions : une pile 9V de 170mAH ne peut absolument pas fournir de courant important. De plus sa capacité vous garantit quelques heures de fonctionnement avec une carte ARDUINO UNO ou NANO sans moteur ni relais, et pas plus.

Tous les processeurs actuels peuvent fonctionner dans deux modes :

Mode éveillé
Le processeur tourne à sa vitesse normale et consomme plusieurs mA. Faire fonctionner un processeur dans ce mode sur batterie pendant une longue période requiert une batterie énorme :
Par exemple une UNO consommant 25mA de manière permanente demande une énergie conséquente : 600mAH par jour, 18000mAH par mois.

Mode veille
Activer le mode veille du processeur permet de le faire fonctionner en basse vitesse. Le réveil du processeur peut être effectué soit par le timer RTC ou une interruption sur une pin digitale.
Certains composants sur la carte peuvent consommer aussi :
  • LED power
  • régulateur
  • convertisseur USB / série
  • etc.
Pour correctement aborder un projet basse consommation il faudra de préférence choisir une carte ARDUINO PRO MINI modifiée, une STM32 BLUE PILL ou une carte à base de STM32 M0.
Par exemple une PRO MINI en mode veille consommant 5µA de manière permanente demande une énergie ridicule : 0.12mAH par jour, 3.6mAH par mois, 44mAH par an.

J'ai déjà écrit quelques articles sur la consommation des cartes ARDUINO et la PRO MINI :
https://riton-duino.blogspot.com/2018/12/consommation-dune-carte-arduino.html
https://riton-duino.blogspot.com/2018/02/arduino-pro-mini-basse-consommation.html

Je tiens à préciser que l'élaboration d'une solution basse consommation fonctionnant sur batterie requiert de bonnes connaissances aussi bien en matière d'électronique qu'en matière de logiciel.
Du matériel de mesure est souvent indispensable, tel un multimètre capable de mesurer des courants faibles de l'ordre du µA .
La suite de l'article n'est malheureusement pas accessible facilement au débutant.

1. Piles ou batteries

En dehors de fait que contrairement à une pile une batterie se recharge, il faut considérer les caractéristiques de chaque technologie, en particulier la tension nominale et maximale en fin de charge :

Technologie Recharge Tension nominale Tension maximale Tension minimale
Plomb Oui 2.1V 2.33V 1.8V (*)
Alcaline Non 1.5V

Ni-MH Oui 1.2V 1.4V 1.1V
LITHIUM-ION Oui 3.7V 4.2V 3V
LIPO Oui 3.7V 4.2V 3V
LiFePO4 Oui 3.3V 3.6V 2.5V

(*) certaines batteries cycliques acceptent de voir leur tension chuter à 1.6V.

Afin de protéger les circuits alimentés la tension de fin de charge sera prise en compte. La tension nominale n'est qu'indicative.

La tension minimale est celle en dessous de laquelle la batterie, si on la décharge trop profondément, subira des dommage souvent irréversibles.

1.1. Le choix

Le choix d'une pile ou d'une batterie devra tenir compte de certains paramètres :
  • tension et courant de service
  • environnement
  • prix
  • autonomie envisagée (périodicité de la recharge)
  • disponibilité des chargeurs

1.2. Les technologies

Les piles
Les piles ont le gros inconvénient de ne pas être rechargeables ce qui les désavantage d'un point de vue écologique et financier.

Elles ont par contre l'avantage d'un courant d'auto-décharge très faible.

Les batteries au plomb
Ces batteries ont un encombrement important et sont lourdes.

Ces batteries sont peu utilisées pour alimenter des montages n'ayant pas besoin directement d'une tension de 12V.

Elles sont cependant capables de fonctionner correctement par grand froid, ce qui les rend indispensables dans les applications censées fonctionner à l'extérieur.

Les batteries au plomb du type cyclique (chariot élévateur, fauteuil roulant, alimentation solaire, onduleur, etc.) supportent d'être fortement déchargées.
Les batteries au plomb classiques (batteries de voiture) ne le supportent pas.

Les batteries NI-MH
Le principal défaut des batteries NI-MH est leur effet mémoire. Cela réduit leur utilisation à des systèmes autonomes où la recharge de la batterie intervient lorsque celle-ci est vide ou presque.

Les nouvelles batteries NI-MH ont un taux d'auto-décharge faible. Il s'agit des batteries LSD (Low Self Discharge) :
  • Duracell Stay Charged
  • Varta Ready2Use
  • Sanyo Eneloop
  • Tenergy Centura
Elles sont vendues pré-chargées.

Les chargeurs du commerce sont nombreux, mais les modules chargeurs à intégrer dans un montage sont rares. Il est cependant possible d'en fabriquer à l'aide de circuits intégrés :
Ces circuits peuvent être laissés branchés en permanence sur la batterie, le courant de fuite de leur broche de mesure de la tension batterie est très faible : 1 µA à 5µA.

Les batteries LIPO et LITHIUM-ION
Ces batteries disposent d'un rapport capacité / encombrement important.

Les LIPO sont le plus souvent plates et peuvent se glisser facilement dans un boîtier.

Les chargeurs du commerce sont nombreux, et le choix de modules chargeurs à intégrer dans un montage est large.

Les batteries LIFEPO4
Ces batteries disposent aussi d'un rapport capacité / encombrement important.

Elles ont le gros avantage de fournir une tension maximale de 3.6V compatible avec un grand nombre de processeurs, circuits et modules du marché.

2. Tension et courant de service

Choisir une technologie passe par la connaissance des composants que l'on va devoir alimenter. Il faut étudier les datasheets de chacun d'eux afin de déterminer la tension optimale et les courants consommés.

Je vous propose quelques exemples. Pour plus de précisions à propos des composants, suivre les liens :


Module Tension d'alimentation Courant nominal Courant de veille
ARDUINO UNO NANO 4V - 6V 25mA 6mA
ARDUINO PRO MINI 2.7V - 6V 5.5mA 1.4mA
ARDUINO PRO MINI modifiée 2.7V - 6V 5.5mA 5µA
STM32 BLUE PILL 2V - 3.6V 15mA @ 16MHz
50mA @ 72MHz
1.4µA
Capteurs température et humidité 1.4V - 5V 10µA - 600µA 0.1µA - 50µA
Capteur de présence 3.3V - 12V 260µA 60µA
NRF24L01 1.9V - 3.6V 12mA 1µA
RFM95 1.8V - 3.7V 120mA 1µA
HC-05 1.8V - 3.6V 40mA 8mA
ESP8266 (1) 2.5V - 3.6V 80 - 170mA 20µA (2)
ESP32 (1) 2.3V - 3.6V 80 - 240mA 5µA
ESP01 (carte) 2.3V - 3.6V 80 - 240mA 30µA (3)

(1) Il s'agit de la consommation du module seul :
Les cartes ESP8266 du genre NodeMCU consomment forcément plus.
Pour utiliser un module ESP8266 sur breadboard sans composants annexes, il existe des cartes nues :

(2) La datasheet précise : 20µA à 2.5V, mais j'ai essayé un ESP-12E sous 3.3V qui avait une consommation de 19µA en deep-sleep.

(3) Il s'agit d'un ESP01 sur lequel la LED rouge a été éliminée. Cela se fait très facilement en la faisant sauter avec l'ongle :
Attention : pendant la phase de connexion au réseau WIFI, un ESP8266 ou ESP32 peut consommer jusqu'à plus de 400mA.

Choix de la batterie
La tension de service de la batterie devra être la plus proche possible de celle requise par le module le plus exigeant en matière de tension.
Si par exemple le besoin est d'alimenter un ARDUINO PRO MINI et un NRF24L01, la batterie devra fournir au minimum 2.7V et au maximum 3.6V.

1er choix possible : LITHIUM-ION (tension mini 3V, tension maxi 4.2V)
Le NRF24L01 ne supportera pas la tension maximale. Un régulateur 3.3V sera utilisé.
Comme l'ARDUINO PRO MINI peut se contenter de 3.3V, le régulateur pourra alimenter les deux composants.
Le NRF24L01 fonctionnera encore lorsque la batterie atteindra sa tension minimale de 3V, ainsi que l'ARDUINO.

2ème choix possible : LifePo4 (tension mini 2.5V, tension maxi 3.6V)
L'ARDUINO et le NRF24L01 peuvent être alimentés sans danger avec cette batterie et ceci sans régulateur.
Le NRF24L01 fonctionnera encore lorsque la batterie atteindra sa tension minimale de 2.5V.  L'ARDUINO décrochera à 2.7V.
Ce montage ne permet pas de profiter totalement de la capacité de la batterie.
On pourrait envisager de remplacer la PRO MINI par une STM32 BLUE PILL qui elle fonctionnera encore sous 2V.

3ème choix possible : 3 x NI-MH (tension mini 3.3V, tension maxi 4.2V)
Le NRF24L01 ne supportera pas la tension maximale. Un régulateur 3.3V sera utilisé.
Comme l'ARDUINO PRO MINI peut se contenter de 3.3V, le régulateur pourra alimenter les deux composants.
Le NRF24L01 fonctionnera encore lorsque la batterie atteindra sa tension minimale de 3.3, ainsi que l'ARDUINO.

4ème choix possible : 2 x NI-MH (tension mini 2.2V, tension maxi 2.8V)

L'ARDUINO et le NRF24L01 peuvent être alimentés sans danger avec ces batteries et ceci sans régulateur.
Le NRF24L01 fonctionnera encore lorsque la batterie atteindra sa tension minimale de 2.2V. L'ARDUINO décrochera à 2.7V.
Ce montage ne permet absolument pas de profiter de la capacité de la batterie.
On pourrait envisager de remplacer la PRO MINI par une STM32 BLUE PILL qui elle fonctionnera encore sous 2V.

3. Besoins en matière de régulation

En fonction des composants et de la batterie choisis les besoins en matière de régulation peuvent être différents.

Comme on le voit dans le tableau précédent, certains modules supportent au maximum 3.6V et il est hors de question de les alimenter en 5V ou directement par une batterie LITHIUM-ION qui fournira une tension de 4.2V à pleine charge.

La batterie LiFePO4 peut être une solution intéressante.

Si l'on utilise une LITHIUM-ION il faudra obligatoirement intercaler un régulateur entre celle-ci et les modules.
Vous trouverez un large choix ici:
https://riton-duino.blogspot.com/2018/11/les-regulateurs-ldo.html

4. Environnement

En fonction de l'environnement et surtout de la température, certains choix s'imposent :
Pratiquement, seules les batteries au plomb sont capables de fonctionner correctement par grand froid.
Il faudra bien étudier la datasheet de la batterie avant de faire son choix.

5. Autonomie

Avant tout, attention : les batteries LITHIUM-ION chez ALI-EXPRESS ou autre chinoiseries sont annoncées avec des capacités délirantes.
J'ai par exemple testé des batteries 18650 6000mAH qui font en réalité moins de 1000mAH.
Voir ICI

En fonction des choix effectués, le besoin en autonomie sera extrêmement variable.
Considérons 3 modes de fonctionnement possibles :
  • mode autonome
  • recharge périodique
  • recharge permanente
Mode autonome
Le montage est alimenté par une batterie et celle-ci est rechargée manuellement lorsque sa capacité atteint son minimum.

En fonction des technologies, certains choix de batterie vont s'imposer :

Une batterie au plomb classique sera inadaptée. Ces batteries ne supportant pas d'être déchargées en dessous de 1.8V par élément.

Tous les autres types de batterie peuvent convenir.

Recharge périodique
Le montage est alimenté par une batterie rechargée périodiquement, par exemple par un chargeur solaire.

Là aussi, en fonction des technologies, certains choix de batterie seront à proscrire :

Une batterie NI-MH sera inadaptée. Ces batteries ne supportant pas d'être rechargées si la capacité restante est trop élevée (effet mémoire). Une batterie au plomb classique peut convenir à condition que la tension ne descende pas en dessous de 1.8V par élément.

Tous les autres types de batterie peuvent convenir.

La durée de fonctionnement entre deux recharges sera déterminante pour le choix de la capacité de la batterie.
Dans le cas d'une recharge par panneau solaire, on prendra en compte :
  • la durée maximale d'ensoleillement journalier (courte en hiver)
  • la durée maximale d'ensoleillement réduit (temps couvert)
Pendant une période de temps couvert, un panneau solaire peut fort bien ne  fournir que 10% de sa puissance nominale.

Recharge permanente
Le montage est alimenté par une batterie rechargée en permanence, par exemple par un chargeur secteur.
Ce type d'alimentation convient dans le cas où l'on a besoin d'une alimentation de secours en cas de disparition de la tension secteur. La batterie sert de tampon.

Pratiquement, seule une batterie au plomb peut convenir. On appelle ce type de charge "floating". Il est préférable d'investir dans une batterie cyclique si les coupures secteur envisagées sont de longue durée.

Tous les autres types de batterie sont à éviter.

On peut aussi utiliser une super-capacité comme réserve tampon.

5.1. Mode veille ou non

Quand le choix des composants est fait, il va falloir premièrement déterminer si le fonctionnement en mode veille est possible.

Certains composants comme le HC-05 n'en possèdent pas.

Certains autres composants comme le NRF24L01, le RFM95, les ESP8266 et ESP32 en possèdent un mais il est évidemment activable uniquement si le module est utilisé en mode client. En mode serveur, la réception est activée en permanence, donc le mode veille n'est pas activable.

Pour développer une solution basse consommation, le mode veille du micro-contrôleur doit être activé, mais aussi celui des modules qui en possèdent un.

Généralement on considère que si le mode veille n'est pas activable, la possibilité d'alimenter un processeur à l'aide d'une batterie en mode autonome est fortement compromise.
En effet si l'on considère qu'un ARDUINO NANO consomme une trentaine de mA en étant éveillée en permanence, la consommation d'énergie sera de :

30 * 24 * 365 = 262800mAH par an

Soit l'équivalent de 100 batteries 18650 de 2600mAH chacune.

En faisant le calcul dans l'autre sens, une batterie de 2600mAH aura une autonomie égale à :

2600 / 30 / 24 = 3.6 jours

L'alimentation d'une carte de ce type sans mode veille est bien sûr envisageable mais pas de manière permanente.

Mon voltmètre / ampèremètre USB peut être alimenté par deux batteries 18650, mais il est équipé d'un interrupteur marche / arrêt.

5.2. Bilan des consommations

Le bilan des consommations va directement permettre de déterminer la capacité de la batterie. Ce bilan se décompose ainsi :
  • le courant en mode veille
  • le courant en mode éveillé, qui est périodique
Exemple N°1
Prenons comme exemple un capteur de température autonome alimenté par une batterie LITHIUM-ION.

Le courant en mode éveillé sera équivalent à :
  • ARDUINO PRO MINI modifié : 5.6mA
  • capteur DS18B20 : 4mA
  • module NRF24L01 : 12mA
  • régulateur LM2936 : 15µA
La lecture de la température sur le DS18B20 et l'émission du résultat par le NRF24L01 ne se produiront pas simultanément. On peut donc dire que le courant maximal sera d'environ 18mA.
Le courant va varier énormément entre le moment où le processeur va se réveiller, mesurer la température et émettre le résultat. Sans un appareil de mesure adéquat, cela va être difficile à estimer.

Après quelques mesures à l'aide d'un banc de mesure de consommation (voir paragraphe suivant) on peut estimer que la phase de réveil va durer un trentaine de ms et le courant moyen sera de 10mA.
L'émission a lieu 4 fois par heure pendant 30ms, donc 120ms au total, ce qui représente 1/30000è d'heure.
La consommation en mode éveillé est donc de 10mAH / 30000 = 0.333µAH.

Le courant en mode veille sera équivalent à :
  • ARDUINO PRO MINI modifié : 5µA
  • capteur DS18B20 : 1µA
  • module NRF24L01 : 1µA
  • régulateur LM2936 : 15µA
La consommation en mode veille est donc de 22µA.

Fixons-nous un objectif d'autonomie : 365 jours.

Le bilan de consommation d'énergie sera le suivant :
Consommation d'énergie en mode veille : 22µAH x 24 x 365 = 192mAH
Consommation d'énergie en mode éveillé : 0.33µAH x 24 x 365 = 3mAH
Nous obtenons donc un total de 195mAH.

En prenant en compte le fait qu'une batterie LITHIUM-ION a un léger courant d'auto-décharge, une batterie de 250mAH sera parfaitement à l'aise dans ce montage.

Cela nous conduit à adopter une batterie au format 16340 (ou CR123), intéressante pour son faible encombrement, ou une petite LIPO.

Exemple N°2
Imaginons que nous remplacions la PRO MINI par une NANO. Nous ne pourrons pas l'alimenter par une batterie de 3.7V. Il en faudra 2 et alimenter par la broche VIN.

Le courant en mode éveillé sera équivalent à :
  • ARDUINO NANO : 32mA
  • capteur DS18B20 : 4mA
  • module NRF24L01 : 12mA
  • régulateur LM2936 : 15µA
On estime que le courant moyen sera de 35mA.

La consommation en mode éveillé est donc de 35mAH / 30000 = 1.16µAH.

Le courant en mode veille sera équivalent à :
  • ARDUINO NANO : 12.5mA
  • capteur DS18B20 : 1µA
  • module NRF24L01 : 1µA
  • régulateur LM2936 : 15µA
La consommation en mode veille est donc de 12.5mA.

Pour un objectif d'autonomie de 365 jours le bilan de consommation d'énergie sera le suivant :
Consommation d'énergie en mode veille : 12.5mAH x 24 x 365 = 109000mAH
Consommation d'énergie en mode éveillé : 1.16µAH x 24 x 365 = 10mAH
Nous obtenons donc un total de 109010mAH.

Ce n'est pas la peine d'aller plus loin. Il faudrait une batterie de camion. Le fonctionnement en mode autonome pour ce genre de cas est inadapté. Autant adopter une alimentation secteur ou un rechargement par énergie solaire.

Exemple N°3
Un détecteur de passage autonome alimenté par une batterie LITHIUM-ION.

Le capteur de présence HC-SR501 consomme 60µA en mode veille, ce qui est nettement supérieur au 1µA d'un DS18B20. On peut déjà dire que la batterie de ce montage devra avoir capacité supérieure si l'on veut disposer d'une autonomie d'un an.

Le principe de calcul sera le même que pour l'exemple N°1, sauf qu'il va vous falloir estimer le nombre de passages dans la journée pour calculer la dépense d'énergie en mode éveillé.

5.3. Le TPL5110

Vous avez un montage à base d'ARDUINO classique 5V (UNO, NANO) et vous aimeriez l'alimenter par batterie.
Si ce montage effectue une tâche périodique et passe la majeure partie de son temps à ne rien faire, tout n'est pas perdu :


Le TPL5110 est un circuit temporisateur. Il permet d'alimenter un montage périodiquement, avec une période allant de 100ms jusqu'à deux heures.

Ce module AdaFruit consomme 20µA.
Il embarque un MOSFET canal P DMG3415 pouvant délivrer 4A.


Ce schéma comporte 2 batteries 3.7V et un régulateur 5V pouvant délivrer 250mA. Ce régulateur consomme 4µA au repos.
Si vous avez besoin de plus ou moins de courant, il peut être remplacé par d'autres modèles :
  • HT7150 : 30mA (2.5µA de courant de repos)
  • HT7550 : 100mA (2.5µA de courant de repos)
  • HT7850 : 250mA (4µA de courant de repos)

Lorsque votre montage a terminé son travail, il n'a plus qu'à le signaler par la broche DONE (5V) pour couper l'alimentation.

Cela implique une légère modification de votre montage :
- un petit fil à ajouter
- une petite modification du logiciel

6. Vérification

Après avoir élaboré le montage électronique et le code, il va falloir procéder à la vérification de la consommation.

Quel moyen utiliser ?

Un banc de mesure comme celui-ci est très appréciable :
https://riton-duino.blogspot.com/2018/07/banc-de-mesure-de-consommation.html
Ou bien celui-ci :
https://riton-duino.blogspot.com/2018/11/usb-un-voltmetre-amperemetre.html

Sinon, on peut utiliser un multimètre. Celui-ci ne sera pas capable cependant de tracer une courbe de consommation sur la durée, à moins d'investir dans un multimètre haut de gamme.

Une recommandation :
On ne mesure jamais la consommation d'un processeur avec un multimètre sur le calibre µA.
La résistance du shunt est trop importante et empêche le processeur de démarrer et encore plus de démarrer le WIFI si c'est un ESP8266 ou un ESP32.

Mon multimètre (20000 points) a une résistance (shunt) de 3Ω sur le calibre mA. Sur le calibre µA il passe à 100Ω.
Un ESP8266 qui démarre consomme au minimum 300 mA et jusqu'à plus de 400.
Avec un shunt de 100Ω en série il ne démarrera jamais.
Un shunt de 3Ω produira une chute de 1V. Il n'est même pas sûr que le démarrage s'effectue (on peut peut-être améliorer la chose avec un gros condensateur en parallèle sur les broche 5V et GND ?).

Pour mesurer la consommation d'un processeur en mode veille, on peut placer un bouton-poussoir en parallèle sur le multimètre :

Appuyer sur le bouton-poussoir pendant la phase de démarrage et le relâcher une fois que l'on est sûr que le processeur est en mode veille.

7. Surveillance

Une fois que le montage est en situation réelle, la surveillance de la tension batterie est vitale pour la durée de vie de celle-ci. Cette surveillance sera de préférence automatisée, c'est à dire que le micro-contrôleur devra mesurer la tension de la batterie périodiquement.
La tension de la batterie peut être utilisée afin de déterminer la capacité restante.

Pour une batterie LITHIUM-ION :
  • 4.2V : 100%
  • 3.85V :  75%
  • 3.42V : 25%
  • 3.0V : 3%
Cette information peut être utilisée de différentes manières :
  • faire clignoter une LED
  • activer un buzzer
  • remonter l'information à un serveur
  • refuser d'assurer le fonctionnement
  • etc.
Faire clignoter une LED ou faire retentir un buzzer est possible tant que le courant moyen consommé est faible. A partir du moment où la batterie a atteint son seuil critique de tension minimale admissible, il vaut mieux ne plus avertir, car cela entraînerait le décès de la batterie.

7.1. Mesure

La mesure de la tension de la batterie doit être effectuée à l'aide de l'ADC du micro-contrôleur. La mesure d'une tension batterie doit être précise.
Avec un ARDUINO, deux cas peuvent se présenter :

La tension d'alimentation est égale à la tension de la batterie
Ce cas est rare. Il correspond par exemple à l'utilisation de deux piles 1.5V ou une batterie de 3.7V pour alimenter un ARDUINO PRO MINI et des modules supportant cette tension, sans régulateur.
Dans ce cas, la tension d'alimentation peut être mesurée directement sans composant supplémentaire à l'aide de ce code (provenant d'ICI) :

#define VREF                  1.1 
unsigned int analogReadReference(void)
{
  /* Elimine toutes charges résiduelles */
  ADMUX = 0x4F;
  delayMicroseconds(5);
  /* Sélectionne la référence interne à 1.1 volts comme point de mesure */
  ADMUX = 0x4E;
  delayMicroseconds(200);
  /* Active le convertisseur analogique -> numérique */
  ADCSRA |= (1 << ADEN);
  /* Lance une conversion analogique -> numérique */
  ADCSRA |= (1 << ADSC);
  /* Attend la fin de la conversion */
  while(ADCSRA & (1 << ADSC));
  /* Récupère le résultat de la conversion */
  return ADCL | (ADCH << 8);
}


void loop() {
  float voltage = (1023 * VREF) / analogReadReference();
}

La tension de la référence interne est peu précise (10%).
Celle-ci peut être mesurée sur la broche VREF de l'ARDUINO lorsque ce code s'exécute. On prendra soin de modifier la valeur de VREF dans le code afin d'obtenir une plus grande précision.

La tension d'alimentation est inférieure à la tension de la batterie
Dans ce cas, la tension d'alimentation doit être mesurée à l'aide d'un pont diviseur, car sinon, l'entrée de l'ADC sera saturée ou endommagée :
Il est possible et même conseillé d'utiliser des valeurs de résistance importantes afin de minimiser la consommation du pont diviseur.
Une valeur proche du MΩ aura une consommation de 3.3µA sous 3.3V, c'est à dire supérieure à celle du microcontrôleur.
Attention cependant : choisir une valeur très élevée (10MΩ par exemple) rendra la mesure très sensible aux perturbation électromagnétiques.

La tension sur l'entrée analogique doit être inférieure à la tension de référence.

Exemple :
On mesure une tension de batterie LITHIUM-ION (3.7V nominaux mais 4.2V à pleine charge) :

Ue = tension d'entrée
Us = tension de sortie
Sur le schéma :
R2 = 1MΩ
R3 = 330KΩ
Le rapport du pont diviseur est de 330000 / (1000000 + 330000) = 0.248
Us = Ue * R3 / (R2 + R3) = 4.2 * 330000 / (1000000 + 330000) = 1,042V
1.04V est en dessous de 1.1V -> c'est OK
Le courant consommé par le pont diviseur sera de :
Courant = Ue / (R2 + R3) = 4.2V / (1000000 + 330000) = 3µA

On mesurera la tension de la batterie comme ceci :

#define VREF                  1.1  // à mesurer au multimètre sur la broche VREF

  unsigned int adc = analogRead(0);
  // 0.248 = rapport du pont diviseur
  float v = adc * VREF / 1023 / 0.248;

Influence de la température
La tension de la référence interne varie également en fonction de la température, et elle varie de façon non linéaire :
http://ww1.microchip.com/downloads/en/AppNotes/doc8060.pdf

Cela ne va pas être facile d'obtenir une mesure fiable en extérieur, à moins d'utiliser une tension de référence externe précise et variant peu en fonction de la température.

On peut utiliser un très bon régulateur comme source de tension d'alimentation et il peut servir en même temps de tension de référence.
La tension du régulateur HT7533-1 par exemple varie de 0.5mV par degré.
Entre -10° et 40° on obtiendra 25mV de variation, ce qui est acceptable.

On pourrait l'utiliser comme référence pour l'ADC. Nous n'utilisons plus la référence interne 1.1V mais la référence par défaut : 3.3V.
La tension sur l'entrée analogique doit être inférieure à la tension de référence.
Il faut recalculer le pont diviseur :

R2 = 390KΩ
R3 = 1MΩ
Le rapport du pont diviseur est de 1000000÷(390000+1000000) = 0.719
Us = Ue * R3 / (R2 + R3) = 4,2×1000000÷(390000+1000000) = 3.02V
3.02V est en dessous de 3.3V -> C'est OK

Éventuellement on peut mesurer la tension du régulateur au froid (frigo) et au chaud (radiateur) tout en mesurant la température avec un thermomètre pour appliquer une petite correction dans le logiciel.

Détermination de la capacité

Le calcul de la capacité restante peut être effectué comme ceci, à l'aide d'une table. Le code inclut la mesure de la tension :

#define VREF                  1.1  // à mesurer au multimètre sur la broche VREF
 
struct batteryCapacity
{
  float voltage;
  int capacity;
};

const batteryCapacity remainingCapacity[] = {
  4.20,   100,
  4.10,   96,
  4.00,   92,
  3.96,   89,
  3.92,   85,
  3.89,   81,
  3.86,   77,
  3.83,   73,
  3.80,   69,
  3.77,   65,
  3.75,   62,
  3.72,   58,
  3.70,   55,
  3.66,   51,
  3.62,   47,
  3.58,   43,
  3.55,   40,
  3.51,   35,
  3.48,   32,
  3.44,   26,
  3.40,   24,
  3.37,   20,
  3.35,   17,
  3.27,   13,
  3.20,   9,
  3.1,    6,
  3.00,   3,
};

const int ncell = sizeof(remainingCapacity) / sizeof(struct batteryCapacity);


unsigned int getBatteryCapacity(void)
{

  analogReference(INTERNAL);
  unsigned int adc = analogRead(0);
  float voltage = adc * VREF / 1023 / 0.248;
  for (int i = 0 ; i < ncell ; i++){
    if (voltage > remainingCapacity[i].voltage) {
      return remainingCapacity[i].capacity;
    }
  }
  return 0;
}


Si l'on utilise la première méthode de mesure sans pont diviseur, le code sera celui-ci :

unsigned int getBatteryCapacity(void)
{

  float voltage = (1023 * VREF) / analogReadReference();
  for (int i = 0 ; i < ncell ; i++){
    if (voltage > remainingCapacity[i].voltage) {
      return remainingCapacity[i].capacity;
    }
  }
  return 0;
}



8. Recharge

Le choix d'un chargeur - surtout  NI-MH - est critique. Il doit être automatique et précis. Il ne s'agit pas de détruire les batteries mais de les charger.

La recharge de la batterie va pouvoir s'opérer de différentes manières :
  • remplacement des batteries
  • chargeur extérieur
  • chargeur intégré

8.1. Remplacement des batteries

Ce mode de recharge et bien adapté aux batteries NI-MH, LITHIUM-ION, LIPO ou LifePo4, en utilisation autonome.

Les batteries vides sont remplacées par des batteries pleines. Cela suppose de pouvoir les démonter facilement, et le montage doit être équipé d'un support de batterie facilement accessible.

On utilise un chargeur du commerce pour recharger les batteries vides.

Un très bon chargeur NI-MH : le VoltCraft IPC-1-L :


Deux très bons chargeurs LITHIUM-ION :
Le Xtar MC2 :
Le Xtar VC4 :

 

8.2. Chargeur extérieur

Ce mode de recharge et adapté à tout types de batteries, en utilisation autonome ou recharge périodique.

Un connecteur de recharge doit être prévu sur le montage où l'on vient brancher le chargeur en cas de besoin.

Un très bon chargeur : le IMAX B6
Il est capable de charger des batteries NI-MH, LITHIUM-ION et LIPO.
Il est pourvu de connecteurs d'équilibrage.

Pour une batterie au plomb, choisir le chargeur en fonction de la capacité de la batterie. Il doit délivrer un courant équivalent au 1/10ème de la capacité de celle-ci.
Un chargeur de batterie au plomb doit être compensé en température car la tension de fin de charge varie en fonction de celle-ci.

8.3. Chargeur intégré

Ce mode de recharge et bien adapté aux batteries Plomb, LIPO et LITHIUM-ION, en utilisation autonome, recharge périodique ou permanente.

Pour une batterie plomb utilisée en floating, on trouve facilement des chargeurs secteur adaptés.

Les batteries NI-MH sont difficilement rechargeables par ce moyen. On ne trouve pas de modules adaptés ou très peu, et pour un seul élément. Il est cependant possible d'en fabriquer un à l'aide de circuits intégrés :
Pour les batteries LITHIUM-ION, on trouve d'excellents modules, par exemple à base de TP4056, capable de fournir 1A :
Il peut facilement être intégré dans un montage ou soudé sur un PCB. Pour recharger la batterie on branche sur le connecteur USB un petit chargeur de téléphone mobile.

Il est possible de charger des batteries 16340 de faible capacité avec ce chargeur, en utilisant une source 5V limitée en courant.

Le module peut être laissé connecté en permanence sur la batterie car il consomme très peu sur celle-ci : quelques µA.

On peut lui appliquer en entrée une tension maximale de 8V. Cette tension peut par exemple provenir d'un panneau solaire 5V.

L'idéal avec les batteries LITHIUM est d'arriver à 20% de décharge avant d'enclencher la recharge.
Cela n'empêche pas que l'on puisse les décharger entièrement, sans descendre toutefois en dessous de la barre des 3V. Descendre en dessous peut être destructeur.
Laisser la batterie en charge permanente n'est pas très bon pour sa durée de vie. Mais normalement avec le TP4056 ce n'est pas le cas.

8.3.1. Le TP4056 en test
J'ai réalisé quelques essais :
  • un TP4056
  • une batterie 18650 sur la sortie BAT
  • une résistance de 200KΩ sur la sortie OUT
  • un voltmètre sur la sortie OUT
  • recharge par USB avec ampèremètre en série
La résistance consomme 20µA, c'est à dire l'équivalent d'un ESP8266 en mode veille.

En recharge :
La LED rouge du TP4056 est allumée. En fin de charge l'ampèremètre USB mesure un courant de 100mA.
Le TP4056 coupe la charge lorsque la tension arrive à 4.23V. La LED bleue s'allume.
La sortie OUT ne se coupe pas, en tous cas pas dans cette configuration.

En décharge :
Une résistance de 10Ω est branchée sur la sortie OUT.
La LED rouge du TP4056 reste éteinte. L'ampèremètre USB mesure un courant de 0mA, ce qui prouve que la charge ne démarre pas.
Le TP4056 ré-enclenche la recharge lorsque la tension chute à 4.07V, ce qui correspond à 95% de capacité.
Ce n'est pas l'idéal, mais c'est mieux que rien.

L'idéal serait d'imaginer un mécanisme à base de comparateur, qui autoriserait la recharge à partir du moment où il reste 80% de capacité, ce qui correspond grosso modo à 3.9V.

Le TP4056 possède une patte CE (chip enable) qui met le chargeur hors service lorsqu'elle est à zéro.

Malheureusement cette patte n'est pas accessible sur les modules du commerce. Elle est reliée au +5V.
Il devrait être possible de dessouder cette patte de la carte et d'y souder un petit fil que l'on piloterait par une sortie du microcontrôleur en fonction de la tension de la batterie.

9. Attention : danger

Une batterie est capable de délivrer des courants importants, plus de 20A pour une 18650 courante.
Lorsque l'on élabore un montage devant fonctionner sur batterie un court-circuit peut être particulièrement destructeur.
Le montage doit être vérifié avant d'être mis sous tension. On vérifiera en priorité l'absence de court-circuit entre les bornes de d'alimentation, surtout s'il s'agit d'un PCB que l'on a fabriqué soi-même.

10. Conclusion

Je vous ai exposé le fruit de pas mal d'années de pratique en matière d'électronique et de logiciel embarqué basse consommation. J'espère que cela vous sera utile.

Quelques montages sur batterie sont proposés sur ce blog, ainsi que d'autres articles traitant de batteries :

https://riton-duino.blogspot.com/2018/01/un-thermometre-mysensors-sur-batterie.html
https://riton-duino.blogspot.com/2019/05/un-thermometre-hygrometre-mysensors-sur.html
https://riton-duino.blogspot.com/2018/04/un-detecteur-de-mouvement-mysensors-sur.html
https://riton-duino.blogspot.com/2018/05/batteries-lithium-ion.html
https://riton-duino.blogspot.com/2018/10/batteries-lithium-ion-recharge-en-serie.html

Cordialement
Henri

11. Mises à jour

24/06/2019 :  8.3.1. Le TP4056 en test
12/07/2019 :  5.3. Le TPL5110
02/05/2020 :  9. Attention : danger

52 commentaires:

  1. Bonjour,

    Sur l'Arduino pro mini, il y a une broche vref ? Ce serai celle qui est repéré RST ?
    Merci de tes éclaircissements.
    Cordialement,

    RépondreSupprimer
    Réponses
    1. Elle sert de reference externe pour les convertisseurs analogique numérique intégrés à l'arduino

      Supprimer
    2. Oui, bien entendu, mais sur la PRO MINI la broche est absente.

      Supprimer
  2. Effectivement, je n'y avais jamais prêté attention. Sur mes cartes PRO MINI j'ai deux pins RST.
    Entre ces deux pins je relève 0Ω, alors que sur une NANO je relève plusieurs MΩ entre RST et AREF.
    J'aurais tendance à dire que la pin AREF n'est pas ressortie sur les connecteurs.
    Ceci confirme : https://www.reddit.com/r/arduino/comments/57dadp/make_an_aref_pin_on_your_arduino_pro_mini_for/

    RépondreSupprimer
  3. merci pour les précisions et le lien. Mais je ne vais pas tenter la modif

    RépondreSupprimer
  4. Je ne commente que très rarement mais ici je tenais à dire que c'est vraiment un site de grande qualité que vous avez, merci pour toutes ces informations.

    RépondreSupprimer
  5. le code du programme svp !!!!!!!!!!!!!!

    RépondreSupprimer
  6. Pourrez-vous l'assisté pour un projet pris. C.a.d. un arduino qui sur demande externe (d'un téléphoné intelligent) celui-ci transmet son id et sa géo-localisation. L'unité sera équipée de piles (sans énergie branchée externe). Naturelle je m’attends a devoir assumer les coûts et les honoraires. Si pour vous se n'est pas possible, seriez-vous en mesure de référer à quelqu'un ou un autre. Merci

    RépondreSupprimer
    Réponses
    1. Désolé mais je suis en retraite et je compte bien en profiter. Je ne suis pas intéressé.

      Supprimer
  7. Bonsoir,

    Concernant l'exemple n°1, vous effectuez un calcul pour connaître la consommation lorsque la carte est éveillée pour faire son traitement.

    Vous dites que le traitement fait 30ms, tous les quarts d'heure soit 120ms.
    Et vous dites que c'est 1/500ème d'une heure.

    Or d'après mes calculs, c'est 1/500ème (120*500=60000ms soit une minute) d'une minute, soit 1/30000ème d'une heure (on redivise par 60 pour avoir le rapport à l'heure).
    Je ne sais pas si j'ai été clair.

    Après je n'exclus pas de m'être trompé quelque part, mais j'arrive pas à voir mon erreur si c'est le cas.
    Sinon, très bon article, ça m'a beaucoup aidé, merci !

    RépondreSupprimer
  8. Bonsoir, la Li-ion 1850, même que la tension nominale est de 3,6V, il faut quand même un régulateur pour ESP32, le LM6206-3.3 j'imagine(250mA 6V 250mV 7µA 3.55V) ?
    Input volatge 6V je suppose que c'est le voltage maximum, car la Li-ion 1850 donne 4,20 en tension de charge.

    C'est juste pour être sûr que j'ai bien tout compris.

    RépondreSupprimer
    Réponses
    1. Un ESP32 consomme plus de 400mA lorsqu'il se connecte au WIFI.
      Plutôt un ME6211 (500mA, 6V, 120mV, 40µA)
      Ou un RT9013 (500mA, 5.5V, 160mV, 25µA)

      Supprimer
  9. Etant un particulier je ne saurais malheureusement pas en acheter, par contre le MCP1825S je sais le recevoir de Chine dans un mois.
    De ce fait si j'utilise en attendant 3 piles AA(3X1,2v), faut il toujours un régulateur ?

    RépondreSupprimer
  10. Désolé, encore une question, j'ai des Li-ion 1850 2600mAh 2,5 a(4,2v max), j'ai des AA 2600mAh 2,5 a(1,2v), ne pourrais je pas également temporairement les reliés 2 Li-ion avec 1 AA?

    RépondreSupprimer
    Réponses
    1. En série ? cela donnera 9.6V à pleine charge.

      Supprimer
    2. Non, je parlais en parallèle, pas possible d'obtenir une moyenne des voltages et abaisser grâce a la AA ?

      Supprimer
    3. Je viens de comprendre que la AA sera abimée par le voltage des Li Ion, plus besoin de me répondre.

      Supprimer
    4. Abîmée, c'est peu dire. Je dirais plutôt qu'elle risque d'exploser.

      Supprimer
  11. En lisant des informations sur en parallèle, j'ai du mal a comprendre pourquoi les piles Li-Ion 1850 2600mAh sont au même prix quand ampérage passe du simple au double, alors que si j'ai bien compris la capacité double ??

    RépondreSupprimer
    Réponses
    1. Il faudrait préciser de quels modèles de batterie on parle.

      Supprimer
  12. Sanyo UR18650ZT 2700mAh - 5.2A 2,15 €
    Sanyo UR18650ZY 2600mAh - 2.5A 2,75 €
    La première meilleur marché a t elle bien le double de capacité par rapport a la seconde ?
    Chez NKON.

    RépondreSupprimer
    Réponses
    1. Non, la capacité est à peu près la même (en mAH), mais la première est capable de débiter un courant maximal supérieur. Autant acheter le première.

      Supprimer
  13. bonjour
    merci pour ce blog et toutes ces informations ça aide beaucoup, c'est super....
    j'ai une question sur le TP4056 j'en ai acheté un pour essayer de recharger une 18650 et je souhaite alimenter un ESP01 en meme temps... donc en autonomie. le problème c'est que je vois 2 modèles de TP4056 : sur le modèle que j'ai acheté j'ai juste batterie + et - est ce que je peux repartir de là pour aller au régulateur pour alimenter mon esp en 3.3v? ou bien je dois prendre le modèle avec batterie + et - et out + et -?
    d'avance merci

    RépondreSupprimer
    Réponses
    1. Oui, B+ B- servent aussi de bornes d'alimentation.
      Le modèle avec bornes OUT+ OUT- est équipé d'un circuit de protection DW01A + MOSFETs, pas vraiment utile dans la majeure partie des cas.

      Supprimer
  14. bonjour
    merci pour la réponse sur le TP4056.

    j'ai une autre question, sur la mise au repos.
    j'ai 3 modules avec un nano pour le moment pour faire mon test (mais en cible je prendrais le pro mini 8mhz)
    un NRF24L01 / un RTC DS3231 et un AM2301(temp) tous les 3 sont alimentés en 5v (NRF24L01 avec un régulateur qui accepte le 5v)
    et tout ça alimenté par une 18650 2500mAh avec un shield comme ça
    https://www.amazon.fr/Battery-Shield-Micro-USB-Raspberry-Arduino/dp/B07B2JSXQG/
    (c'est pour tester)
    ma question (j'y viens lol) comment mettre au repos mes modules ?
    en effet l'arduino lui pas de soucis mais mes modules seront alimentés
    directement sur la batterie, du coup, pour les mettre au repos je voudrais
    couper l'alimentation pas logicielle !
    ou peut etre n'est ce pas la bonne méthode ?
    Merci

    RépondreSupprimer
  15. Souvent les modules possèdent une interface permettant de les mettre en veille. C'est le cas du NRF24L01.
    Pour d'autres c'est automatique, ils se mettent en veille en l'absence de dialogue, DS18B20 par exemple.
    Pour le DS3231, c'est plus compliqué. Certains modules consomment plus que d'autres, ceux qui sont équipés d'une EEPROM en particulier (il faut utiliser le mode standby de cette EEPROM).
    Il faut donc lire les datasheets de chaque module et composant.

    RépondreSupprimer
  16. Merci Henri,
    sur le DS3231 j'ai besoin de l'eeprom pour y stocker des infos, et le RTC pour le reveil de l'arduino
    est ce que si je n'alimente pas en VCC le RTC au moment de l'alarme celui va quand même faire l'interrupt ?

    RépondreSupprimer
    Réponses
    1. Je n'en ai aucune idée. Il faut essayer.
      Quant à l'EEPROM, rien n'empêche de la mettre en veille après utilisation.

      Supprimer
    2. D'après ce que je vois dans la datasheet de l'EEPROM AT24C32, le standby est automatique après mise sous tension chaque lecture ou écriture. A confirmer avec une mesure.

      Supprimer
  17. hello,
    j'ai un soucis avec le TP4056, mon schéma : panneau 18v / 25w
    branché sur un régulateur LM317 reglable. sans rien branché derriere le regulateur, quand j'ai 15v en sortie du panneau solaire, j'ai 5.09v en sortie du LM317 tout va bien ;-)
    puis derrière le LM317 je branche un TP4056 (et batterie 3.7v lithium ion 1000mAh) et la sur le TP4056 j'ai les 2 lumières rouge et bleu qui s'allument. je prends les mesures : sortie de panneau j'ai plus que 5,77v (meme luminosité je précise) sortie du LM317 j'ai plus que 4,22v (qui se retrouve en entrée du TP4056 à 4,22v aussi et du coup je suppose pas assez c'est pour ça qu'il allume les 2 leds?)
    j'avoue pas bien comprendre pourquoi...
    que le LM317 est besoin d'un écart de V entre l'entré et sortie je comprends, mais si j'ai 15v en sortie de panneau pourquoi en branchant le TP4056 je me retrouve avec 5,77v, peut me faut il une diode anti retour ?
    merci de votre aide ;-)

    RépondreSupprimer
    Réponses
    1. Oui, mais les 15V du panneau sont mesurés à vide. Si le TP4056 engage la charge il pompe 1 ampère. Le problème est que le LM317 pompera aussi 1A sur son entrée, et dissipera (18V-5V)*1A = 13W.
      Sans un gros dissipateur il entre en protection thermique.
      Personnellement j'utilise un régulateur à découpage MP1584, ce qui me permet de diminuer le courant consommé en amont. Si j'ai besoin de 5W sous 5V le MP1584 consommera 1A/(18/5)= 280mA sur le panneau. Le MP1584 dissipera très peu.

      Voici un modèle non réglable.
      https://fr.aliexpress.com/item/4000330604568.html?spm=a2g0s.9042311.0.0.23406c37OQSz6O
      Mais un LM2596 conviendra aussi.

      Supprimer
    2. J'en parle ici :
      https://riton-duino.blogspot.com/2020/12/alimentation-par-batterie-panneaux.html
      voir 3.4.2. Panneau solaire 12V ou plus

      Supprimer
  18. Merci pour ta réponse j'avais lu ton poste mais rapidement c'est vrai....
    du coup j'ai mis un MP1584 fixe 5v ça marche plutot bien ;-)
    j'en ai profité pour regarder ton poste sur le rechargement en serie de 18650, j'ai acheté une carte 2S equilibrage + charge, j'ai branché derrière mon MP1584 et là au lieu de sortir en 5v du MP1584 j'ai 8V..

    je pensais que le MP1584 ne sortirai que 5v mais non comme le module 2s à besoin de 8v mini (enfin j'ai l'impression) du coup il demande les 8v au MP1584 qui lui donne (et meme si normalement il est fixe à 5v - je comprend pas là ;-()

    tu me conseilles quoi pour mon projet : alimentation panneau 18v max qui doit recharger 2 18650 (ensuite alimenter mon pro mini etc...)
    d'avance merci de ton aide.

    RépondreSupprimer
    Réponses
    1. Une carte 2S a besoin d'exactement 8.4V.
      C'est étonnant qu'un MP1584 5V sorte 8V.
      C'est plutôt la carte 2S qui est responsable de cela.
      Pourquoi du 2S alors que tu as besoin de 3.3V ou 5V maxi ? Mets tes 2 18650 en parallèle. Le TP4056 les chargera sans problème (0.5A chacune). Il faut qu'elles soient chargées avant la mise en //.

      Supprimer
    2. J'espère que le MP1584 n'a pas grillé. A tester donc, sans charge.

      Supprimer
    3. j'ai du merder dans mes mesures, j'ai soudé, et là j'ai bien 5v en sortie du MP1584 et 5v en entrée du module 2S... (va comprendre ;-))
      A 5v le module 2s va quand meme faire le boulot ?
      tu as raison mon 2s ne me sert pas pour ce projet, je vais retourner vers le TP4056 (pour le branchement en // du coup c'est les 2 plus des batteries vers le + du TP4056 et les 2 - des batteries sur le - du TP4056 ?)
      par contre 2 batteries 3500mAh à 0.5A de charge du TP4056 ça risque de faire long à recharger (7h?)
      avec des 3500mAh le TP4056 chauffe beaucoup en début de charge je trouve....(c'est pour ça peut etre que tu me recommandes de les charger à fond avant ;-))

      Supprimer
    4. Pour la mise en parallèle les deux batteries doivent être du même type, dans le même état d'usure, et être chargées de manière identique (à fond c'est plus facile, mais pas obligatoire).
      Mais 3500mAH x 2 c'est énorme : 7AH
      7000mA / 1000mA = 7H de charge
      J'ai un montage avec batterie 2000mAH, PRO MINI + NRF24L01 + DS3231. Ça va pas mal. Le DS3231 est le plus consommateur.
      https://riton-duino.blogspot.com/2020/04/porte-motorisee-de-poulailler-1ere.html

      Supprimer
    5. oui j'ai prévu large lol
      mais j'ai un moteur qui consomme pas mal 700mA meme s'il n'est pas activé tout le temps (c'est comme toi pour une porte de poulailler) j'ai essayé d'optimisé au max (sleep pendant 15mn, led enlevé...) je vais faire des tests avec ça si c'est trop j'en enlèverai une...
      le TP4056 qui chauffe tu l'as constaté ?

      Supprimer
  19. Hello
    J ai un petit soucis avec un actuateur linéaire (sur l298n) qui me sert pour ouvrir une porte
    Branche sur pile alimenté par panneau (18660) le 12v est fournit par un Step up pollolu. Le problème c est que le moteur tire trop je pense et du coup elle s ouvre tout doucement
    Aurais tu une idée ?
    D avance merci

    RépondreSupprimer
    Réponses
    1. Difficile de répondre sans connaître le courant nécessaire au vérin, ni de quel step-up il s'agit.

      Supprimer
  20. bonjour
    j'ai un petit problème de branchement d'alimentation de mes LiPo sur mon ESP32 feather Huzzah

    je lui rajoute un petit module MAX17043 pour surveiller la chute de tension des LiPo
    jusque là rien de compliqué MAIS sur ESP le connecteur JST sert à alimenter le CPU quand la fiche USB n'est pas connectée
    Si elle est connectée, elle recharge via la prise JST les LiPo

    sur le module MAX17043 les LiPo sont branchées dessus.. Comment je cable le module de telle façon pour que lorsque le branche l'USB
    celui ci recharge mes LiPo ??

    merci d'avance

    dois ton lui adjoindre un circuit complémentaire ??

    RépondreSupprimer
    Réponses
    1. Il va falloir ajouter un connecteur JST en parallèle sur celui de la batterie, à brancher sur la carte ESP32.
      Retirer le connecteur de la batterie, souder deux fils rouges sur le fil rouge, deux fils noirs sur le fil noir, sertir un connecteur JST sur chaque paire.

      Supprimer
    2. Certains modules MX17043 possèdent deux connecteurs JST (Crowtail par exemple), qui permettent d'éviter ce genre de bricolage.

      Supprimer
    3. Le MAX17043 consomme 50µA. Si l'on veut éviter cette consommation, il possède un mode SLEEP, dans ce cas il consomme 1 à 3µA maxi.
      La librairie https://github.com/porrey/max1704x possède deux méthodes sleep() et wake().

      Supprimer
    4. merci beaucoup pour le coup de pouce
      effectivement j'ai une sortie lipo prise en // sur la prise principale
      je vais m'en servir pour l'alim de ESP
      bonne continuation

      Supprimer
  21. Je me lance sur Arduino Pro Mini et je cherchais des informations pour l'alimenter par batterie. J'ai l'habitude de démultiplier mes onglets de recherche au hasard des informations glanées de tous les côtés, et puis je suis tombé sur votre blog et franchement je suis impressionné par la rigueur des articles, tant dans le narratif que dans le choix des hypothèses présentées et la rigueur des tests/mesures. Félicitations pour votre travail et bonne continuation

    RépondreSupprimer