Table des matières:

Vérificateur de batterie avec sélection de température et de batterie : 23 étapes (avec photos)
Vérificateur de batterie avec sélection de température et de batterie : 23 étapes (avec photos)

Vidéo: Vérificateur de batterie avec sélection de température et de batterie : 23 étapes (avec photos)

Vidéo: Vérificateur de batterie avec sélection de température et de batterie : 23 étapes (avec photos)
Vidéo: BATTERIE LiFePO4 mode d'emploi ! 2024, Novembre
Anonim
Image
Image
Modification du projet de base
Modification du projet de base

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

V0.2 du Conseil
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

Planche à pain: contrôleur d'affichage de caractères I2c étendu
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é

Planche à pain: affichage de caractères avec I2c intégré
Planche à pain: affichage de 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é

Extensibilité
Extensibilité
Extensibilité
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

Carte: Réinitialiser, bouton Gnd E pour sélectionner la batterie
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:

  1. un pour changer le type de batterie;
  2. un pour commencer à décharger la batterie sélectionnée;
  3. 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

Carte: I2c et broches d'alimentation
Carte: I2c et broches 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

Carte: thermistance et mesure de la tension
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

Carte: Résistance à la mesure de la tension
Carte: Résistance à la mesure de la tension
Carte: Résistance à la mesure de la tension
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

Étape de soudure: toutes les broches
Étape de soudure: toutes les broches
Étape de soudure: toutes les broches
É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

Étapes de soudage: résistance de tirage et thermistance
Étapes de soudage: résistance de tirage et thermistance
Étapes de soudage: résistance de tirage et thermistance
É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

Étapes de soudure: MOSFET, résistance à la tension de contrôle
Étapes de soudure: MOSFET, résistance à la tension de contrôle
Étapes de soudure: MOSFET, résistance à la tension de contrôle
Étapes de soudure: MOSFET, résistance à la tension de contrôle

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:

  1. Wire: bibliothèque arduino standard pour le protocole i2c;
  2. Termistor Library d'ici pas la bibliothèque que vous pouvez trouver dans arduino IDE, mais ma version;
  3. 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

Image
Image
Résultat après assemblage
Résultat après assemblage
Résultat après assemblage
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

Sélectionnez d'abord le type de batterie
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

Commencer la décharge
Commencer la décharge
Commencer la décharge
Commencer la décharge

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

Image
Image
Exceptions: Alerte de température
Exceptions: Alerte de température

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

Exceptions: Alerte de température
Exceptions: Alerte de température
Exceptions: alerte de température
Exceptions: alerte de température
Exceptions: Alerte de température
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é

Ampérage de test
Ampérage de test

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é: