Table des matières
Réalisation : Testeur de batterie
Introduction
Cette page décrit une réalisation très facile à mettre en œuvre à l'aide d'une carte Arduino, on estime un temps de la réalisation de l'ordre de 20 minutes. Je vous encourage à réaliser ce montage afin de maitriser analogRead() et digitalWrite()
I - Contexte
On veut réaliser un testeur de batterie 12V avec les fonctionnalités suivantes :
- Si la tension de sortie de la batterie est inférieure à 10.5V alors une diode rouge clignotera pour annoncer à l'utilisateur que la batterie est à plat (RED ALERT ! )
- Durant la période de charge de la batterie, on veut que la diode s'allume de manière continue
- Puis quand la batterie est chargée à 13.6V (les chargeurs ayant une tension de 13.8V) la diode s’arrête de clignoter jusqu'à ce qu'un
andouilleutilisateur décharge la batterie…
II - Structure du système
Il faut bien à un moment donner savoir de quoi on a besoin afin de réaliser le système :
- Les tensions d'entrées sont trop hautes pour la carte ! En effet, celle ci ne lit que de 0 à 5V (et au delà c'est la destruction assurée). Les tensions attendues sont en tous les cas inférieures à 15V donc un facteur de division 3 paraît approprié. On prendra un pont diviseur de tension avec R1 = 10 K et R2 = 20K par exemple.
- Et la diode ? J'ai failli l'oublier celle là ! On pourrait utiliser la diode de l'arduino (pin 13) mais ce serait trop facile et pas réaliste (intégration du système sur un tableau de bord par exemple) donc on utilisera une diode rouge par exemple.
- 5V pour une diode, c'est pas trop? En effet, généralement 2.2V (à 10mA) lui suffisent amplement. Donc, si on n'a pas de résistance on branchera deux diodes en série, ou sinon une résistance de R = (5-2.2)/(10e-3) = 280 Ω (+-20%) en série fera l'affaire .
EN BREF : il faut une carte Arduino (par exemple, une UNO), une entrée (A0) pour la mesure, une sortie (1) pour la diode, trois résistances, une diode. Ajoutons à cela une alimentation variable (pour faire office de batterie) et une fixe comprise entre 7 et 12V (alimentation de la carte Arduino UNO)
III - Codage
Voici le code à copier-coller dans le logiciel Arduino (après avoir crée un fichier “test_batterie” par exemple) puis à implémenter sur votre chère carte quand le montage ci-dessus sera réalisé.
/* TEST BATTERIE Premièrement on va nommer les Pins */ int voltmetre = A0; int led = 1; /* vient l'initialisation, led est une sortie ! on va créer également les variables et constantes de mesure */ void setup () { pinMode(led,OUTPUT); } /* vient la structure principale */ void loop () { float Ubatterie = 0; /* initialisation de la variable */ float Ufaible = 10500; /* le seuil de 10,5V en mV */ float Uchargee = 13600; /* le seuil de charge à 13.6V en mV */ boolean decharge = LOW; /* on mémorise la décharge de batterie */ Ubatterie=analogRead(voltmetre)*5000.0/1024.0; /* mesure de Ubatterie on suppose la batterie en service (chargée initialement) */ while (Ubatterie<Ufaible) { /* un petit programme de clignotant avec mesure */ digitalWrite(led,HIGH); delay(100); digitalWrite(led,LOW); delay(150); Ubatterie=analogRead(voltmetre)*5000.0/1024.0; decharge = HIGH; } /* même principe pour la phase de charge, si il y a eu décharge */ while (Ubatterie<Uchargee && decharge == HIGH) { digitalWrite(led,HIGH); Ubatterie=analogRead(voltmetre)*5000.0/1024.0; } //* réarmement du programme */ decharge = LOW ; digitalWrite(led,LOW); }