- Mesure de la tension de cellule individuelle dans une pile de batteries en série
- Circuit différentiel pour mesurer la tension de cellule individuelle
- Schéma
- Conception et fabrication de circuits imprimés avec Easy EDA
- Calcul et commande d'échantillons en ligne
- Test du circuit de surveillance de tension
- Mesure de la tension de la cellule au lithium à l'aide d'Arduino
- Programmation de l'Arduino
- Affichage de la tension de cellule individuelle fonctionnant
Le kilométrage et les performances d'un véhicule électrique dépendent de la capacité et de l'efficacité de sa batterie. Il incombe au système de gestion de batterie (BMS) de maintenir la batterie en parfait état de santé. Un BMS est une unité sophistiquée dans un VE qui fait beaucoup d'activité comme surveiller les cellules, les équilibrer et même les protéger des changements de température. Nous en avons déjà assez appris dans cet article sur le système de gestion de batterie, alors vérifiez-les si vous êtes nouveau ici.
Pour faire quoi que ce soit, la première étape du BMS serait de connaître l'état actuel des cellules de la batterie au lithium. Cela se fait en mesurant la tension et le courant (parfois aussi la température) des cellules du pack. Ce n'est qu'avec ces deux valeurs que le BMS pourrait calculer le SOC ou SOH et effectuer l'équilibrage des cellules, etc. Ainsi, mesurer la tension et le courant de la cellule est vital pour tout circuit BMS, qu'il s'agisse d'une simple batterie externe ou d'une batterie d'ordinateur portable ou d'un pack aussi compliqué que EV / Batteries solaires.
Dans cet article, nous allons apprendre comment mesurer la tension de cellule individuelle des cellules utilisées dans une batterie au lithium. Dans l'intérêt de ce projet, nous utiliserons quatre cellules au lithium 18650 connectées en série pour former une batterie et concevoir un circuit simple utilisant des amplificateurs opérationnels pour mesurer les tensions individuelles des cellules et l' afficher sur un écran LCD à l'aide d'Arduino.
Mesure de la tension de cellule individuelle dans une pile de batteries en série
Le problème avec la mesure de la tension de cellule individuelle dans un pack de batterie connectée en série est que le point de référence reste le même. L'image ci-dessous illustre la même chose
Par souci de simplicité, supposons que les quatre cellules sont à un niveau de tension de 4V comme indiqué ci-dessus. Maintenant, si nous utilisons un microcontrôleur comme Arduino pour mesurer la tension de la cellule, nous n'aurons aucun problème à mesurer la tension de la 1ère cellule car l'autre extrémité est connectée à la terre. Mais, pour les autres cellules, nous devons mesurer la tension de cette cellule avec les cellules précédentes, par exemple, lorsque nous mesurons la tension de la 4ème cellule, nous mesurerons la tension des quatre cellules ensemble. En effet, le point de référence ne peut pas être modifié par rapport au sol.
Nous devons donc introduire ici un circuit supplémentaire qui pourrait nous aider à mesurer les tensions individuelles. La manière grossière consiste à utiliser un diviseur de potentiel pour cartographier les niveaux de tension, puis les mesurer, mais cette méthode réduira la résolution de la valeur de lecture à plus de 0,1V. Par conséquent, dans ce didacticiel, nous utiliserons le circuit différentiel de l'amplificateur opérationnel pour mesurer la différence entre les bornes de chaque cellule afin de mesurer la tension individuelle.
Circuit différentiel pour mesurer la tension de cellule individuelle
Nous connaissons déjà un ampli-op lorsqu'il fonctionne comme un amplificateur différentiel, il donne la différence entre les deux valeurs de tension fournies à sa broche inverseuse et non inverseuse. Donc, dans notre objectif de mesurer 4 tensions de cellules, nous avons besoin de trois amplificateurs opérationnels différentiels, comme indiqué ci-dessous.
Notez que cette image est uniquement pour la représentation; le circuit réel a besoin de plus de composants et sera abordé plus loin dans cet article. Le premier op-amp O1 mesure la tension de la 2 ème cellule en calculant la différence entre la 2 ème borne de cellule et la 1 ère borne de cellule qui est (8-4). De même, les amplificateurs opérationnels O2 et O3 mesurent respectivement la 3 ème et la 4 ème tension de cellule. Nous n'avons pas utilisé d'ampli opérationnel pour la 1ère cellule car elle pouvait être mesurée directement.
Schéma
Le schéma de circuit complet pour la surveillance de la tension multicellulaire dans la batterie au lithium est donné ci-dessous. Le circuit a été conçu en utilisant EasyEDA et nous utiliserons le même pour fabriquer notre PCB également.
Comme vous pouvez le voir, nous avons deux boîtiers Quad Rail to Rail OPA4197 haute tension dans notre circuit, tous deux alimentés par la tension totale du pack. Un IC (U1) est utilisé pour créer un circuit tampon aka suiveur de tension tandis que l'autre IC (U2) est utilisé pour former le circuit amplificateur différentiel. Un circuit tampon est nécessaire pour empêcher l'une des cellules de se charger individuellement, ce qui signifie qu'aucun courant ne doit être consommé à partir d'une seule cellule mais ne forme que l'ensemble du pack. Étant donné que le circuit tampon a une impédance d'entrée très élevée, nous pouvons l'utiliser pour lire la tension de la cellule sans en tirer de puissance.
Les quatre amplificateurs opérationnels du circuit intégré U1 sont utilisés pour tamponner la tension des quatre cellules respectivement. Les tensions d'entrée des cellules sont étiquetées de B1 + à B4 + et la tension de sortie tamponnée est étiquetée de B1_Out à B4_Out. Cette tension tamponnée est ensuite envoyée à l'amplificateur de différenciation pour mesurer la tension de cellule individuelle comme décrit ci-dessus. La valeur de toute la résistance est fixée à 1K puisque le gain de l'amplificateur différentiel est réglé à l'unité. Vous pouvez utiliser n'importe quelle valeur de résistance, mais elles doivent toutes être de la même valeur, à l'exception des résistances R13 et R14. Ces deux résistances forment un diviseur de potentiel pour mesurer la tension du pack de la batterie afin que nous puissions la comparer avec la somme des tensions de cellules mesurées.
Rail to Rail, ampli-op haute tension
Le circuit ci-dessus vous oblige à utiliser un amplificateur opérationnel haute tension Rail to Rail comme OPA4197 pour deux raisons. Les deux circuits intégrés à amplificateur opérationnel fonctionnent à une tension de bloc maximale de (4,3 * 4) 17,2 V, par conséquent, l'amplificateur opérationnel doit être capable de gérer des tensions élevées. De plus, puisque nous utilisons un circuit tampon, la sortie du tampon doit être égale à emballer tension pour la 4 e borne cellulaire, ce qui signifie que la tension de sortie doit être égale à la tension de fonctionnement de l'ampli-op donc nous avons besoin d'utiliser un rail à Ampli-op sur rail
Si vous ne trouvez pas un ampli opérationnel rail à rail, vous pouvez remplacer le circuit intégré par un simple LM324. Ce circuit intégré peut gérer la haute tension mais ne peut pas agir comme un rail à rail, vous devez donc utiliser une résistance de rappel de 10k sur la première broche du circuit intégré U1 Op-Amp.
Conception et fabrication de circuits imprimés avec Easy EDA
Maintenant que notre circuit est prêt, il est temps de le fabriquer. Étant donné que l'ampli-op que j'utilise n'est disponible qu'en boîtier SMD, j'ai dû fabriquer un PCB pour mon circuit. Ainsi, comme toujours, nous avons utilisé l'outil EDA en ligne appelé EasyEDA pour fabriquer notre PCB car il est très pratique à utiliser car il a une bonne collection d'empreintes et il est open-source.
Après avoir conçu le PCB, nous pouvons commander les échantillons de PCB par leurs services de fabrication de PCB à faible coût. Ils offrent également un service d'approvisionnement en composants où ils ont un grand stock de composants électroniques et les utilisateurs peuvent commander les composants nécessaires avec la commande de PCB.
Lors de la conception de vos circuits et PCB, vous pouvez également rendre publics vos conceptions de circuits et de PCB afin que d'autres utilisateurs puissent les copier ou les modifier et profiter de votre travail, nous avons également rendu public l'ensemble de nos schémas de circuits et de PCB pour ce circuit, vérifiez le lien ci-dessous:
easyeda.com/CircuitDigest/Multicell-Voltage-measuring-for-BMS
Vous pouvez afficher n'importe quelle couche (Haut, Bas, Topsilk, Bottomsilk, etc.) du PCB en sélectionnant le calque dans la fenêtre «Couches». Récemment, ils ont également introduit une option de vue 3D afin que vous puissiez également afficher le PCB de mesure de tension multicellulaire, sur son apparence après la fabrication à l'aide du bouton Vue 3D dans EasyEDA:
Calcul et commande d'échantillons en ligne
Après avoir terminé la conception de ce circuit de mesure de tension de cellule au lithium, vous pouvez commander le PCB via JLCPCB.com. Pour commander le PCB auprès de JLCPCB, vous avez besoin du fichier Gerber. Pour télécharger les fichiers Gerber de votre PCB, cliquez simplement sur le bouton Générer un fichier de fabrication sur la page de l'éditeur EasyEDA, puis téléchargez le fichier Gerber à partir de là ou vous pouvez cliquer sur Commander à JLCPCB comme indiqué dans l'image ci-dessous. Cela vous redirigera vers JLCPCB.com, où vous pourrez sélectionner le nombre de PCB que vous souhaitez commander, le nombre de couches de cuivre dont vous avez besoin, l'épaisseur du PCB, le poids du cuivre et même la couleur du PCB, comme l'image ci-dessous:
Après avoir cliqué sur le bouton commander sur le bouton JLCPCB, il vous mènera au site Web JLCPCB où vous pouvez commander n'importe quel PCB couleur à un prix très bas, qui est de 2 $ pour toutes les couleurs. Leur temps de construction est également très inférieur, soit 48 heures avec une livraison DHL de 3 à 5 jours.En gros, vous obtiendrez vos circuits imprimés dans la semaine suivant la commande. De plus, ils offrent également un rabais de 20 $ sur l'expédition pour votre première commande.
Après avoir commandé le PCB, vous pouvez vérifier la progression de la production de votre PCB avec la date et l'heure. Vous le vérifiez en allant sur la page du compte et en cliquant sur le lien "Progression de la production" sous le PCB comme, illustré dans l'image ci-dessous.
Après quelques jours de commande de PCB, j'ai reçu les échantillons de PCB dans un bel emballage comme le montrent les images ci-dessous.
Après vous être assuré que les traces et les empreintes étaient correctes. J'ai procédé à l'assemblage du PCB, j'ai utilisé des en-têtes femelles pour placer l'Arduino Nano et l'écran LCD afin que je puisse les retirer plus tard si j'en ai besoin pour d'autres projets. La carte complètement soudée ressemble à ceci ci-dessous
Test du circuit de surveillance de tension
Après avoir soudé tous les composants, connectez simplement la batterie au connecteur H1 de la carte. J'ai utilisé des câbles de connexion pour m'assurer de ne pas changer la connexion à l'avenir par accident. Faites très attention à ne pas le brancher dans le mauvais sens car cela pourrait entraîner un court-circuit et endommager les batteries ou le circuit de manière permanente. Mon PCB avec la batterie que j'ai utilisée pour les tests est illustré ci-dessous.
Utilisez maintenant le multimètre sur la borne H2 pour mesurer les tensions de vente individuelles. La borne est marquée par des chiffres pour identifier la tension de la cellule qui est actuellement mesurée. Avec ici, nous pouvons conclure que le circuit fonctionne. Mais pour le rendre plus intéressant, connectons un écran LCD et utilisons un Arduino pour mesurer ces valeurs de tension et l'afficher sur l'écran LCD.
Mesure de la tension de la cellule au lithium à l'aide d'Arduino
Le circuit pour connecter l'Arduino à notre PCB est montré ci-dessous. Il montre comment connecter l'Arduino Nano à l'écran LCD.
La broche d'en-tête H2 sur le PCB doit être connectée aux broches analogiques de la carte Arduino comme indiqué ci-dessus. Les broches analogiques A1 à A4 sont utilisées pour mesurer respectivement les quatre tensions de cellule, tandis que la broche A0 est connectée à la broche d'en-tête v 'de P1. Cette broche en V peut être utilisée pour mesurer la tension totale du pack. Nous avons également connecté le 1 er axe de P1 à la broche Vin de l'Arduino et 3 ème axe de P1 o la broche de terre Arduino pour alimenter l'Arduino avec le pack batterie.
Nous pouvons écrire un programme pour mesurer les quatre tensions de cellule et la tension de la batterie et l'afficher sur l'écran LCD. Pour le rendre plus intéressant, j'ai également ajouté les quatre tensions de cellule et comparé la valeur à la tension mesurée du pack pour vérifier à quel point nous mesurons réellement la tension.
Programmation de l'Arduino
Le programme complet se trouve à la fin de cette page. Le programme est assez simple, nous utilisons simplement la fonction de lecture analogique pour lire les tensions de cellule à l'aide du module ADC et afficher la valeur de tension de calcul sur l'écran LCD à l'aide de la bibliothèque LCD.
float Cell_1 = analogRead (A1) * (5,0 / 1023,0); // Mesure la tension de la 1ère cellule lcd.print ("C1:"); lcd.print (Cell_1);
Dans l'extrait ci-dessus, nous avons mesuré la tension de la cellule 1 et l'avons multipliée par 5/1023 pour convertir la valeur ADC de 0 à 1023 en une valeur réelle de 0 à 5V. Nous affichons ensuite la valeur de tension calculée sur l'écran LCD. De même, nous faisons cela pour les quatre cellules et la batterie totale. Nous avons également utilisé la tension totale variable pour additionner toutes les tensions de cellule et l'afficher sur l'écran LCD comme indiqué ci-dessous.
float Total_Voltage = Cell_1 + Cell_2 + Cell_3 + Cell_4; // Additionne les quatre valeurs de tension mesurées lcd.print ("Total:"); lcd.print (Total_Voltage);
Affichage de la tension de cellule individuelle fonctionnant
Une fois que vous êtes prêt avec le circuit et le code, téléchargez le code sur la carte Arduino et connectez la banque d'alimentation au PCB. L'écran LCD devrait maintenant afficher la tension de cellule individuelle de toutes les quatre cellules, comme illustré ci-dessous.
Comme vous pouvez le voir, la tension affichée pour les cellules 1 à 4 est respectivement de 3,78 V, 3,78 V, 3,82 V et 3,84 V. Alors j'ai utilisé mon multimètre pour vérifier la tension réelle de ces cellules qui s'est avérée être un peu différente, la différence est indiquée ci-dessous.
Tension mesurée |
Tension réelle |
3,78 V |
3,78 V |
3,78 V |
3,78 V |
3,82 V |
3,81 V |
3,84 V |
3,82 V |
Comme vous pouvez le voir, nous obtenons des résultats précis pour les cellules un et deux, mais il y a une erreur pouvant atteindre 200 mV pour les cellules 3 et 4. Ceci est le plus probable pour notre conception. Puisque nous utilisons un circuit de différenciation ampli-op, la précision de la tension mesurée diminuera à mesure que le nombre de cellules augmente.
Mais cette erreur est une erreur fixe et peut être corrigée dans le programme, en prenant des échantillons de lecture et en ajoutant un multiplicateur pour corriger l'erreur. Sur l'écran LCD suivant, vous pouvez également voir la somme de la tension mesurée et de la tension réelle du pack qui a été mesurée via le diviseur de potentiel. La même chose est illustrée ci-dessous.
La somme des tensions mesurées est de 15,21 V et la tension réelle mesurée via la broche A0 d'Arduino s'avère être de 15,22 V. Ainsi la différence est de 100mV ce qui n'est pas mal. Bien que ce type de circuit puisse être utilisé pour un nombre moindre de lies, comme dans les banques d'alimentation ou les batteries d'ordinateurs portables. Le BMS de véhicule électrique utilise un type spécial de circuits intégrés comme le LTC2943 car même une erreur de 100 mV n'est pas tolérable. Néanmoins nous avons appris à le faire pour des circuits à petite échelle où le prix est une contrainte.
Le fonctionnement complet de l'installation peut être trouvé dans la vidéo ci-dessous. J'espère que vous avez apprécié le projet et en avez appris quelque chose d'utile. Si vous avez des questions, laissez-les dans la section des commentaires ou utilisez les forums pour des réponses plus rapides.