Ce Programme permet de faire fonctionner la carte arduino Nano en chargeur de batteries.
Le programme est trs simple il ne fait que tester la tension aux bornes de la batterie et ainsi que l'intensit de charge et coupe l'alimentation au cas ou l'une de ces deux conditions est remplie.
On peut le faire voluer, comme on le dsire, par exemple si on alimente le chargeur partir de la batterie, on peut le faire couper la tension secteur ce qui le rend particulirement conomique.
Les Coupleurs Mon Coupleur Batteries Boutique Me Contacter Accueil Forum Livre d'Or Autres sites Statistiques Aide
/*
 Programme Chargeur de batterie.
 PEREIRA Joao Cration 14/11/2012
 Dernire modification 14/11/2012
 */
// Pin 13 commande aussi la led sur la carte nano.

//----------------- Carte des entrées sorties.  ----------------

int rx = 0; // D0
int tx = 1; // D1

// Interruptions
int int0 = 2; // D2
int int1 = 3; // D3

int sda = 4;  // D4
int scl = 5;  // D5

int in1 = 6;  // D6
int in2 = 7;  // D7
int in3 = 8; // D8
int in4 = 9; // D9
int in5 = 10; // D10

int mosi = 11; // D11
int miso = 12; // D12

// Sorties relais sur la carte.

int out1 = 14; // A0
int out2 = 13; // D13
int out3 = 19; // A5
int out4 = 18; // A4

int in6 = 17; // A3
int in7 = 16; // A2
int in8 = 15; // A1
// Entrées Analogiques
int in9  = 20; // A6
int in10 = 21; // A7
//------------------------ fin i/o --------------------------------

// --- Inclusion des librairies utilisées ---
#include <MsTimer2.h> // inclusion de la librairie Timer2
 
// variables

  int tension_floating         = 138;  // tension de floating 138 = 13.8 Volts
  int batterie_chargee         = 144;  // tension de de batterie bien charge 144 = 14.4 Volts
  
  /*
  int tension_desacouplage    = EEPROM.read(1);  // tension de desacouplage des deux batteries
  int tension_max_alternateur = EEPROM.read(2);  // tension  partir de laquelle on signal un soucis alternateur, protection des batteries
  int batterie_plat           = EEPROM.read(3);  // tension de la batterie a plat si par exemple l'alternateur ne charge plus
*/  
  int tension_batterie      = 0;  // tension de la batterie en charge
  int intensite_charge      = 0;  // intensité appliquée à la batterie en charge
 
  bool voltage_trop_haut        = false;  
  bool state_led                = true;
   
  void setup()
  {
 // initialise les pins de sortie.
  pinMode(out1, OUTPUT);
  pinMode(out2, OUTPUT);
  pinMode(out3, OUTPUT);     
  pinMode(out4, OUTPUT);
  
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);     
  pinMode(in5, OUTPUT);
 // initialise les pins en entrées. 
        pinMode(in6, INPUT);  
        pinMode(in7, INPUT);
        pinMode(in8, INPUT);
 // initialise les pins en entrées digitales, ces deux ci A6 A7, ne peuvent servir qu'en entrée, bug? :( .    
        pinMode(in9, INPUT);
        pinMode(in10, INPUT);
  
  Serial.begin(9600);
  // demarrage de l'interruption
  MsTimer2::set(50, InterruptTimer2); // période 1000ms 
  MsTimer2::start(); // active Timer 2 
  
  }
  
  // debut de la fonction d'interruption Timer2
void InterruptTimer2() { 
  // lecture tension batteries porteur auxiliaire
  tension_batterie    = (analogRead(in9) * 20) / 100;
  intensite_charge    = (analogRead(in8));
  
  // mode charge et floating
  if ((tension_batterie <= tension_floating) && (intensite_charge <= 100 )) {digitalWrite(in5, HIGH);} 
  // test pour le desacouplage des batteries
  if ((tension_batterie >= batterie_chargee) || (intensite_charge >= 100 )) {digitalWrite(in5, LOW);}
 // if (intensite_charge >= 01) {digitalWrite(in5, LOW);}
  
}
 
  void loop()
  {
// Envoi vers le port serie
           Serial.print((tension_batterie / 10.0));
           Serial.println(" Volts");
           delay(150);
// clignotement de la led alternateur charge de trop
       if (voltage_trop_haut)
         {
          state_led = !state_led;
          digitalWrite(in1,state_led);
         }
       else
        {
         digitalWrite(in1,LOW);
        }
  }

Les Coupleurs Mon Coupleur Batteries Boutique Me Contacter Accueil Forum Livre d'Or Autres sites Statistiques Aide
Cette page à été vue 1851 fois depuis sa création par 1248 visiteurs.
Aujourd'hui cette page à été vue 0 fois par 0 visiteurs.
Dernière modification : Samedi 11 Avril 2015 à 04:07:39
Création le: 16 Septembre 2012

Toute représentation totale ou partielle de ce site par quelque procédé que ce soit, sans l'autorisation expresse de l'exploitant du site Internet est interdite et constituerait une contrefaçon sanctionnée par les article L 335-2 et suivants du Code de la propriété intellectuelle.
F1LZR 1999 2016