Étape 6: Le firmware
Écrire le firmware était assez simple, comme j’ai pris un algorithme de charge extrêmement simple. L’idée était de charger la batterie pendant dix minutes, puis effectuer une mesure dans l’ensemble de la batterie. Si la tension de la batterie est supérieure à un seuil donné, arrêter la recharge, si ce n’est pas, continuez.
Pour être en mesure de mettre en place des horaires, j’ai mis en place une interruption de 10 ms et définir un indicateur de logiciel à chaque fois 100-ème que cette interruption se produit. Cela m’a donné une base de temps d’une seconde. Compter les secondes a été la prochaine chose que j’ai implémenté - j’ai écrit les définitions de macros pour pouvoir changer les délais d’attente frais et mesure facilement. Les temps de marche-arrêt finales étaient :
- Mesure: 5 secondes
- Frais : 600 secondes
Le code lui-même est très simple et explicite, je vais l’envoyer à quiconque le demande. C’est essentiellement un mélange de celles décrites dans les étapes précédentes, certaines macros, configurations de l’oscillateur et l’algorithme simple que j’ai décrit avant. Doit il y avoir des questions à ce sujet, n’hésitez pas à demander !
Outils logiciels utilisés étaient compilateur MPLAB X et XC8.