Un boîtier de contrôle arduino pour les batteries

Comme suite à mon précédent article traitant du fonctionnement des batteries, je me suis rendu compte qu’il n’existait pas sur le marché de système permettant d’évaluer le temps d’utilisation des batteries adapté à notre utilisation de moteurs électriques.

Quoi de plus amusant que de tenter de réaliser, à peu de frais, un petit boîtier de contrôle.

Embarquant un peu d’électronique, ce boîtier va mesurer précisément la consommation instantanée de mon moteur, et ensuite calculer et afficher en temps réel la durée d’utilisation potentielle.

L’affichage est un peu altéré du fait de la perte d’une colonne complète de pixels de l’écran Oled. Il faudra que j’en commande un autre.

De plus, ce boîtier va également me servir à câbler en parallèle mes deux batteries, en faisant office de système de connexion rapide.

Pour se faire, comme bien souvent, j’utilise ce que j’ai sous la main.

Les connecteurs Speakon NL4 sont utilisés en sonorisation professionnelles pour brancher des enceintes de forte puissance. Ils sont particulièrement robustes, possèdent un système auto-nettoyant des contacts du à la rotation lors de la connection, et permettent le passage d’un courant de 30 ampères efficaces par paires de pôles.

Leur seul inconvénient est qu’il ne sont pas étanches à l’immersion, il faudra se contenter d’une relative protection aux projections d’eau.

En doublant les connections 2 à 2 (qui sont prévues pour une section de câble de 6mm2), je peux passer 60 ampères en 12 volts sans aucuns problèmes dans ces connecteurs, sachant que mon moteur 55lbs ne devrait pas dépasser 45 ampères de consommation.

La pièce maîtresse du système est une carte SEEDUINO UNO, un clone de la carte Arduino. J’ai volontairement choisi cette carte parce qu’elle dispose de connecteurs 4 broches à verrouillage pour connecter l’écran Oled.

L’intérieur du boîtier

Cette petite carte de développement embarque un micro processeur, un peu de mémoire, et des connecteurs permettant d’y relier des capteurs, des actionneurs, des écrans, etc …
Elle se connecte via USB sur un PC afin de pouvoir lui téléverser la programmation, et le système se met en route tout seul lorsqu’il est connecté à une tension d’alimentation.

Le langage de programmation est très similaire au langage C++, et malgré mon faible niveau de connaissance devant la puissance et le potentiel de ce langage de programmation, j’arrive à me débrouiller pour arriver à mes fins.

Afin de mesurer la consommation de courant de mon moteur, je vais utiliser un capteur W1700 à effet Hall.

Il suffit de faire passer le câble d’alimentation dans la boucle, et le capteur me donnera une tension de sortie corrélée à la grandeur de la valeur du courant qui passe dans la boucle.

Ce capteur est prévu pour mesurer un courant compris entre -70 et +70 ampères en courant continu.

Il est bien adapté à l’usage que je veux en faire, car mon moteur de 55lbs ne devrait théoriquement pas dépasser 45 ampères.

La valeur corrélée théorique donnée par le constructeur pour ce capteur est de 30mv par ampère.

Donc :

-70 Ampères → 0 volts
0 Ampères → 2,5 volts
+70 ampères → 5 volts

Sachant que les entrées de l’Arduino sont codées en 10 bits, soit 1024 pas, la précision de mesure devrait être de l’ordre de 0,14 ampères, ce qui est largement suffisant pour cette utilisation.

Dans les faits, il faudra opérer quelques corrections de programmation au fur et à mesure des essais, car je me suis rendu compte que l’étalonnage du 0 était un peu haut, et que la tension corrélée était sensiblement égale à 26,5mv par ampère.

Le principe de fonctionnement du boîtier de contrôle est assez simple à comprendre :

En premier lieu, il faut indiquer au système la capacité théorique de la batterie. Comme il n’y a pas de moyen simple de mesurer cette capacité, il faut se contenter des valeurs constructeur, et toujours utiliser, en début de cycle, des batteries bien chargées, car le système ne sera pas en mesure de pouvoir évaluer la capacité réelle des batteries si elles sont mal chargées ou endommagées.
C’est cette valeur qui va servir de base de réservoir plein, c’est à dire de 100 % de capacité lorsque l’on branche le système et que l’on démarre la journée.

Ces valeurs constructeurs sont entrées directement dans le programme, car je n’ai pas trouvé de moyen simple pour pouvoir les entrer dans le système via un clavier embarqué ou des roues codeuses.
Le jour ou je changerai de batteries, il faudra que je reprogramme ces valeurs.

J’indique au système les valeurs en C5 et en C20 de mes batteries, afin qu’il puisse calculer la constante de Peukert et l’intégrer dans l’algorithme.
Pour ceux qui souhaitent approfondir leurs connaissances sur l’effet Peukert, je les invite à lire mon précédent article traitant des batteries au plomb. -> ARTICLE

Ensuite, toutes les 3 secondes, le système mesure la consommation en courant. Il calcule ensuite, en fonction de la capacité de départ de la batterie, de la consommation instantanée et de l’effet Peukert, la quantité d’énergie consommée.
Il extrapole ensuite de ce calcul un temps d’utilisation en heures, un peu à la manière de votre voiture qui vous affiche le nombre de kilomètres que vous pourrez parcourir en fonction de votre vitesse de déplacement et de la quantité d’essence disponible dans le réservoir.
Il ne reste plus qu’à afficher le résultat sur le (très) petit écran Oled, déduire de la batterie la quantité d’énergie consommée en trois secondes, et recommencer le processus.
Le temps d’utilisation potentiellement disponible s’ajuste ainsi en temps réel en fonction de ma vitesse de déplacement et de la quantité d’énergie prélevée dans la batterie.

J’ai volontairement choisi un calcul du temps d’utilisation basé sur une décharge à 60 % de la capacité de la batterie, qu’il faudra essayer de tenir si je veux que mes batteries me durent de nombreuses années.
En effet, il ne faut jamais descendre au dessous de 80 % de décharge au risque d’endommager les batteries, et cette marge de 20 % me permet, d’une part, d’avoir une « réserve » d’utilisation exceptionnelle au cas où, et d’autre part d’atténuer les éventuelles erreurs de mesures et dérives de charges des batteries…

J’ai également réalisé un petit voltmètre à l’aide d’un pont diviseur, qui me permet d’afficher la tension de sortie de mes batteries.
Cette tension n’est d’aucune utilité dans le calcul de la durée d’utilisation, elle n’est là que pour vérifier que tout va bien et qu’il n’y a pas de problème de chute de tension due à un court circuit ou une défaillance de batterie.

Le système est en place, les deux batteries et le moteur sont câblés. Le boîtier est directement alimenté par les batteries. Sa consommation est négligeable, de l’ordre de quelques milliampères.

Vérification de la consommation du moteur à l’aide d’un ampèremètre : Moteur à fond, je relève 41.34 Ampères

Désolé pour la qualité de la photo, je me suis rendu compte trop tard que mon temps d’affichage était trop lent par rapport à la vitesse de prise de vue, et qu’il me scinde en deux parties l’écran. On peut néanmoins relever 41.12 ampères de consommation, soit un écart de 0.2 ampères par rapport à mon ampèremètre. On est dans les clous.
Avec 99% de capacité de batterie disponible, le système me calcule que je pourrai naviguer pendant 2.45 heures (soit 2 heures et 25 minutes) sous ce régime de consommation. Il va ensuite calculer le volume d’énergie dépensé, le déduire de la capacité de la batterie, et recommencer son cycle.

Avec 98% de capacité de batterie, il ne me reste plus que 2.40 heures d’utilisation.
Si je réduis ma vitesse, le système recalcule instantanément mon temps d’utilisation potentiel.

Voilà, le prototype est opérationnel. Merci à mon ami Michel pour avoir usiné le boîtier alu.

AB

9 réflexions au sujet de “Un boîtier de contrôle arduino pour les batteries”

  1. déjà que mémère m ‘ engueule parce que j ‘ arrive pas à changer les piles du vibrator ..alors j ‘ te dis pas si je me plante dans mes calculs ……queue de l ‘ Yonne barrage de Pannecière à la rame elle va pas apprécier la bougresse !!!!!!!

  2. Pareil : rien compris! Ah! Ça fait du bien de se sentir un crétin parmi les autres 🙂 ! Bon, moi pour savoir si mes batteries sont en bon état je mets ma langue sur les cosses 😉 . Si ça pique fort, c’est bon, je peux faire 10km, si c’est plus faible je préviens mes coéquipiers qu’ils vont devoir ramer en fin de parcours… J’attends avec impatience que tu te lances dans le solaire, là on aura une bible de 3000 pages!! Bon, chapeau l’artiste quand même, pardonne aux cancres éternels que nous sommes, approximatifs de l’ampère et rebelles du voltmètre, on veut juste pêcher sans ramer, et si par miracle le sondeur ne surchauffe pas en étant branché sur la batterie de la glacière alors je dis Banco! (c’est une vieille expression que l’on pourrait traduire par “je kiffe grave ta race!”). Sinon je rappelle les règles d’or en matière de batterie :
    -Le kéké ne fais pas, accélère lentement et ne va pas à fond, jamais.
    -Sur un parcours donné navigue à mi-vitesse et sans à-coups.
    -Une fois rentré à la maison recharge tout de suite tes batteries avec un chargeur C-Tek et pas un autre. Si tu as deux batteries il te faudra deux chargeurs. Oui c’est cher mais pense au prix de ta batterie.
    -Une batterie au gel est 2 fois plus performante et durable qu’une batterie au plomb classique. Oui c’est cher mais ça dure deux fois plus longtemps!
    Grâce à ces principes empiriques j’ai maintenu en vie depuis 7 ans mes batteries qui me permettent de faire environ 10km de navigation à chaque session sans efforts et sans avoir besoin de me poser des questions existentielles sur leur niveau de charge, et pourtant je navigue exclusivement à l’électrique. Je vais quand même relire ton article pour voir si je suis composé à 90% de flotte comme le soupçonnent certains…

      • Oui, je sais, l’alcool c’est mieux… Mais même à jeun quand je relis ton article j’ai l’impression d’être une méduse! Tu aurais fait un excellent et exécrable prof de technologie que j’aurais pu détester à fond en 3èm, grrrr 🙂 !
        Finalement le thermique c’est pas si mal…

  3. Bonsoir Serge,
    Je peux comprendre que cet article soit un peu rébarbatif, ne te bile pas.
    J’ai pourtant essayé de ne pas trop entrer dans les détails, … Mais il fallait bien que j’explique le fonctionnement du système.
    Axel

Les commentaires sont fermés.