Table des matières:

Chargeur de batterie intelligent basé sur un microcontrôleur : 9 étapes (avec photos)
Chargeur de batterie intelligent basé sur un microcontrôleur : 9 étapes (avec photos)

Vidéo: Chargeur de batterie intelligent basé sur un microcontrôleur : 9 étapes (avec photos)

Vidéo: Chargeur de batterie intelligent basé sur un microcontrôleur : 9 étapes (avec photos)
Vidéo: A Simple Battery Charger Circuit Diagram for 12V Battery 2024, Novembre
Anonim
Chargeur de batterie intelligent basé sur un microcontrôleur
Chargeur de batterie intelligent basé sur un microcontrôleur
Chargeur de batterie intelligent basé sur un microcontrôleur
Chargeur de batterie intelligent basé sur un microcontrôleur
Chargeur de batterie intelligent basé sur un microcontrôleur
Chargeur de batterie intelligent basé sur un microcontrôleur

Le circuit que vous êtes sur le point de voir est un chargeur de batterie intelligent basé sur ATMEGA8A avec coupure automatique. Différents paramètres sont affichés via un écran LCD pendant différents états de charge. De plus, le circuit émettra un son via un avertisseur à la fin de la charge.

J'ai construit le chargeur essentiellement pour charger ma batterie Li-ion 11.1v/4400maH. Le micrologiciel est essentiellement écrit pour charger ce type de batterie particulier. Vous pouvez télécharger votre propre protocole de charge pour répondre à vos besoins de charge d'autres types de batterie.

Comme vous le savez, les chargeurs de batterie intelligents sont facilement disponibles sur les marchés. Mais étant un passionné d'électronique, il est toujours préférable pour moi de construire le mien plutôt que d'en acheter un qui aura des fonctions statiques/inchangeables. Dans ce module, j'ai l'intention de mise à niveau à l'avenir, j'ai donc laissé de la place à ce sujet.

Lorsque j'ai acheté pour la première fois ma précédente batterie Li-ion 11.1v/2200mah, j'ai recherché des chargeurs de batterie DIY avec contrôle intelligent sur Internet. vraiment bien pour moi. Mais comme ma batterie précédente est morte avec le temps (sans raison), j'ai acheté une autre batterie Li-ion de 11.1v/4400mah. Mais cette fois, la configuration précédente était insuffisante pour charger ma nouvelle batterie. Pour répondre à mes exigence, j'ai fait quelques études sur le net et j'ai pu concevoir mon propre chargeur intelligent.

Je partage cela car je pense que de nombreux amateurs / passionnés sont vraiment passionnés par le travail sur l'électronique de puissance et les microcontrôleurs et ont également besoin de construire leur propre chargeur intelligent.

Jetons un coup d'œil rapide à la façon de charger une batterie Li-ion.

Étape 1: Protocole de charge pour une batterie Li-ion

Pour charger la batterie Li-ion, certaines conditions doivent être remplies. Si nous ne maintenons pas les conditions, soit la batterie sera sous-chargée, soit elle prendra feu (en cas de surcharge) ou sera endommagée de façon permanente.

Il existe un très bon site Web pour tout savoir sur les différents types de batteries et bien sûr, vous connaissez le nom du site Web si vous êtes habitué à travailler sur les batteries… Oui, je parle de batteryuniversity.com.

Voici le lien pour connaître les détails nécessaires pour charger une batterie Li-ion.

Si vous êtes assez paresseux pour lire toutes ces théories, alors l'essentiel est le suivant.

1. La charge complète d'une batterie Li-ion 3,7 V est de 4,2 V. Dans notre cas, une batterie Li-ion 11,1 V signifie une batterie 3 x 3,7 V. Pour une charge complète, la batterie doit atteindre 12,6 V mais pour des raisons de sécurité, nous le chargera jusqu'à 12.5v.

2. Lorsque la batterie est sur le point d'atteindre sa pleine charge, le courant tiré par la batterie du chargeur tombe à 3% de la capacité nominale de la batterie. Par exemple, la capacité de la batterie de mon pack de cellules est de 4400 mAh. Ainsi, lorsque la batterie sera complètement chargée, le courant consommé par la batterie sera atteint à près de 3% à 5% de 4400ma, c'est-à-dire entre 132 et 220ma. Pour arrêter la charge en toute sécurité, la charge sera arrêtée lorsque le courant consommé passera en dessous 190ma (près de 4% de la capacité nominale).

3. Le processus de charge total est divisé en deux parties principales 1-Courant constant (mode CC), 2-Tension constante (mode CV). (Il existe également un mode de charge maximale, mais nous ne l'implémenterons pas dans notre chargeur comme chargeur informera l'utilisateur lors de la pleine charge en alarmant, alors la batterie doit être déconnectée du chargeur)

Mode CC -

En mode CC, le chargeur charge la batterie avec un taux de charge de 0,5c ou 1c. Maintenant, qu'est-ce que c'est que 0,5c/1c????Pour être simple, si la capacité de votre batterie est de 4400mah, alors en mode CC, 0,5c sera de 2200ma et 1c sera de 4400ma de courant de charge. 'c' signifie taux de charge/décharge. Certaines batteries prennent également en charge 2c, c'est-à-dire qu'en mode CC, vous pouvez régler le courant de charge jusqu'à 2x la capacité de la batterie mais c'est fou !!!!!

Mais par sécurité, je choisirai un courant de charge de 1000ma pour une batterie de 4400mah soit 0.22c. Dans ce mode, le chargeur surveillera le courant consommé par la batterie indépendamment de la tension de charge.ie Le chargeur maintiendra 1A de courant de charge en augmentant / en diminuant la tension de sortie jusqu'à ce que la charge de la batterie atteigne 12,4 V.

Mode CV -

Maintenant que la tension de la batterie atteint 12,4 V, le chargeur maintiendra 12,6 volts (indépendamment du courant tiré par la batterie) à sa sortie. Maintenant, le chargeur arrêtera le cycle de charge en fonction de deux choses. Si la tension de la batterie croise 12,5 V et aussi si le courant de charge descend en dessous de 190ma (4% de la capacité nominale de la batterie comme expliqué précédemment), alors le cycle de charge sera arrêté et un avertisseur sonore retentira.

Étape 2: Schéma et explication

Voyons maintenant le fonctionnement du circuit. Le schéma est joint au format pdf dans le fichier BIN.pdf.

La tension d'entrée du circuit peut être de 19/20v. J'ai utilisé un ancien chargeur d'ordinateur portable pour obtenir 19v.

J1 est un connecteur terminal pour connecter le circuit à la source de tension d'entrée. Q1, D2, L1, C9 forme un convertisseur abaisseur. Maintenant, qu'est-ce que c'est ? du convertisseur, vous pouvez obtenir la tension de sortie souhaitée en faisant varier le rapport cyclique. Si vous voulez en savoir plus sur les convertisseurs buck, visitez cette page. Mais pour être franc, ils sont totalement différents de la théorie. Pour évaluer les valeurs appropriées de L1 & C9 pour mes besoins, il a fallu 3 jours d'essais et d'erreurs. Si vous allez charger différentes batteries, il est alors possible que ces valeurs changent.

Q2 est le transistor de commande pour le mosfet de puissance Q1. R1 est une résistance de polarisation pour Q1. Nous alimenterons le signal pwm dans la base de Q2 pour contrôler la tension de sortie. C13 est un capuchon de découplage.

Maintenant, la sortie est ensuite transmise à Q3. Une question peut être posée: "À quoi sert Q3 ici ? ?". La réponse est assez simple, elle agit comme un simple interrupteur. Chaque fois que nous mesurerons la tension de la batterie, nous allons éteindre Q3 pour déconnecter la sortie de tension de charge du convertisseur abaisseur. Q4 est le pilote de Q3 avec une résistance de polarisation R3.

Notez qu'il y a une diode D1 dans le chemin. Que fait la diode ici dans le chemin ?? Cette réponse est également très simple. flux dans le chemin inverse via les diodes du corps des MOSFET Q3 et Q1 et ainsi U1 et U2 obtiendront la tension de la batterie à leurs entrées et alimenteront le circuit à partir de la tension de la batterie. Pour éviter cela, D1 est utilisé.

La sortie du D1 est ensuite alimentée à l'entrée du capteur de courant (IP +). Il s'agit d'un capteur de courant de base à effet Hall, c'est-à-dire que la partie de détection de courant et la partie de sortie sont isolées. La sortie du capteur de courant (IP-) est ensuite alimentée au batterie. Ici R5, RV1, R6 forment un circuit diviseur de tension pour mesurer la tension de la batterie/tension de sortie.

L'ADC de l'atmega8 est utilisé ici pour mesurer la tension et le courant de la batterie. L'ADC peut mesurer un maximum de 5 V. Mais nous mesurerons un maximum de 20 V (avec une certaine marge).:1 diviseur de tension est utilisé. Le pot (RV1) est utilisé pour affiner/calibrer. J'en parlerai plus tard. C6 est le capuchon de découplage.

La sortie du capteur de courant ACS714 est également alimentée à la broche ADC0 d'atmega8. Via ce capteur ACS714, nous mesurerons le courant. J'ai une carte de dérivation de pololu de version 5A et fonctionne vraiment très bien. comment mesurer le courant.

L'écran LCD est un écran LCD 16x2 normal. L'écran LCD utilisé ici est configuré en mode 4 bits car le nombre de broches de l'atmega8 est limité. RV2 est le potentiomètre de réglage de la luminosité de l'écran LCD.

L'atmega8 est cadencé à 16mhz avec un cristal externe X1 avec deux capuchons de découplage C10/11. L'unité ADC de l'atmega8 est alimentée via la broche Avcc via une inductance 10uH. C7, C8 sont des capuchons de découplage connectés à Agnd. Placez-les comme aussi près que possible de l'Avcc et de l'Aref lors de la fabrication du PCB. Notez que la broche Agnd n'est pas affichée dans le circuit. La broche Agnd sera connectée à la terre.

J'ai configuré l'ADC de l'atmega8 pour utiliser Vref externe, c'est-à-dire que nous fournirons la tension de référence via la broche Aref. La principale raison derrière cela pour obtenir une précision de lecture maximale possible. La tension de référence interne de 2,56 V n'est pas tellement bonne en avr. C'est pourquoi je l'ai configuré en externe. Maintenant, voici une chose à noter. Le 7805 (U2) ne fournit que le capteur ACS714 et la broche Aref d'atmega8. C'est pour maintenir une précision optimale. L'ACS714 donne une tension de sortie stable de 2,5 V lorsque il n'y a pas de courant qui le traverse. Mais par exemple, si la tension d'alimentation de l'ACS714 est abaissée (disons 4,7 v), la tension de sortie sans courant (2,5 v) sera également abaissée et cela créera une lecture de courant inappropriée/erronée De plus, comme nous mesurons la tension par rapport à Vref, la tension de référence sur Aref doit être stable et sans erreur. C'est pourquoi nous avons besoin d'un 5v stable.

Si nous alimentions l'ACS714 et l'Aref à partir de l'U1 qui alimente l'atmega8 et l'écran LCD, il y aurait alors une chute de tension substantielle à la sortie de U1 et la lecture de l'ampère et de la tension serait erronée. C'est pourquoi U2 est utilisé ici pour éliminer l'erreur en fournissant un 5v stable à Aref et ACS714 uniquement.

S1 est pressé pour calibrer la lecture de tension. S2 est réservé pour une utilisation future. Vous pouvez soit ajouter/ne pas ajouter ce bouton selon votre choix.

Étape 3: Fonctionnement…

Fonctionnement…
Fonctionnement…
Fonctionnement…
Fonctionnement…
Fonctionnement…
Fonctionnement…

À la mise sous tension, l'atmega8 activera le convertisseur abaisseur en donnant une sortie pwm de 25% à la base du Q2. À son tour, Q2 entraînera alors Q1 et le convertisseur abaisseur sera démarré. Q3 sera entraîné pour déconnecter la sortie du convertisseur abaisseur et la batterie. L'atmega8 lit ensuite la tension de la batterie via le diviseur de résistance. Si aucune batterie n'est connectée, alors l'atmega8 affiche un message "Insérer la batterie" via l'écran LCD 16x2 et attend la batterie. Si une batterie est ensuite connectée, le atmega8 vérifiera la tension. Si la tension est inférieure à 9v, alors l'atmega8 affichera "Batterie défectueuse" sur l'écran LCD 16x2.

Si une batterie avec plus de 9 V est trouvée, le chargeur entrera d'abord en mode CC et activera le mosfet de sortie Q3. Le mode chargeur (CC) sera mis à jour pour s'afficher immédiatement. Si la tension de la batterie est supérieure à 12,4 V, alors le mega8 quittera immédiatement le mode CC et entrera en mode CV. Si la tension de la batterie est inférieure à 12,4 V, le mega8 maintiendra un courant de charge de 1 A en augmentant/diminuant la tension de sortie du convertisseur buck en faisant varier le cycle de service du pwm. Le courant de charge sera lu par le capteur de courant ACS714. La tension de sortie abaisseur, le courant de charge, le cycle de service PWM seront périodiquement mis à jour dans l'écran LCD.

. La tension de la batterie sera vérifiée en éteignant Q3 après chaque intervalle de 500 ms. La tension de la batterie sera immédiatement mise à jour sur l'écran LCD.

Si la tension de la batterie dépasse 12,4 volts pendant la charge, le mega8 quittera le mode CC et entrera en mode CV. L'état du mode sera immédiatement mis à jour sur l'écran LCD.

Ensuite, le mega8 maintiendra la tension de sortie de 12,6 volts en faisant varier le cycle de service du buck. Ici, la tension de la batterie sera vérifiée après chaque intervalle de 1 s. Dès que la tension de la batterie sera supérieure à 12,5 v, elle sera vérifiée si le courant consommé est inférieur à 190ma. Si les deux conditions sont remplies, le cycle de charge sera arrêté en éteignant définitivement Q3 et un avertisseur sonore retentira en allumant Q5. De plus, mega8 affichera "Charge terminée" via l'écran LCD.

Étape 4: Pièces requises

Pièces requises
Pièces requises

Vous trouverez ci-dessous les pièces requises pour terminer le projet. Veuillez vous référer aux fiches techniques pour le brochage. Seul le lien de la fiche technique des pièces cruciales est fourni

1) ATMEGA8A x 1. (fiche technique)

2) Capteur de courant ACS714 5A de Pololu x 1 (je recommande fortement d'utiliser le capteur de Pololu car ils sont les plus précis parmi tous les autres capteurs que j'ai utilisés. Vous pouvez le trouver ici). Le brochage est décrit dans l'image.

3) IRF9540 x 2. (fiche technique)

4) 7805 x 2 (recommandé par Toshiba GenuineSpare car ils offrent la sortie 5v la plus stable). (fiche technique)

5) 2n3904 x 3. (fiche technique)

6) 1n5820 schottky x 2. (fiche technique)

7) 16x2 LCD x 1. (fiche technique)

8) inductance de puissance 330uH/2A x 1 (recommandé par coilmaster)

9) inducteur 10uH x 1 (petit)

10) Résistances -(Toutes les résistances sont de type 1% MFR)

150R x 3

680R x 2

1k x 1

2k2 x 1

10k x 2

22k x 1

Pot 5k x 2 (type de montage sur circuit imprimé)

11) Condensateurs

Remarque: je n'ai pas utilisé C4. Il n'est pas nécessaire de l'utiliser si vous utilisez une alimentation pour ordinateur portable/une alimentation régulée comme source d'alimentation 19v

100uF/25v x 3

470uF/25v x 1

1000uF/25v x 1

100nx8

22p x 2

12) interrupteur à poussoir momentané à montage sur PCB x 2

13) Avertisseur sonore 20v x 1

14) Connecteur de bornier à 2 broches x 2

15) Armoire (j'ai utilisé une armoire comme celle-ci.). Vous pouvez utiliser ce que vous voulez.

16) Alimentation pour ordinateur portable 19v (j'ai modifié une alimentation pour ordinateur portable hp, vous pouvez utiliser n'importe quel type d'alimentation comme vous le souhaitez. Si vous voulez en construire une, visitez mon ce instructables.)

17) Dissipateur de chaleur de taille moyenne pour U1 et Q1. Vous pouvez utiliser ce type. Ou vous pouvez vous référer à mes images de circuit. Mais assurez-vous d'utiliser un dissipateur de chaleur pour les deux.

18) Connecteur banane - Femelle (noir et rouge) x 1 + mâle (noir et rouge) (selon vos besoins en connecteurs)

Étape 5: Temps de calcul……

Calcul de mesure de tension:

La tension maximale que nous mesurerons à l'aide de l'atmega8 adc est de 20v. Mais l'adc d'atmega8 peut mesurer un maximum de 5v. Donc, afin de faire 20v dans la plage de 5v, un diviseur de tension 4: 1 est utilisé ici (comme 20v/4=5v). Nous pourrions donc implémenter cela en utilisant simplement deux résistances, mais dans notre cas, j'ai ajouté un pot entre deux résistances fixes afin que nous puissions ajuster manuellement la précision en tournant le pot. La résolution de l'ADC est de 10 bits, c'est-à-dire l'adc représentera le 0v à 5v sous la forme de 0 à 1023 nombres décimaux ou de 00h à 3FFh. ('h' signifie nombres hexadécimaux). La référence est définie sur 5v en externe via la broche Aref.

Donc la tension mesurée = (lecture adc) x (Vref=5v) x (facteur diviseur de résistance c'est-à-dire 4 dans ce cas) / (lecture max adc c'est-à-dire 1023 pour 10bit adc).

Supposons que nous obtenions une lecture adc de 512. Ensuite, la tension mesurée sera -

(512 x 5 x 4) / 1023 = 10v

Calcul de mesure de courant:

L'ACS714 donnera une sortie stable de 2,5 V à la broche de sortie lorsqu'aucun courant ne passera d'IP+ vers IP-. 2.5v + (0.185 x 3)v = 3.055v à sa broche.

La formule de mesure actuelle est donc la suivante -

Courant mesuré=(((lecture adc)*(Vref=5v)/1023)-2,5)/0,185.

par exemple, la lecture adc est de 700, alors le courant mesuré sera - (((700 x 5)/1023) - 2,5)/0,185 = 4,98A.

Étape 6: Le logiciel

Le logiciel est codé dans Winavr à l'aide de GCC. J'ai modularisé le code, c'est-à-dire que j'ai créé différentes bibliothèques comme la bibliothèque adc, la bibliothèque lcd, etc. La bibliothèque adc contient les commandes nécessaires à la configuration et à l'interaction avec l'adc. La bibliothèque lcd contient tous les fonctions pour piloter l'écran LCD 16x2. Vous pouvez également utiliser lcd_updated _library.c car la séquence de démarrage de l'écran LCD est modifiée dans cette bibliothèque. Si vous souhaitez utiliser la bibliothèque mise à jour, renommez-la avec lcd.c

Le fichier main.c contient les fonctions principales. Le protocole de charge pour li-ion est écrit ici. Veuillez définir le ref_volt dans le main.c en mesurant la sortie de U2 (7805) avec un multimètre précis pour obtenir des lectures précises comme les calculs s'appuient dessus.

Vous pouvez simplement graver le fichier.hex directement dans votre mega8 pour contourner le problème.

Pour ceux qui souhaitent écrire un autre protocole de charge, j'ai mis suffisamment de commentaires pour que même un enfant puisse comprendre ce qui se passe pour chaque exécution de ligne. Il vous suffit d'écrire votre propre protocole pour différents types de batterie. Si vous utilisez Li- ion de tension différente, vous devez uniquement modifier les paramètres. (Bien que cela ne soit pas testé pour d'autres types de batteries li-ion/autres.

Je recommande fortement de ne pas construire ce circuit, s'il s'agit de votre premier projet ou si vous débutez en microcontrôleur/électronique de puissance.

J'ai téléchargé chaque fichier dans son format d'origine, à l'exception du Makefile, car il crée un problème d'ouverture. Je l'ai téléchargé au format.txt. Copiez simplement le contenu et collez-le dans un nouveau Makefile et créez l'ensemble du projet. Voilà….vous êtes prêt à graver le fichier hexadécimal.

Étape 7: Assez de théorie…..fabriquons-la

Assez de théorie…..fabriquons-le
Assez de théorie…..fabriquons-le
Assez de théorie…..fabriquons-le
Assez de théorie…..fabriquons-le
Assez de théorie…..fabriquons-le
Assez de théorie…..fabriquons-le
Assez de théorie…..fabriquons-le
Assez de théorie…..fabriquons-le

Voici les photos de mon prototype de la maquette à la finalisation en pcb. Veuillez parcourir les notes des photos pour en savoir plus. Les photos sont disposées en série du début à la fin.

Étape 8: Avant le premier cycle de charge……. Étalonnez !!

Avant de charger une batterie à l'aide du chargeur, vous devez d'abord l'étalonner. Sinon, il ne pourra pas charger la batterie/la surcharger.

Il existe deux types d'étalonnage 1) Étalonnage de tension. 2) Calibrage actuel. Les étapes sont les suivantes pour calibrer.

Au début, mesurez la tension de sortie de l'U2. Ensuite, définissez-la dans le main.c comme ref_volt. Mine était de 5.01. Modifiez-la selon votre mesure. C'est la principale étape nécessaire pour l'étalonnage de la tension et du courant. Pour l'étalonnage du courant, rien autre chose est nécessaire. Tout sera pris en charge par le logiciel lui-même

Maintenant que vous avez gravé le fichier hexadécimal après avoir défini la tension de référence dans main.c, coupez l'alimentation de l'unité.

. Maintenant, mesurez la tension de la batterie que vous allez charger à l'aide d'un multimètre et connectez la batterie à l'appareil.

Appuyez maintenant sur le bouton S1 et maintenez-le enfoncé et alimentez le circuit pendant que le bouton est enfoncé. Après un court délai d'environ 1 s, relâchez le bouton S1. Notez que l'appareil n'entrera pas en mode d'étalonnage si vous alimentez d'abord le circuit, puis appuyez sur S1.

Vous pouvez maintenant voir sur l'écran que le circuit est entré en mode d'étalonnage. Un "mode cal" s'affichera sur l'écran LCD avec la tension de la batterie. Faites maintenant correspondre la tension de la batterie indiquée sur l'écran LCD avec la lecture de votre multimètre en tournant le pot. Une fois que vous avez terminé, appuyez à nouveau sur l'interrupteur S1, maintenez-le enfoncé pendant environ une seconde et relâchez-le. Vous serez hors du mode d'étalonnage. Réinitialisez à nouveau le chargeur en l'éteignant puis en l'allumant.

Le processus ci-dessus peut également être effectué sans batterie connectée. Vous devez connecter une source d'alimentation externe à la borne de sortie (J2). Après être entré en mode d'étalonnage, étalonnez à l'aide du pot. Mais cette fois, déconnectez d'abord la source d'alimentation externe, puis appuyez sur S1 pour sortir du mode d'étalonnage. Il faut d'abord déconnecter la source d'alimentation externe pour éviter tout type de dysfonctionnement des unités.

Étape 9: Allumer après l'étalonnage….. maintenant vous êtes prêt à basculer

Allumage après l'étalonnage… vous êtes maintenant prêt à basculer
Allumage après l'étalonnage… vous êtes maintenant prêt à basculer
Allumage après l'étalonnage… vous êtes maintenant prêt à basculer
Allumage après l'étalonnage… vous êtes maintenant prêt à basculer
Allumage après l'étalonnage… vous êtes maintenant prêt à basculer
Allumage après l'étalonnage… vous êtes maintenant prêt à basculer

Maintenant que l'étalonnage est terminé, vous pouvez maintenant commencer le processus de charge. Fixez d'abord la batterie, puis allumez l'appareil. Le repos sera pris en charge par le chargeur.

Mon circuit fonctionne à 100% et est testé. Mais si vous remarquez quelque chose, faites-le moi savoir. N'hésitez pas à nous contacter pour toute question.

Bonne construction.

Rgds//Sharanya

Conseillé: