Table des matières:
- Étape 1: Modification du projet de base
- Étape 2: V0.2 du Conseil
- Étape 3: Planche à pain: Contrôleur d'affichage de caractères I2c étendu
- Étape 4: Planche à pain: Affichage des caractères avec I2c intégré
- Étape 5: Réalisation
- Étape 6: Extensibilité
- Étape 7: Liste des pièces
- Étape 8: Carte: Réinitialiser, bouton Gnd E pour sélectionner la batterie
- Étape 9: Carte: broches I2c et d'alimentation
- Étape 10: Carte: thermistance et mesure de la tension
- Étape 11: Carte: Résistance à la mesure de la tension
- Étape 12: Étape de soudure: toutes les broches
- Étape 13: Étapes de soudage: résistance de tirage et thermistance
- Étape 14: Étapes de soudage: MOSFET, résistance à la vérification de la tension
- Étape 15: Coder
- Étape 16: Résultat après assemblage
- Étape 17: Sélectionnez d'abord le type de batterie
- Étape 18: commencer à décharger
- Étape 19: Exceptions: batterie retirée
- Étape 20: Exceptions: Alerte de température
- Étape 21: Testez l'intensité
- Étape 22: Paquet
Vidéo: Vérificateur de batterie avec sélection de température et de batterie : 23 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Testeur de capacité de batterie.
Avec cet appareil, vous pouvez vérifier la capacité de la batterie 18650, acide et autre (la plus grande batterie que j'ai testée est une batterie acide 6v 4, 2A). Le résultat du test est en milliampères/heures.
Je crée cet appareil car j'en ai besoin pour vérifier la capacité de la fausse batterie en porcelaine.
Pour plus de sécurité, j'ai ajouté, à l'aide d'une thermistance, la température de la résistance de puissance et de la batterie pour éviter de trop chauffer, avec cette astuce, je peux vérifier la batterie acide 6v sans allumer la carte (dans le cycle de décharge, passez un certain temps à la résistance de puissance chaude et l'appareil attend 20 secondes pour réduire la température).
Je sélectionne le petit micro contrôleur atmega328 compatible nano (eBay).
Tout le code est ici.
Étape 1: Modification du projet de base
J'ai volé l'idée au projet d'OpenGreenEnergy, et je refais le tableau pour ajouter des fonctionnalités, donc maintenant deviens plus général.
v0.1
- Le VCC d'Arduino est maintenant calculé automatiquement;
- Ajout d'une variable pour changer le réglage de manière plus confortable.
- Ajout du pourcentage de décharge
- Ajout de la température de la batterie et de la résistance de puissance
v0.2
- Possibilité supplémentaire de sélection de batterie
- Création d'un prototype de carte (regardez le schéma), avec l'écran, le bouton et le haut-parleur à l'extérieur de la carte car à l'avenir, j'aimerais créer un package.
- Ajout de la gestion de la limite de température à la résistance de puissance afin que je puisse bloquer le processus lorsque la température dépasse 70° (au-dessus de cette température de déclassement de la résistance de puissance).
v0.3
Bientôt une planche de ce service
Étape 2: V0.2 du Conseil
Dans la v0.2 pour supporter différents types de batteries, j'ai créé une structure qui doit être remplie avec le nom de la batterie, la tension min et la tension max (j'ai besoin d'aide pour la remplir:P).
// Structure du type de batterie struct BatteryType { char name[10]; flotteur maxVolt; flotteur minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Acid", 6.50, 5.91 } };
Maintenant, j'utilise un ensemble de résistances de 10k pour le diviseur de tension afin de lire la double température de l'entrée analogique. Si vous souhaitez modifier le support de tension, vous devez modifier cette valeur (expliquez mieux ensuite):
// Résistance à la tension de la batterie
#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Résistance de tension de la résistance de puissance #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0
Si vous n'utilisez pas de thermistance, définissez ceci sur false:
#define USING_BATTERY_TERMISTOR vrai
#define USING_RESISTO_TERMISTOR vrai
Si vous utilisez un affichage i2c différent, vous devez réécrire cette méthode:
tirage nul (vide)
Dans le projet, vous pouvez trouver des schémas, des photos et plus encore.
Étape 3: Planche à pain: Contrôleur d'affichage de caractères I2c étendu
J'ai utilisé un affichage de caractères génériques, j'ai construit le contrôleur i2c et je l'ai utilisé avec ma bibliothèque personnalisée.
Mais si vous le souhaitez, vous pouvez prendre un contrôleur i2c normal (moins de 1€) avec une librairie standard, le code reste le même. Tout le code d'affichage est en fonction de dessin, vous pouvez donc le modifier sans changer d'autres choses.
Mieux expliqué ici.
Étape 4: Planche à pain: Affichage des caractères avec I2c intégré
Le même schéma sans i2c contrôlé étendu.
Étape 5: Réalisation
Pour mesurer la tension, nous utilisons le principe d'un diviseur de tension (plus d'informations sur Wikipedia).
En termes simples, ce code est le facteur multiplicateur pour mesurer la tension de la batterie.
batResValueGnd / (batResValueVolt + batResValueGnd)
J'ai inséré les 2 résistances de batResValueVolt et batResValueGnd valeur après et avant le fil de lecture analogique.
batVolt = (échantillon1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;
sample1 est la moyenne des lectures analogiques;
tension de référence vcc Arduino;
1023.0 est la valeur maximale de référence de la lecture analogique (la lecture analogique Arduino passe de 0 à 1023).
Pour obtenir l'ampérage, vous avez besoin d'une tension après et avant la résistance de puissance.
Lorsque vous avez la mesure de la tension après et avant la résistance de puissance, vous pouvez calculer le milliampère qui consomme la batterie.
Le MOSFET est utilisé pour démarrer et arrêter la décharge de la batterie de la résistance de puissance.
Par sécurité, j'ai inséré 2 thermistances pour surveiller la température de la batterie et de la résistance de puissance.
Étape 6: Extensibilité
J'essaie de créer un prototype de carte extensible, mais pour l'instant je n'utilise qu'un jeu minimal de broches (à l'avenir j'ajouterai des leds et d'autres boutons).
Si vous voulez une tension de support supérieure à 10v, vous devez modifier la valeur de la résistance de la batterie et la résistance selon la formule
(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)
dans le schéma Tension d'alimentation de la résistance
Tension d'alimentation de la résistance GND 1/2 / (Tension d'alimentation de la résistance 2/2 + Tension d'alimentation de la résistance GND 1/2)
Le rose est en panne
Étape 7: Liste des pièces
Propriétés du type de pièce de montant
- 2 Bornier à vis de 5 mm pour montage sur carte PCB Bornier à vis 8A 250V LW SZUS (eBay)
- 1 clone Arduino Pro Mini (compatible Nano) (eBay)
- 1 canal P FET de base IRF744N ou IRLZ44N (eBay)
- 11 10kΩ Résistance de résistance 10kΩ (eBay)
- 2 Capteur de température (Thermistance) 10kΩ; (eBay)
- * Forme générique d'en-tête masculine ♂ (mâle); (eBay)
- * Formulaire générique d'en-tête féminin ♀ (femelle); (eBay)
- 1 carte PerfBoard Carte prototype 24x18 (eBay)
-
10R, 10W
résistance de puissance (eBay) Je trouve la mienne dans une vieille télé crt.
Étape 8: Carte: Réinitialiser, bouton Gnd E pour sélectionner la batterie
Dans la partie gauche des broches, vous pouvez trouver le bouton et le buzzer.
J'utilise 3 boutons:
- un pour changer le type de batterie;
- un pour commencer à décharger la batterie sélectionnée;
- puis j'utilise la broche de réinitialisation pour tout redémarrer et activer une nouvelle opération.
Toutes les broches sont déjà tirées vers le bas, vous devez donc l'activer avec VCC
La réinitialisation est activée avec GND
Le rose est en panne
Étape 9: Carte: broches I2c et d'alimentation
A la base, vous pouvez voir le VCC, GND et SDA, SCL pour l'affichage (et d'autres à l'avenir).
Le rose est en panne
Étape 10: Carte: thermistance et mesure de la tension
À droite, il y a des broches pour lire la valeur de la thermistance, une pour la thermistance de la résistance de puissance et l'autre pour la thermistance de la batterie (broches mâles/femelles à attacher).
Ensuite, il existe des broches analogiques qui mesurent la tension différentielle après et avant la résistance de puissance.
Le rose est en panne
Étape 11: Carte: Résistance à la mesure de la tension
Ici vous pouvez voir la résistance qui permet de supporter une tension double que la broche arduino (10v), vous devez changer cela pour supporter plus de tension.
Le rose est en panne
Étape 12: Étape de soudure: toutes les broches
Pour la première fois, j'ajoute toutes les broches et je les soude.
Étape 13: Étapes de soudage: résistance de tirage et thermistance
Ensuite, j'ajoute tous les résistances pulldown (pour les boutons) et le connecteur i2c (affichage).
Ensuite, la thermistance de la résistance de puissance C'est très important, la batterie acide devient trop chaude.
Étape 14: Étapes de soudage: MOSFET, résistance à la vérification de la tension
Maintenant, nous devons insérer le mosfet pour activer la décharge et la résistance pour vérifier la tension.
2 résistance pour la tension avant la résistance de puissance 2 résistance pour la tension après la résistance de puissance, lorsque vous avez cette tension, vous pouvez calculer la consommation en milliampères.
Étape 15: Coder
Le microcontrôleur est compatible nano, vous devez donc configurer votre IDE pour télécharger un Arduino Nano.
Pour travailler, vous devez télécharger le code depuis mon référentiel github.
Ensuite, vous devez ajouter 3 bibliothèques:
- Wire: bibliothèque arduino standard pour le protocole i2c;
- Termistor Library d'ici pas la bibliothèque que vous pouvez trouver dans arduino IDE, mais ma version;
- LiquidCrystal_i2c: si vous utilisez la version étendue/personnalisée de l'adaptateur i2c (ma version), vous devez télécharger la bibliothèque à partir d'ici, si vous utilisez le composant standard, vous pouvez prendre la bibliothèque d'arduino IDE, mais tout est mieux expliqué ici.
Je ne teste pas les LCD avec une bibliothèque standard, il me semble qu'ils sont interchangeables, mais s'il y a un problème, n'hésitez pas à me contacter.
Étape 16: Résultat après assemblage
La planche de base est sur la photo, alors on peut aller la tester.
Étape 17: Sélectionnez d'abord le type de batterie
Comme décrit, nous avons une carte de valeur avec configuration de batterie.
// Structure du type de batteriestruct BatteryType { char name[10]; flotteur maxVolt; flotteur minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Acid", 6.50, 5.91 } };
Étape 18: commencer à décharger
Cliquez sur le deuxième bouton pour lancer la décharge.
Sur l'écran, vous pouvez voir le milliampère actuel, le milliampère/heures, le pourcentage de décharge, la tension de la batterie et la température de la résistance de puissance et de la batterie.
Étape 19: Exceptions: batterie retirée
Si vous supprimez le processus de décharge de la batterie en pause, lorsque vous le réinsérez, il redémarre à la dernière valeur.
Étape 20: Exceptions: Alerte de température
Si la température (batterie ou résistance de puissance) devient trop élevée, le processus de décharge se met en pause.
#define BATTERY_MAX_TEMP 50
#define RESISTANCE_MAX_TEMP 69 // 70° sur fiche technique (Résistances de déclassement) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20
La valeur par défaut pour la température maximale est de 50° pour la batterie et 69 pour la résistance de puissance.
Comme vous pouvez le voir dans le commentaire, la résistance de puissance est affectée par le déclassement lorsqu'elle dépasse 70°.
Si l'alerte est déclenchée, commencez TEMP_TO_REMOVE_ON_MAX_TEMP secondes de pause pour mettre une température basse.
Étape 21: Testez l'intensité
Le résultat du test d'ampérage est bon.
Étape 22: Paquet
Avec un composant séparé, le résultat de l'emballage est simple à réaliser.
Dans une boîte doit faire un rectangle pour l'écran LCD, les trous pour les boutons poussoirs, et un barillet femelle externe pour fournir la tension de l'alimentation.
Le bouton poussoir n'a pas besoin de résistance pull-down car je l'ajoute déjà à bord.
Quand j'ai un peu de temps, je le crée et le poste.
Conseillé:
Menu d'affichage Arduino OLED avec option de sélection : 8 étapes
Menu d'affichage Arduino OLED avec option de sélection : dans ce didacticiel, nous apprendrons à créer un menu avec une option de sélection à l'aide de l'affichage OLED et de Visuino.Regardez la vidéo
Vérificateur de température de l'air de poche bricolage: 6 étapes
Vérificateur de température de l'air de poche bricolage : nous utiliserons un écran Nokia 5110, un module de température numérique et un Arduino Uno pour le faire. Une prise 9V avec des fils, pas un barillet, est également nécessaire, ainsi qu'un interrupteur et des fils. Un fer à souder peut être nécessaire, mais vous pouvez aussi simplement torsader les fils
Jour de la semaine, calendrier, heure, humidité/température avec économiseur de batterie : 10 étapes (avec photos)
Jour de la semaine, calendrier, heure, humidité/température avec économiseur de batterie : le mode d'économie d'énergie ici est ce qui distingue cet Instructable des autres exemples montrant le jour de la semaine, le mois, le jour du mois, l'heure, l'humidité et la température. C'est cette capacité qui permet à ce projet d'être exécuté à partir d'une batterie, sans t
Sélection d'un moteur pas à pas et d'un pilote pour un projet d'écran d'ombrage automatisé Arduino : 12 étapes (avec images)
Sélection d'un moteur pas à pas et d'un pilote pour un projet d'écran d'ombrage automatisé Arduino : dans ce Instructable, je vais passer en revue les étapes que j'ai suivies pour sélectionner un moteur pas à pas et un pilote pour un prototype de projet d'écran d'ombrage automatisé. Les écrans d'ombrage sont les modèles à manivelle Coolaroo populaires et bon marché, et je voulais remplacer t
Boîte de sélection AV : 4 étapes (avec photos)
Boîte de sélection AV : j'ai un lecteur DVD, une vidéo VHS et une caméra vidéo mini-DV. J'enregistre le mini-DV sur mon PC, j'enregistre également du VHS en numérique de la même manière. Parfois, je prends l'audio-vidéo du DVD vers le PC. J'avais l'habitude d'alimenter la vidéo composite sur le graphique de mon PC