[Conseil] Chargeur Multibatterie

Bonjour les arduigeekos!

j'ai besoin de deux trois conseil et de vos avis sur mon petit projet :

le sujet :

J'ai un chargeur de batterie de voiture/moto/tondeuse intelligent (type Optimate), et je souhaite charger plusieurs batteries de différentes puissances/ampérages avec.
Je ne peut donc pas charger les batteries en même temps.

Voila l'idée : un Arduino commande des relais, sur lequels sont branchés le chargeur et les batteries.

le relais 1 est actionné --->La batterie 1 est en charge et pas les autres.
le relais 2 est actionné --->La batterie 2 est en charge et pas les autres.
ect

pour indiquer combien de batteries sont à charger je vais utilisé un commutateur 4 positions.

Position 1 : 1 seule batterie à charger.
Position 2 : 2 batteries à charger avec un temps de charge de chaque batterie de 3Jours (2.592e+8 ms).
Position 3 : 3 batteries à charger avec un temps de charge de chaque batterie de 3Jours (2.592e+8 ms).
Position 4 : 4 batteries à charger avec un temps de charge de chaque batterie de 3Jours (2.592e+8 ms).

Tout d'abord, je voulais savoir si vous pensez que les relais sont nécessaires pour :

  • couper/alimenter la borne "+" et "-" de chaque batterie (donc 8 relais nécessaires)
    ou si
  • je coupe/alimente juste les bornes "+" et que toutes les bornes "-" des batteries sont reliés entres elles au "-" du chargeur (et dans ce cas seul 4 relais sont nécessaires).

Je crois que l'Optimate envoi des impulsions de courant en sens inverse pour "nettoyer" les plaques des batteries (et dans ce cas, je ne peut pas connecter tout les "-" ensembles.)

Ensuite je vous présente mon code, dites moi ce que vous en pensez si je peut l’améliorer ou autre.
(je sais que vous préférez utiliser millis() que delay() mais ici je pense delay() plus approprié.)

int batt1 = 2;         //commande relais Batterie 1 sur pin 2
int batt2 = 3;        //commande relais Batterie 2 sur pin 3
int batt3 = 4;        //commande relais Batterie 3 sur pin 9
int batt4 = 5;        //commande relais Batterie 4 sur pin 11
int com1 = 8;         //Position commutateur 1 sur pin 8
int com2 = 9;         //Position commutateur 2 sur pin 9
int com3 = 10;        //Position commutateur 3 sur pin 10
int com4 = 11;        //Position commutateur 4 sur pin 11
int tps = 259200000;        //temps de charge 259200000 = 3 jours



void setup() {

  pinMode (batt1, OUTPUT);
  pinMode (batt2, OUTPUT);
  pinMode (batt3, OUTPUT);
  pinMode (batt4, OUTPUT);
  pinMode (com1, INPUT);
  pinMode (com2, INPUT);
  pinMode (com3, INPUT);
  pinMode (com4, INPUT);

}

void loop() {

  if (digitalRead (com1) == HIGH) {
    digitalWrite(batt1, HIGH);      //Charge batterie 1 permanente
  };



  if (digitalRead (com2) == HIGH) {
    digitalWrite(batt1, LOW);
    digitalWrite(batt2, HIGH);
    delay (tps);            //Charge batterie 2 pendant 3 jours
    digitalWrite(batt2, LOW);
    digitalWrite(batt1, HIGH);
    delay (tps);           //Charge batterie 1 pendant 3 jours et boucle
  };


  if (digitalRead (com3) == HIGH) {
    digitalWrite(batt1, LOW);
    digitalWrite(batt3, HIGH);
    delay (tps);           //Charge batterie 3 pendant 3 jours
    digitalWrite(batt3, LOW);
    digitalWrite(batt2, HIGH);
    delay (tps);           //Charge batterie 2 pendant 3 jours
    digitalWrite(batt2, LOW);
    digitalWrite(batt1, HIGH);
    delay (tps);           //Charge batterie 1 pendant 3 jours et boucle
  };

  if (digitalRead (com4) == HIGH) {
    digitalWrite(batt1, LOW);
    digitalWrite(batt4, HIGH);
    delay (tps);           //Charge batterie 4 pendant 3 jours
    digitalWrite(batt4, LOW);
    digitalWrite(batt3, HIGH);
    delay (tps);           //Charge batterie 3 pendant 3 jours
    digitalWrite(batt3, LOW);
    digitalWrite(batt2, HIGH);
    delay (tps);           //Charge batterie 2 pendant 3 jours 259 200 000
    digitalWrite(batt2, LOW);
    digitalWrite(batt1, HIGH);
    delay (tps);           //Charge batterie 1 pendant 3 jours et boucle
  };
}

Merci pour votre lecture!

Bonjour

Que fait ce message dans le sous-forum dédié à ce qui est F I N I ?
finis.png

Demandes rapidement au modérateur (lien Report to Moderator) qu'il veuille bien déplacer ton message à l'endroit qui convient.

En attente du déplacement prends connaissance des Règles du Forum Francophone (où poster ? comment poser les questions ? quelels informations fournir ?.....). En arrivant ici c'est important.

finis.png

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.