Montage Sécurité Tension Batterie 12Volts
04/2013
Système de sécurité avec un Arduino Nano et un pont diviseur de tension
Eviter une décharge profonde de la Batterie,et donc de rester bloqué
Le Materiel:
- Un PC pour programmer l'arduino (version 1.0.1 pour le prg arduino)
- Une platine Arduino Nano : 15 € sur Ebay

- 1 plaque de circuit imprimé
- 2 Résistances
1 résistance de 3.3 Ko (Orange Orange Rouge)
1 résistance de 1.1 Ko (Marron Marron Rouge)
|
permet la mesure d’une plage de tension variant entre 0volt et 20volts
Pour les calculs vous pouvez allez sur cette page
|
Les Valeurs à modifier dans le programme en fonction de ses paramètres et préférences
- Tension_Mini= 11.00; // Definir la tension mini de la batterie
- int NbrValeurs = 10; // Nombre de valeurs pour faire la moyenne
- const float coeff_division = 4.27; // Coefficient diviseur du pont de resistance
- long temps=0; // Temps entre 2 mesures de tension
|
Déroulement du programme
- Mise a l'eau du sous marin
- allumer l'émetteur et le récepteur
- la mesure de la tension Batterie par l'arduino (A0) débute
- J'enregistre toutes les 2 secondes la valeur
- Je fais la moyenne des 10 dernières valeurs enregistrées
- Si la valeur moyenne est inferieur à la Tension_Mini,l'arduino prend le pas sur la télécommande, et viendra mettre le servo ballast en position vidange
- Empèchera la pompe des périscopes de fonctionner
- Allume une LED rouge pour signaler l'erreur
|
Le branchement


|
Conclusion
Ce montage est très simple, et peux éviter de rester bloqué ou de maltraiter sa batterie
|
Le code a entrer dans l'AtTinY 85 |
|
//----------Pour mesure tension
float Tension_Mini= 11.98; // Definir la tension mini de la batterie
int NbrValeurs = 10; // Nombre de valeurs pour faire la moyenne
float Tensions[10]; // definir un tableau pour stoker valeurs tension
const float coeff_division = 4.27;// Coefficient diviseur du pont de resistance
float Tension; // definir tension
int Compteur = 1; // Compteur du Tableau
long temps=0; // Temps entre 2 mesures de tension
//----------------------
void setup() {
Serial.begin(9600);
}
void loop() {
//**********MESURE TENSION BATTERIE 12Volts ( moyenne de 10 mesures)
if (millis() > temps) { // Enregistre la tension toutes les X secondes
unsigned int Tension_Mesure = analogRead(A6); // Mesure de la tension brute avec le pin A6 de l'arduino
Tensions[Compteur] = ((Tension_Mesure * (5.0 / 1024)) * coeff_division); //Calcul de la tension reel
if (Compteur == NbrValeurs){ // Si X valeurs dans le tableau , fait la moyenne des X valeurs
int i; for (i = 1; i < Compteur; i = i + 1) { Tension = Tension + Tensions[i];}
Tension = Tension / Compteur; Compteur = 1; // remet le compteur du tableau a 1
if (Tension >= Tension_Mini){ // Affichage
Serial.print("Tension = "); Serial.print(Tension); Serial.print(" :OK"); Serial.print(" Compteur = ");Serial.println(Compteur);
}else{
Serial.print("Tension = "); Serial.print(Tension); Serial.print(" :Non OK"); Serial.print(" Compteur = ");Serial.println(Compteur);
}
}
Compteur = Compteur + 1;
temps = millis() + 1000; //Defini le temps entre 2 mesures
} //**********FIN MESURE TENSION BATTERIE 12Volts ( moyenne de 10 mesures)
}
|
|