Connaitre l’état de charge d’une batterie

Forums Construction d’unité astromech Electronique, radiocommande, motorisation Connaitre l’état de charge d’une batterie

  • Ce sujet est vide.
4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Messages
  • #79144
    Anonyme

      Perso, suite à ma 1ère expérience avec une batterie, je me suis offert le CBI.

      CBI = Charge Bay Indicator.

      Il s’agit d’un panneau avec des LEDs qui clignotent, sur la face avant du corps de R2.

      Voici une vidéo du kit en fonction (mais pas installé dans le R2 que je n’ai pas encore)

      [youtube]jisH-NiRHcw[/youtube]

      Il y a un panel avec des LEDs rouge qui font une animation, mais il y a surtout 3 LEDS (que j’ai mis sur un carton) qui donne une indication visuelle sur la charge de la batterie.

      Version installée (pas à moi), c’est l’affichage sur la gauche

      [youtube]XpN0NXIY6lc[/youtube]

      Voici le code et le schéma utilisé par ce kit. J’espère ne rien avoir oublié. N’hésitez pas à critiquer / améliorer la chose !!!

      ATTENTION : brancher du 12 V (ou 24V) directement sur un Arduino le fait fumer et il ne vous servira plus à rien !!!

      Le schéma

      [img]http://astromech.net/forums/attachment.php?attachmentid=7260&d=1332450475[/img]

      Le code

      Code:

      // ATTENTION : VOUS POUVEZ GRILLER VOTRE ARDUINO !!!
      // JE REPETE : VOUS POUVEZ GRILLER VOTRE ARDUINO !!!

      // le forum d’origine
      // http://astromech.net/forums/showthread.php?t=7946

      // de base pour une batterie 12V !!!
      // si batterie de 24V, il faut changer les resistances

      // LE SCHEMA
      // ———
      //
      // + BATTERIE – BATTERIE
      // | |
      // | |
      // +—R1—-+—R2—-+— GND sur Arduino
      // 47k | 24k <== c'est pour du 12V !!! // | // +------------- A0 sur Arduino // le + batterie (VIA SCHEMA CI-DESSUS) sur A0 de l'Arduino (ou changer le A0 ci-dessous dans le code) // le - batterie sur GND de l'Arduino // LES RESISTANCES // Batterie 12V, c'est inférieur à 15V => résistance pour 15V et batterie 24V => c’est 30V
      // l’Arduino accepte un voltage en entrée jusqu’à 15V

      // Pour 15 volts: R1=47k, R2=24k
      // Pour 30 volts: R1=47k, R2=9.4k

      // /! A VERIFIER / MODIFIER, par défault pour batterie 12 V
      // Indiquer ici les valeurs des résistances utilisées (autrement le calcul sera faussé)
      // par défaut pour une batterie de 12 V
      float R1 = 47000.0; // >> resistance of R1 in ohms << the more accurate these values are float R2 = 24000.0; // >> resistance of R2 in ohms << the more accurate the measurement will be // /! A VERIFIER / MODIFIER, par défaut connexion du + batterie sur A0 // Indiquer ici l'endroit physique de connexion du cable (avec une resistance) entre la batterie et l'Arduino int analoginput = 0; // PIN de connexion du + de la batterie, ici A0 // des variables pour les calculs du programme float vout = 0.0; // pour mesurer la tension de la batterie int value = 0; // variable temporaire pour lecture de la valeur de la tension float vin = 0.0; // tension calculée en format "humain" float greenVCC = 12.5; // limite haute de la batterie : tout est ok ! float yellowVCC = 12.0; // limite basse de la batterie : en dessous, il faut recharger ! void getVCC(){ value = analogRead(analoginput);// doit absolument être entre 0.0 et 5.0 // sinon, c'est la mort assuré de votre Arduino ! vout= (value * 5.0)/1024.0; // calcul du voltage réel vin = vout / (R2/(R1+R2)); // transformation en valeur "humaine" Serial.print("Voltage réel = "); // DEBUG CODE Serial.print(vout, 1); // on affiche avec 1 chiffre après la virgule // DEBUG CODE Serial.print("tVoltage calculé = "); // DEBUG CODE Serial.print(vin, 1); // on affiche avec 1 chiffre après la virgule // DEBUG CODE if (vin >= greenVCC) {
      // afficher via des LEDs ou autre que tout est ok
      } else if (vin >= yellowVCC) {
      // afficher via des LEDs ou autre que ça va encore, mais que la batterie n’est plus au max
      } else {
      // afficher via des LEDs ou autre que l’on a plus de jus, il est temps de recharger !!!
      }
      }

      void setup() {
      Serial.begin(19200); // DEBUG CODE
      pinMode(analoginput, INPUT); // on paramètre l’endroit physique de connexion de la batterie sur l’Arduino
      }

      void loop() {
      getVCC();
      delay(333); // on attend un peu, avec ça, on affiche 3 fois par seconde l’état de la batterie
      // c’est largement suffisant (trop)
      }

      #103244
      Anonyme

        Super idée et toute bête en plus ! Ça va finir dans mon R2 ça ( quand j’aurais fait le R2 bien-sur ^^ )

        Merci du partage !

        Ad.

        #103245
        Anonyme
          #103246
          Anonyme

            Bien joué, j’allais poster :)

            Montage simple et efficace, je conseille à tous ! (enfin, ceux qui veulent surveiller la charge de leur batterie)

            Perso je ai eu ce câble avec le CBI et je viens de prendre son pendant, le Data Panel Logics. Mon R2 clignotera de partout :D

          4 sujets de 1 à 4 (sur un total de 4)
          • Vous devez être connecté pour répondre à ce sujet.