De nos jours, on trouve un peu partout de fausses batteries au lithium et NiMH qui sont vendues par des publicités avec des capacités supérieures à leur véritable capacité. Il est donc très difficile de distinguer une vraie batterie d’une fausse. Il faut donc un appareil pour mesurer la capacité réelle des piles.
Deux méthodes sont connues pour tester des piles avec l’arduino. Une première basée sur la loi d’Ohms. La batterie à tester est déchargée à travers une résistance fixe, le courant et la durée sont mesurés par Arduino et la capacité est calculée en multipliant les deux lectures (courant de décharge et temps).
L’inconvénient de cette première méthode est qu’au cours du test, comme la tension de la batterie diminue, le courant diminue également, ce qui rend les calculs complexes et imprécis. Pour remédier à cela, voici la deuxième méthode pour tester la capacité d’une pile avec l’Arduino. Celle-ci est conçue de telle manière que le courant reste constant tout au long du processus de décharge. Sans plus attendre, voici comment créer un testeur de capacité de batterie ou pile avec l’Arduino !
Les principales caractéristiques d’un test de piles avec Arduino sont :
- Capable de mesurer la capacité des piles AA / AAA NiMh / NiCd, 18650 Li-ion, Li-Polymère, et Li FePO4. Il convient à presque tous les types de piles de moins de 5V.
- Les utilisateurs peuvent régler le courant de décharge à l’aide des boutons poussoirs.
- Interface utilisateur OLED
- Le testeur peut être utilisé comme une charge électronique
Composants utilisés
Commandez maintenant le PCB et tous les composants nécessaires à la construction de ce projet dans un kit
- PCB
- Arduino Nano
- Opamp LM358
- Écran OLED 0,96
- Résistance céramique
- Condensateur 100nF
- Condensateur 220uF
- Résistances 4,7K et 1M
- Bouton-poussoir
- Capuchon des boutons-poussoirs
- Terminal à vis
- Tableau des prototypes
- Arrêt des PCB
- Gaines thermorétractables
- Dissipateur de chaleur
Outils utilisés
- Fer à souder
- Compteur à pinces
- Multimètre
- Soufflerie d’air chaud
- Coupe-fil
- Dénudeur de fil
Étape 1 : Schéma de principe
L’ensemble du schéma est divisé en 5 circuits :
- Circuit d’alimentation électrique
- Circuit de charge à courant constant
- Circuit de mesure de la tension de la pile
- Circuit d’interface utilisateur
- Circuit de sonnerie
Circuit 1 : Circuit d’alimentation électrique
Le circuit d’alimentation est composé d’une prise DC ( 7-9V) et de deux condensateurs de filtrage C1 et C2. La sortie d’alimentation (Vin) est connectée à la broche Arduino Vin. Ici, j’utilise le régulateur de tension embarqué de l’Arduino pour abaisser la tension à 5V.
Circuit 2 : Circuit de charge à courant constant
Le composant central du circuit est l’amplificateur opérationnel LM358 qui contient deux amplificateurs opérationnels. Le signal PWM de la broche D10 de l’Arduino est filtré par un filtre passe-bas (R2 et C6) et envoyé au second amplificateur opérationnel. La sortie du second amplificateur opérationnel est connectée au premier amplificateur opérationnel dans une configuration de suiveur de tension. L’alimentation du LM358 est filtrée par un condensateur de découplage C5.
Le premier amplificateur opérationnel, R1, et Q1 constituent un circuit de charge à courant constant. Nous pouvons donc maintenant contrôler le courant à travers la résistance de charge (R1) en modifiant la largeur d’impulsion du signal PWM.
Circuit 3 : Circuit de mesure de la tension de la pile
La tension de la pile est mesurée par la broche A0 de l’entrée analogique de l’Arduino. Deux condensateurs C3 et C4 sont utilisés pour filtrer les bruits provenant du circuit de charge à courant constant qui peuvent dégrader les performances de conversion ADC.
Circuit 4 : Circuit d’interface utilisateur
Le circuit de l’interface utilisateur est constitué de deux boutons poussoirs et d’un écran OLED I2C de 0,96″. Le bouton-poussoir “Up and Down” permet d’augmenter ou de diminuer la largeur d’impulsion PWM. R3 et R4 sont des résistances de pull-up pour les boutons poussoirs Up et Down. C7 et C8 sont utilisés pour faire rebondir les boutons. Le troisième bouton-poussoir (RST) est utilisé pour réinitialiser la pile Arduino.
Circuit 5 : Circuit de sonnerie
Le circuit de buzzer est utilisé pour alerter le début et la fin du test. Un buzzer de 5V est branché sur la broche D9 de la pile Arduino digital.
Etape 2 : Comment ça marche ?
La théorie est basée sur la comparaison de la tension des entrées inverses (pin-2) et non inverses (pin-3) de l’OpAmp, configuré comme un amplificateur unitaire. Lorsque vous réglez la tension appliquée à l’entrée non-inverseuse en ajustant le signal PWM, la sortie de l’opamp ouvre la grille du MOSFET. Lorsque le MOSFET s’allume, le courant passe à travers R1, il crée une chute de tension, qui fournit une rétroaction négative à l’OpAmp. Il contrôle le MOSFET de telle manière que les tensions à ses entrées inverseuse et non-inverseuse sont égales. Ainsi, le courant traversant la résistance de charge est proportionnel à la tension à l’entrée non inverseuse de l’amplificateur opérationnel.
Le signal PWM de l’Arduino est filtré en utilisant un circuit de filtrage passe-bas ( R2 et C1). Pour tester le signal PWM et les performances du circuit de filtrage, j’ai branché mon DSO ch-1 à l’entrée et ch-2 à la sortie du circuit de filtrage. La forme d’onde de sortie est montrée ci-dessus.
Etape 3 : Mesure de la capacité
Ici, la pile est déchargée jusqu’à sa tension de seuil de bas niveau ( 3,2V).
Capacité de la pile (mAh) = Courant ( I ) en mA x Temps (T ) en heures
Il ressort clairement de l’équation ci-dessus que pour calculer la capacité de la pile (mAh), nous devons connaître le courant en mA et le temps en heure. Le circuit conçu est un circuit de charge à courant constant, de sorte que le courant de décharge reste constant pendant toute la période de test.
Le courant de décharge peut être ajusté en appuyant sur le bouton “Up and Down”. La durée est mesurée à l’aide d’une minuterie dans le code Arduino.
Etape 4 : Faire le circuit
Dans les étapes précédentes, j’ai expliqué la fonction de chacun des composants du circuit. Avant de passer à la réalisation de la carte finale, testez d’abord le circuit sur une planche à pain. Si le circuit fonctionne parfaitement sur la plaque de montage, passez ensuite à la soudure des composants sur la plaque prototype.
J’ai utilisé la carte prototype de 7cm X 5cm.
- Montage de l’Arduino Nano : Coupez d’abord deux rangées de broches femelles de 15 broches chacune. J’ai utilisé une pince diagonale pour couper les connecteurs. Ensuite, soudez les broches du collecteur. Assurez-vous que la distance entre les deux rails correspond à celle de l’Arduino nano.
- Montage de l’écran OLED : Coupez un collecteur femelle avec 4 broches. Puis soudez-le comme indiqué sur la photo.
- Montage des bornes et des composants : Soudez les autres composants comme indiqué sur l’image.
- Câblage : Effectuez le câblage selon le schéma. J’ai utilisé des fils de couleur pour faire le câblage afin de pouvoir les identifier facilement.
Etape 5 : Affichage OLED
Pour afficher la tension de la pile, le courant de décharge et la capacité, j’ai utilisé un écran OLED de 0,96″. Il a une résolution de 128×64 et utilise un bus I2C pour communiquer avec l’Arduino. Deux broches SCL (A5), SDA (A4) dans l’Arduino Uno sont utilisées pour la communication.
J’utilise la bibliothèque Adafruit_SSD1306 pour afficher les paramètres.
Tout d’abord, vous devez télécharger la bibliothèque Adafruit_SSD1306. Ensuite, il faut l’installer.
Les connexions doivent être les suivantes
- Arduino vers OLED
- 5V vers VCC
- GND vers GND
- A4 vers SDA
- A5 vers SCL
Etape 6 : Buzzer d’avertissement
Un buzzer piézo est utilisé pour donner des alertes pendant le début et la fin du test. Le buzzer a deux bornes, la plus longue est positive et la plus courte est négative. L’autocollant du nouveau buzzer comporte également un ” + ” pour indiquer la borne positive.
Comme la carte prototype Arduino n’a pas assez de place pour placer le buzzer, j’ai connecté le buzzer à la carte de circuit imprimé principale en utilisant deux fils. Pour isoler la connexion nue, j’ai utilisé une gaine thermorétractable.
Les connexions doivent être les suivantes
- Arduino vers Buzzer
- D9 vers Terminal positif
- GND vers Terminal négatif
Etape 7 : Monter les arrêts de PCB
Après avoir soudé et câblé, montez les supports aux 4 coins. Cela permettra d’avoir un espace suffisant entre les soudures et les fils et le sol.
Etape 8 : Conception des PCB
J’ai dessiné le schéma à l’aide du logiciel en ligne EasyEDA après être passé à la mise en page du PCB.
Tous les composants que vous avez ajoutés dans le schéma doivent être là, empilés les uns sur les autres, prêts à être placés et acheminés. Faites glisser les composants en vous agrippant à ses plots. Puis placez-le à l’intérieur de la ligne rectangulaire.
Disposez tous les composants de manière à ce que la carte occupe un minimum d’espace. Plus la taille de la carte est petite, moins le coût de fabrication du circuit imprimé sera élevé. Il sera utile que cette carte soit munie de quelques trous de fixation afin de pouvoir être montée dans un boîtier.
Maintenant, il faut faire le trajet. Le routage est la partie la plus amusante de tout ce processus. C’est comme résoudre un puzzle ! En utilisant l’outil de routage, nous devons relier tous les éléments. Vous pouvez utiliser les couches supérieure et inférieure pour éviter le chevauchement entre deux pistes différentes et raccourcir les pistes.
Etape 9 : Assembler le PCB
Pour le soudage, vous aurez besoin d’un fer à souder, d’une pince et d’un multimètre. Il est conseillé de souder les composants en fonction de leur hauteur. Soudez d’abord les composants de moindre hauteur.
Vous pouvez suivre les étapes suivantes pour souder les composants :
- Poussez les pattes du composant dans leurs trous, et tournez le circuit imprimé sur son dos.
- Tenez la pointe du fer à souder à la jonction de la pastille et de la patte du composant.
- Introduisez la soudure dans la jonction de manière à ce qu’elle coule tout autour du fil et recouvre la pastille. Une fois qu’elle a coulé tout autour, éloignez la pointe.
Etape 10 : Logiciels et Librairies
Tout d’abord, téléchargez le code Arduino ci-joint. Ensuite, téléchargez les librairies suivantes et installez-les.
Librairies à télécharger
Téléchargez et installez les bibliothèques suivantes :
- JC_Button : https://github.com/JChristensen/JC_Button
- Adafruit_SSD1306 : https://github.com/JChristensen/JC_Button
Dans le code, vous devez changer les deux choses suivantes :
- Valeurs actuelles des tableaux : Cela peut être fait en connectant un multimètre en série avec la pile. Appuyez sur le bouton haut et mesurez le courant, les valeurs de courant sont les éléments du tableau.
- VCC : Vous utilisez un multimètre pour mesurer la tension à la broche 5V de l’Arduino. Dans mon cas, c’est 4,96V.
Vous pouvez modifier la valeur de Low_BAT_Level dans le code en fonction de la chimie de la pile. Il est préférable de prendre un peu de marge sur la tension de coupure indiquée ci-dessous.
Voici les taux de décharge et les tensions de coupure pour différentes chimies de pile au lithium-ion :
- Oxyde de cobalt et de lithium : Tension de coupure = 2,5V à un taux de décharge de 1C
- Oxyde de lithium et de manganèse : Tension de coupure = 2,5V à un taux de décharge de 1C
- Phosphate de fer et de lithium : Tension de coupure = 2,5V à un taux de décharge de 1C
- Titanate de lithium : Tension de coupure = 1,8V à un taux de décharge de 1C
- Oxyde de lithium-nickel-manganèse-cobalt : Tension de coupure = 2,5V à un taux de décharge de 1C
- Oxyde de lithium-nickel-cobalt-aluminium : Tension de coupure = 3,0V à un taux de décharge de 1C
Etape 11 : Conclusion
Pour tester le circuit, j’ai d’abord chargé une bonne batterie Samsung 18650 avec mon chargeur ISDT C4. Ensuite, je connecte la batterie à la borne de la batterie. Réglez maintenant le courant en fonction de vos besoins et appuyez longuement sur le bouton “UP”. Vous devriez alors entendre un bip et la procédure de test de la capacité de la batterie commence. Pendant le test, vous surveillerez tous les paramètres sur l’écran OLED. La pile se déchargera jusqu’à ce que sa tension atteigne son seuil de bas niveau (3,2V). Le processus de test de la capacité de la batterie se terminera par deux longs bips.
J’espère que mon tutoriel vous sera utile.