Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Solutions d'alimentation optimisées pour projets Arduino

Composants et fournitures

ComposantQuantitéNotes
Shield Adafruit PowerBoost Charger1
Batterie LiPo rechargeable (générique)13,7 - 4,2 V
Arduino UNO1

À propos de ce projet

Les projets à base de cartes Arduino n'ont généralement pas besoin de gestion d'alimentation sophistiquée : on connecte une source, la carte démarre, fait son travail, s'arrête quand l'alimentation est coupée. Contrairement au Raspberry Pi, pas de risque de corrompre une carte SD.

Mais pour certaines applications, on veut surveiller l'état d'alimentation et réagir de façon gérée, au lieu de simplement s'éteindre brutalement.

Exemple : un capteur distant qui enregistre la température. Si la batterie s'épuise sans surveillance, les logs s'arrêtent net. Impossible de savoir si c'est la batterie, un bug logiciel ou une panne matérielle.

Pour un système portable, savoir la charge restante et quand recharger est précieux.

Ce projet présente plusieurs approches de gestion d'alimentation Arduino : circuits, logiciels et descriptions, du simple interrupteur marche/arrêt jusqu'à un système d'enregistrement de données incluant l'état de la batterie, destiné à la surveillance d'environnement sans surveillance.

Vous pouvez choisir les sous-systèmes qui vous intéressent. Je les décris par complexité croissante, mais vous pouvez commenter les parties inutiles.

Le projet s'inspire des projets LiPoPi et Pi Power, offrant des fonctionnalités similaires pour Raspberry Pi.

Vue d'ensemble

Le système fournit plusieurs fonctions :

Le fil conducteur est la combinaison du PowerBoost Adafruit et de l'Arduino. Chaque fonction ajoute deux fonctions personnalisées, arduinoPowerSetup() et arduinoPowerMonitor(), aux setup() et loop() standards.

Shield Adafruit PowerBoost

Le système utilise une batterie LiPo rechargeable et le shield Adafruit PowerBoost Charger, qui charge la batterie et booste sa sortie à 5V.

Adafruit propose trois versions : deux cartes breakout et un shield Arduino. La plupart du travail ici utilise le shield, mais j'évoquerai les breakout plus loin.

Lisez cette page pour configurer le PowerBoost Shield. Pour préparer le kit :

Circuit Marche/Arrêt par bouton poussoir

Ce circuit de base utilise l'appui sur un bouton poussoir momentané pour allumer le système et, une fois en marche, pour l'éteindre – comme un téléphone.

Sur système éteint, appui long → PowerBoost s'active → alimente l'Arduino → démarrage et exécution du programme.

Nouvel appui (court) → l'Arduino désactive le PowerBoost → plus d'alimentation → extinction.

Détails sur cette page. Schéma :

Solutions d alimentation optimisées pour projets Arduino

Note : Ce circuit n'est pas obligatoire pour le reste du projet. Vous pouvez utiliser l'interrupteur optionnel du PowerBoost. La différence : l'interrupteur basique coupe net sans possibilité d'enregistrer un message de log.

Surveiller la tension de la batterie

L'Arduino a 6 convertisseurs analogique-numérique (ADC) sur les pins A0-A5, facilitant la mesure de tension. Le PowerBoost shield permet de connecter la tension batterie (Vbat) à l'un d'eux en reliant les pastilles de soudure appropriées (voir page PowerBoost Shield). Ici, je l'ai relié à A0.

La tension LiPo varie de ~4,25 V (charge complète) à ~3,7 V (déchargée). L'ADC convertit 0-5 V en entier 0-1023, lu par analogRead().

Extrait de code pour la lecture et l'estimation de l'état de charge :

float maxVoltage = 4.25;
float minVoltage = 3.75;
arduinoPowerVoltage = float(analogRead(arduinoPowerVoltagePin)) / 1024.0 * 5.0;
float fractionalVoltage = (arduinoPowerVoltage - minVoltage) / (maxVoltage - minVoltage);

La décharge LiPo n'est pas parfaitement linéaire, mais assez proche pour estimer l'autonomie restante via la tension fractionnaire.

Pour communiquer cela à l'utilisateur, on pourrait utiliser un afficheur alphanumérique, ou logger sur carte SD (section suivante). Mais c'est souvent excessif.

Approche simple : une LED RGB changeant de couleur selon le niveau :

Ajoutez une LED RGB à anode commune et deux résistances 1 kΩ au circuit, et un peu de code dans arduinoPowerMonitor().

Solutions d alimentation optimisées pour projets Arduino

NOTE : En pratique, j'alimente mes LED sur le 3,3 V.

NOTE : Il peut y avoir une « oscillation » significative de la tension mesurée (raisons inconnues). Si la batterie est proche d'un seuil de changement de couleur, la LED peut clignoter entre deux états – agaçant. Solution rapide : placer un condensateur 0,1 µF entre A0 et GND.

Solutions d alimentation optimisées pour projets Arduino

Ce montage sur breadboard ne montre ni la batterie ni l'Arduino. Le sketch arduino_2_voltage_led implémente Marche/Arrêt et affichage LED. Le code met la broche verte ou rouge à LOW pour allumer, HIGH pour éteindre.

NOTE : Vous pouvez vérifier les tensions mesurées / déboguer en décommentant les appels Serial et en ouvrant le Moniteur Série dans l'IDE. Vous verrez la tension réelle et fractionnaire. Le premier appel est souvent erroné.

Journalisation de la tension batterie sur carte SD

L'indicateur LED convient aux systèmes portables où l'on veut juste savoir quand recharger.

Mais pour un système autonome surveillant des capteurs, on veut enregistrer la tension batterie avec les données capteurs pour analyser la consommation dans le temps.

J'utilise le shield Adafruit Data Logging qui enregistre en format CSV sur carte SD avec horodatage. Le guide Adafruit explique les bibliothèques SD et RTC – à comprendre avant cette partie.

Le circuit est inchangé (garder la LED pour retour immédiat, mais optionnel).

Comme on loggue sur la carte, il est important d'enregistrer un message d'arrêt pour distinguer arrêt volontaire / erreur système.

De plus, en surveillant la tension, on peut détecter quand elle passe sous un seuil minimal et éteindre proprement le système, en logguant un message juste avant.

Le sketch est dans arduino_3_voltage_logging. Il inclut des routines utilitaires pour générer un timestamp formaté, et un hack pour faire clignoter la LED rouge si on oublie la carte SD (ce qui m'arrive souvent).

La pile complète (Arduino UNO, Data Logging Shield, PowerBoost Shield, breadboard) ressemble à ceci :

Solutions d alimentation optimisées pour projets Arduino

Données de tension

Voici un graphique de la tension batterie sur ~20 heures, montrant la baisse progressive. La courbe n'est pas parfaitement linéaire, mais assez proche pour estimer l'énergie restante.

Solutions d alimentation optimisées pour projets Arduino

L'ajout du condensateur 0,1 µF entre A0 et GND aide vraiment. La ligne violette montre l'impact du condensateur vs l'original en bleu.

Solutions d alimentation optimisées pour projets Arduino

Journalisation de données environnementales sur carte SD

Pour finir, une extension : un moniteur environnemental autonome pour mon jardin – température, humidité du sol, etc.

L'Arduino sera dans une boîte étanche laissée sans surveillance. Outre la batterie, je veux vérifier qu'aucune humidité n'entre et qu'aucune température extrême n'endommage le système. Le capteur DHT22 (température/humidité) est bon marché et facile – voir le tutoriel Adafruit.

Dans mon code, j'utilise la pin digitale 5 au lieu de la 2, car la 2 sert pour l'interruption du bouton d'arrêt.

Le code est dans arduino_4_voltage_temp_humidity_logging. Une fois validé sur breadboard, je l'ai câblé sur un shield Proto Adafruit. Le DHT22 est volumineux mais pas cher. Regardez d'autres breakout boards (Adafruit, Sparkfun) pour des alternatives.

Économie d'énergie dans les projets Arduino

La prochaine étape de mon projet est de réduire la consommation et d'étendre l'autonomie.

Mon point de départ est l'excellent tutoriel Adafruit sur le Low Power Datalogging de Tony DiCola.

Code

GitHub (projet principal)

https://github.com/craic/arduino_power

GitHub (LiPoPi - inspiration)

https://github.com/NeonHorizon/lipopi

GitHub (Pi Power - inspiration)

https://github.com/craic/pi_power

Processus de fabrication

  1. Mesurer la dissipation de puissance dans les résistances : expérience pratique avec la loi de Joule
  2. Sources d'alimentation : courant alternatif et continu expliqués
  3. Technologie des Bulldozers : Conception, Fabrication et Innovations Futures
  4. Piles : de la pile de Volta aux cellules lithium modernes
  5. Construire un Spybot Arduino piloté par Bluetooth
  6. FlickMote : Télécommande IR à gestes pour maison connectée
  7. TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
  8. L'énergie éolienne : transformer le mouvement de l'air en électricité propre
  9. Impact des réductions de subventions sur l'industrie des batteries de puissance en Chine