Vous êtes ici :   Accueil » Tension Batterie 12Volts
    Imprimer la page...

Tension Batterie 12Volts

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 Ebayarduino-nano.jpg
  • 1 plaque de circuit imprimé
  • 2 Résistances

resistance.gif   

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

Pont_diviseur.jpg

Branchement_Nano-detecteur_tension.jpg

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)
}



Page lue 833 fois