Note: Je voulais souligner que, même si ma réponse a été acceptée, le lecteur (vous) devrait vraiment lire la réponse de Anindo en premier si vous voulez vraiment économiser de l'énergie avec n'importe quelle carte Arduino. Une fois que vous avez abordé ces éléments dans votre conception, vous devriez lire ma réponse et vous demander comment configurer le MCU en mode basse consommation.
Cela dit, il existe plusieurs techniques permettant à un Arduino d'économiser de l'énergie. Je vais en énumérer quelques-unes, puis vous indiquer une page qui les explique plus en détail.
Bien que le contrôleur ne fasse rien d'important (par exemple, entre une lecture d'un capteur), vous pouvez le mettre dans l'un des modes de veille décrits ci-dessous, à l'aide de la commande set_sleep_mode (SLEEP_MODE_PWR_DOWN)
. À côté de chaque mode se trouve la consommation électrique approximative de chaque mode.
- SLEEP_MODE_IDLE: 15 mA
- SLEEP_MODE_ADC: 6,5 mA
- SLEEP_MODE_PWR_SAVE: 1,62 mA
- SLEEP_MODE_EXT_STANDBY: 1.62 mA
- SLEEP_MODE_STANDBY: 0.84 mA
- SLEEP_MODE_PWR_DOWN: 0.36 mA
Désactiver la détection de baisse de tension (le circuit qui éteint le contrôleur quand une basse tension est détectée).
Désactiver le convertisseur ADC (conversion analogique-numérique)
Utiliser l'horloge interne
Ensuite, lorsque vous mettez le contrôleur en veille, vous devez utiliser un ou plusieurs des mécanismes ci-dessous pour le réactiver et en faire quelque chose:
Ceci est un résumé que j'ai fait à partir de -
Cet article s’applique principalement à ATmega328P, mais la technique s’applique également à d’autres contrôleurs compatibles Arduino. Comme TheDoctor l'a bien dit, vous devrez vérifier le datashet pour vous assurer que votre contrôleur suporte une de ces techniques et comment le faire plus précisément.
De manière réaliste, le plus gros gaspillage d'énergie sur une carte Arduino est son régulateur de tension linéaire.
Tant que le microcontrôleur de la carte, les DEL, ou tout autre périphérique, consomment du courant, le régulateur linéaire gaspille une puissance égale à
difference between supply and board voltage
xcurrent drawn
.Une première solution consisterait donc à déconnecter le voyant d’indicateur d’alimentation situé sur la carte et à ne pas utiliser les autres voyants aussi loin que possible. Deuxièmement, alimentez la carte avec une tension aussi basse que possible et suffisante pour alimenter le régulateur intégré.
Sur les conceptions d'origine, les régulateurs de tension utilisés ne présentent pas un faible courant de repos. Cela signifie que même en l'absence de toute puissance absorbante au sein du conseil, le régulateur lui-même perd beaucoup d'énergie tout le temps qu'il est allumé.
Une solution simple consiste à remplacer le régulateur intégré par un régulateur linéaire à faible perte (LDO) conçu pour un courant de repos extrêmement faible. Les recherches paramétriques sur différents sites de fournisseurs donneront probablement des substituts.
Même avec les étapes ci-dessus, la carte Arduino ne fournit pas de mécanisme pour définir le LDO en mode faible consommation, si le LDO choisi le prend en charge. Les conceptions écoénergétiques utilisent généralement une broche «mode veille» sur les régulateurs de tension pour économiser un peu d’énergie - ce n’est pas une option ici.
Même avec tous les modes et astuces d'économie d'énergie appliqués au niveau du microcontrôleur, l'Arduino n'est tout simplement pas conçu pour être un périphérique ultra-basse consommation prêt à l'emploi. Après avoir expérimenté plusieurs applications non triviales, j'ai constaté que le meilleur réalisable est une économie d'énergie de l'ordre de 10% à 30% selon l'application, car le régulateur de tension et les DEL vont néanmoins consommer le reste.
la source
Vous pouvez lire la feuille de données de 200 pages, puis vous déranger avec des décalages de bits et des registres compliqués, mais je recommande cette bibliothèque: http://playground.arduino.cc/Code/Enerlib
De même, si vous utilisez un Uno ou n’importe lequel avec une puce USB vers série, vous pouvez le désactiver ou le supprimer.
la source
Une fois que votre projet fonctionne et que vous devez effectuer un déploiement dans un environnement "de production", vous pouvez choisir de remplacer l’Arduino par une meta simple, ATMega328, ou n’importe laquelle des puces de la famille ATTiny. Cela vous débarrassera de tous les dévoreurs d'énergie sur le tableau Arduino dont vous n'avez pas besoin. J'ai trouvé:
Quelques informations supplémentaires
Programmer une aventure avec Arduino
Fichiers ATTiny pour Arduino IDE
la source