Sites


CampOSV

Mesure des tensions

Pour pouvoir gérer le niveau de charge de la batterie, il est nécessaire de connaître la tension de chaque cellule de la batterie. La mesure de tension pour chaque cellule se fait par un pont diviseur de tension. Les sorties de chaque cellule sont branchées sur l'arduino (A0, A1, A2 et A3) qui va mesurer la tension des cellules.

Schéma du circuit de mesure de tension d'une cellule.

R1 = 1.2kOhm
R2 = 2.2kOhms
Transistors Mosfet utilisés : TO-92

Pour mesure la tension de la cellule, la formule a utilisé est celle-ci
VA0 = R1*I

Vout = (R1+R2)*I + Vt

Où I = (Vout - Vt)  / (R1+R2)

Donc VA0 = R1*(Vout - Vt)  / (R1+R2)

Vt étant la tension mesurée au transistor

La tension Vout obtenu est de 4.14V et la tension au transistor de 0.6V

VA0 = 1.2*(4.14-0.6) / (2.2+1.2)  = 1.25V

Schéma du circuit de mesure de tension pour 4 cellules.

R1, R3, R5 et R7 : 1,2kOhm
R2 : 2.2kOhms
R4 : 5.6kOhms
R6 : 6.8 kOhms
R8 : 10kOhms



Code Arduino :

#include <Arduino.h>
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
     Serial.begin(9600);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);


  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
}

// the loop function runs over and over again forever
void loop() {

  digitalWrite(2, HIGH);   // turn the LED on (HIGH is the voltage level)
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
  delay(2000);

  digitalWrite(2, LOW);   // turn the LED on (HIGH is the voltage level)
  delay(1000);
  int sensorValue2 = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage2 = sensorValue2 * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage2);
}

Fin du code

Ce module n'a pas été entièrement abouti par manque de temps, il est possible que les résultats obtenus soient erronés.

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.