Testeur de batterie LiPo

Bonjour, Je souhaiterais realiser un testeur de lipo (je sais que cela existe en vente deja tout fait mais c'est pour le plaisir de le faire et d'aller aussi plus loin) Pour cela j'utilise pour mes tests actuellement une carte arduino mega 2560 Et une LiPo 3S (3 cellules) Actuellement j'ai fait un pont diviseur pour pouvoir mesurer la tension totale de la batterie en recuperant le signal sur la pin A0 de l'arduino (j'arrive aussi via un autre pont diviseur a mesurer la tension de la cellule 1 sur la pin A1) De ce cote tout fonctionne

Le probleme est qu'avec 2 autres ponts diviseurs je n'arrive pas a mesurer les 2 autres cellules de la batterie En sachant qu'une batterie lipo est constituee de 3 batteries en serie et cela ressemble a ce qui suit

  • batterie | +Cellule 3
  • Cellule 3 |
  • Cellule 2
  • Cellule 2 |
  • Cellule 1
  • Cellule 1 |
  • batterie

Auriez vous des idees, conseils, schema de comment je dois proceder et aussi ou est ce que je me suis trompe ?

Merci a vous

Merci pour ces conseils pepe Par contre je ne comprends pas l'interet de la resistance R1... Cela doit fonctionner sans non ? Sinon on est oblige de soustraire les tensions pour obtenir la tension de chaque cellule ? On ne peut pas faire comme sur un vrai voltmetre , mesurer directement entre 2 points ?

Super ! Merci pour toutes ces precisions tres instructives pepe

Sinon autre question, serait il possible d'alimenter le montage arduino via la lipo qui serait branchee sur l'arduino ? Je pensais a un AMS1117 (regulateur 3.3v) qui serait branche sur la 1ere cellule de la lipo, ce qui devrait fonctionner vu que l'arduino nano peut etre alimente en 3.3v ainsi que l'ecran lcd que j'envisage d'integrer. En sachant qu'une cellule chargee est a 4.2v et lorsqu'elle est vide elle est entre 3.6 et 3.7v Par contre, quid de la conso ? Et enfin la mesure de cette cellule risque t'elle d'etre faussee ?

Cette semaine je ferais le montage provisoire de test ainsi que le code avec les tests vial le moniteur serie Le but final sera d'afficher tout ça sur cet ecran : http://www.ebay.fr/itm/271455682791?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Pour cela il faudra ensuite que je vois comment l'ecran doit etre gere via le code arduino

Alors la tu me scotches pepe !!! Tes informations sont claires et precises C'est super agreable a lire, et surtout merci et encore merci pour ton aide et en plus j'apprends plein de choses grace a toi

Donc je vais retenir la solution utilisant la tension totale de la batterie ce sera plus simple J'aurais aime pouvoir mesurer les lipo a 1 cellule sans alimentation exterieur mais du coup je vais laisser tomber ces lipo a 1 cellule ou alors il faut que je prevois une alim externe... Donc je pense finalement ne tester que des lipo a 2, 3 ou 4 cellules et alimenter mon arduino via la tension totale de la lipo ou plutot l'alimenter via 2 cellules car je ne vois pas comment alimenter le systeme une fois avec 2 cellules, la fois d'apres avec 3 cellules et enfin avec 4 cellules...

Sinon tu utilises quel soft pepe pour faire tes schemas ?

Et encore mille mercis

Est ce qu’il serait possible d’effectuer des mesures encore plus précises ?
car pour le moment j’ai une erreur de 0.07V

Salut, merci à nouveau pour ton aide j'ai remplacé les résistances à 10% de mon pont diviseur par des résistances à 1% et la le résultat est parfait !

Par contre dans le moniteur série, les valeurs sont avec 2 chiffres après la virgule... Est il possible d'avoir 3 chiffres après la virgule ? Voici mon code (la tension Vref est mesurée à 5.04V sur mon port USB)

const float coeff_pont_total = (450.000/150.000); const float coeff_pont_cell1 = (450.000/150.000); const float echelle_vref = (5.04/1024);

void setup() { //initialisation du port série Serial.begin(9600); Serial.println("Testeur de LiPo V1"); Serial.println(); }

void loop() { //mesure de la tension brute totale unsigned int raw_bat = analogRead(A0); //mesure de la tension brute cellule 1 unsigned int raw_cell1 = analogRead(A1);

//calcul des tensions réelles float real_bat = ((raw_bat * echelle_vref) * coeff_pont_total); float real_cell1 = ((raw_cell1 * echelle_vref) * coeff_pont_cell1);

float real_cell2 = real_bat-real_cell1;

//affichage des tensions Serial.print("Tension totale : "); Serial.print(real_bat); Serial.println("V");

Serial.print("Tension cellule 1 : "); Serial.print(real_cell1); Serial.println("V");

Serial.print("Tension cellule 2 : "); Serial.print(real_cell2); Serial.println("V");

Serial.println(); delay(5000); }

Je me réponds à moi même
j’ai modifié les Serial.print comme suit pour avoir 3 chiffres après la virgule:

Serial.print(real_cell2, 3);

Par contre autre souci, la lecture ou tout du moins la tension affichée n’est pas stable au fil des lectures…
1ere lecture 8.047V c’est la bonne tension
Et au fil des lectures, cela varie, et le plus bas mesuré est 7.988V

Pour info, j’ai alimenté l’arduino par Vin en utilisant la totalité de ma lipo 2S

Une idée pepe ?

Autre chose étrange, j’obtiens par exemple ces tensions :
Tension totale : 8.032V
Tension cellule 1 : 3.972V
Tension cellule 2 : 4.061V

La tension de la cellule 2 est calculée comme suit
float real_cell2 = real_bat-real_cell1;
soit Tension cellule 2 = Tension totale - tension cellule 1
= 8.032 - 3.972
= 4.060
Et le moniteur série m’indique 4.061V et il y a toujours une erreur de 0.001V entre ce qu’il m’affiche et le calcul réel…

Au voltmètre sur la batterie j'obtiens : Tension totale : 8.04V Tension cellule 1 : 4.01V Tension cellule 2 : 4.03V

Par rapport à ce que me sort le moniteur série : La tension totale a un écart de 0.008V donc c'est bien La tension de la cellule 1 a un écart de 0.038V c'est pas génial La tension de la cellule 2 a un écart de 0.031V c'est pas génial non plus Peut on améliorer les choses ? mon pont diviseur est fait avec des résistances de 150K a 1%

J'ai réussi à quasi stabiliser la tension en rajoutant un condensateur de 22nF sur chaque entrée analogique et la masse