Testeur de Batterie au plomb 12 V
But :
Tester la charge d'une batterie au plomb 12 V
d'après un abaque de charge suivant la tension mesurée.
Matériels :
Schéma
Câblage du CI
Logiciel Arduino
/*
* Testeur de batterie 12 V
* L'entrée tension batterie est un diviseur par 3 donc 12v batterie = 4v au borne de A0
* Mise à l'échelle = Lecture A0 * 0.004887586) * 3 = Tension batterie
*/
int sensorP1 = A0; // sélectionner la broche d'entrée 0 analogique entrée tension batterie
int tension;
float Bat;
// Définition des LEDs
#define Led1 2
#define Led2 3
#define Led3 4
#define Led4 5
#define Led5 6
#define Led6 7
#define Led7 8
#define Led8 9
#define Led9 10
#define Led10 11
#define Led11 12
#define Led12 13
void setup() {
Serial.begin(9600);
//Mise en sortie des braches LED
pinMode(Led1, OUTPUT);
pinMode(Led2, OUTPUT);
pinMode(Led3, OUTPUT);
pinMode(Led4, OUTPUT);
pinMode(Led5, OUTPUT);
pinMode(Led6, OUTPUT);
pinMode(Led7, OUTPUT);
pinMode(Led8, OUTPUT);
pinMode(Led9, OUTPUT);
pinMode(Led10, OUTPUT);
pinMode(Led11, OUTPUT);
pinMode(Led12, OUTPUT);
}
void loop() {
// Les broches LED à 1 (LED éteintes)
digitalWrite(Led1, 1);
digitalWrite(Led2, 1);
digitalWrite(Led3, 1);
digitalWrite(Led4, 1);
digitalWrite(Led5, 1);
digitalWrite(Led6, 1);
digitalWrite(Led7, 1);
digitalWrite(Led8, 1);
digitalWrite(Led9, 1);
digitalWrite(Led10, 1);
digitalWrite(Led11, 1);
digitalWrite(Led12, 1);
tension = analogRead(sensorP1);//A0 fil de test lecture de la tension batterie
Bat = (tension * 0.004887586) * 3;// mise à l'échelle apres le diviseur par 3
Serial.print(tension); Serial.print(" "); Serial.println(Bat);// pour test sur PC
if (tension < 715) {
Serial.println(" Non branchée ");// si Test < 10.49 v
digitalWrite(Led12, 0);
goto fin;
}
if (tension < 716) {
digitalWrite(Led1, 0); Serial.println(" Batterie HS "); goto fin;// si Test < 10.50 v
}
if (tension < 771) {
digitalWrite(Led2, 0); Serial.println(" Charge 0% "); goto fin;// si Test < 11.31 v
}
if (tension < 790) {
digitalWrite(Led3, 0); Serial.println(" Charge 10% "); goto fin;// si Test < 11.58 v
}
if (tension < 801) {
digitalWrite(Led4, 0); Serial.println(" Charge 20% "); goto fin;// si Test < 11.75 v
}
if (tension < 812) {
digitalWrite(Led5, 0); Serial.println(" Charge 30% "); goto fin;// si Test < 11.90 v
}
if (tension < 822) {
digitalWrite(Led6, 0); Serial.println(" Charge 40% "); goto fin;// si Test < 12.06 v
}
if (tension < 832) {
digitalWrite(Led7, 0); Serial.println(" Charge 50% "); goto fin;// si Test < 12.20 v
}
if (tension < 840) {
digitalWrite(Led8, 0); Serial.println(" Charge 60% "); goto fin;// si Test < 12.32 v
}
if (tension < 847) {
digitalWrite(Led9, 0); Serial.println(" Charge 70% "); goto fin;// si Test < 12.42 v
}
if (tension < 853) {
digitalWrite(Led10, 0); Serial.println(" Charge 80% "); goto fin;// si Test < 12.50 v
}
if (tension < 859) {
digitalWrite(Led11, 0); Serial.println(" Charge 90% "); goto fin;// si Test < 12.60 v
}
if (tension >= 859) {
digitalWrite(Led11, 0); Serial.println(" Charge 100% "); goto fin;// si Test >= 10.50 v
}
fin:
delay(500);
}
Sérigraphie