Les cartes Arduino ont changé le visage de la technologie DIY. Des projets simples comme la création de feux de signalisation Arduino miniatures sont parfaits pour enseigner aux débutants les bases de l'électronique et de la programmation.
Les Arduinos sont parfaits pour les projets domestiques et peuvent être utilisés en déplacement en y attachant une batterie. Le problème est que même la batterie la plus grosse sera épuisée rapidement, même par une petite carte Arduino.
Si vous voulez vraiment que votre Arduino fonctionne sur le long terme, vous devrez apporter quelques ajustements et modifications.
Il existe plusieurs bibliothèques de logiciels disponibles qui peuvent modifier la consommation d'énergie de votre Arduino. En envoyant l'Arduino en veille profonde pendant une durée définie, l'énergie peut être économisée entre les opérations. Ceci est particulièrement utile pour les microcontrôleurs prenant des lectures de capteurs dans des zones éloignées telles que les stations météorologiques, ou détectant des sous-circuits pour des appareils plus grands.
La bibliothèque Low-Power de Rocketscream, utilisateur de Github, est un exemple de bibliothèque facile à utiliser, idéale pour économiser de l'énergie. Considérez le code suivant, basé sur certains des exemples de code de la bibliothèque :
#include "LowPower.h"
// setup() vos capteurs/LEDs ici
boucle vide ()
{
// Cette ligne suivante éteint l'arduino pendant 8 secondes
// ADC signifie conversion analogique-numérique et BOD pour la détection de la baisse de tension
//les deux sont éteints pendant la période de veille pour économiser de l'énergie
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
// Après chaque sommeil, vous pouvez demander à l'Arduino d'effectuer ses tâches ici - par exemple, prendre une lecture de température et l'envoyer à un serveur.
}
Ce code est un bon début. Non seulement il réduit la consommation d'énergie en utilisant des méthodes déjà intégrées, mais il désactive la conversion analogique-numérique potentiellement coûteuse (qui peut consommer de l'énergie même lorsqu'il est inactif) et la détection de baisse de tension qui arrête le code d'exécution Arduino lorsque sa tension d'entrée devient trop faible.
Il s'agit d'une mesure simple mais efficace pour commencer à réduire la puissance consommée par votre Arduino. Nous pouvons cependant aller beaucoup plus loin que cela !
Le langage de programmation Arduino a son propre sommeil intégré fonctionnalité conçue pour aider à économiser de l'énergie. La fonction de sommeil, utilisée en tandem avec interruption clauses, permettent à l'Arduino de se réveiller à nouveau.
Arduino possède des broches spécifiques conçues pour interrompre le cycle de veille, et vous pouvez y accéder à l'aide de la fonction de configuration :
#define interruptPin 2
void setup()
{
//la broche d'interruption DOIT être la broche Arduino 2 ou 3 sur Uno
//définit la broche en mode pull up
pinMode(interruptionPin, INPUT_PULLUP);
}
Maintenant que cela est configuré comme une broche d'interruption, vous pouvez en toute sécurité mettre votre Arduino en veille. Une manière simplifiée de procéder consiste à créer deux petites fonctions :
annuler sendToSleep()
{
// activer le sommeil - notez que cela déclenche le sommeil, pas le démarre !
sleep_enable();
// attachez l'interruption, spécifiez la broche, la méthode à appeler sur l'interruption,
//et les conditions d'interruption, dans ce cas lorsque la broche est tirée vers le bas.
attachInterrupt(interruptPin, wakeUpAgain, LOW);
// activer réellement le mode veille
sleep_cpu();
// le code continue à partir d'ici après l'interruption
Serial.println("Je viens de me réveiller.");
}
annuler wakeUpAgain()
{
//arrêter le mode veille
sleep_disable();
// efface l'interruption
detachInterrupt(interrputPin);
}
Le code ci-dessus est un moyen simplifié d'envoyer votre Arduino en mode veille, et vous pouvez le réactiver en connectant la broche 2 au GND épingler. Lorsque l'Arduino Uno est en mode veille, il réduit d'environ 11 mA la consommation électrique totale, et si vous utilisez un Pro Mini à la place, vous pouvez vous attendre à passer de 25 mA d'utilisation normale à seulement 0,57 mA.
Les interruptions sont un excellent moyen de réduire votre consommation d'énergie, et le blog The Kurks propose des articles détaillés à leur sujet, qui aident à démystifier les interruptions pour les débutants.
La vitesse d'horloge de votre Arduino détermine le nombre d'opérations qu'il peut effectuer par seconde. La plupart des cartes Arduino fonctionnent sur un processeur de 8 ou 16 MHz, bien que certaines des cartes dérivées telles que la Teensy 3.6 offrent des vitesses de traitement allant jusqu'à 180 MHz ! C'est pourquoi de nombreux hackers bricoleurs aiment utiliser les cartes Teensy plutôt qu'Arduino dans leurs projets de bricolage.
Toute cette puissance de traitement a un coût énergétique et, pour de nombreux cas d'utilisation, l'utilisation de la vitesse d'horloge complète est excessive. C'est là que la régulation de la vitesse d'horloge via un logiciel peut faire la différence.
Ce serait négligent de ma part de ne pas vous avertir, la modification de la vitesse d'horloge peut entraîner des problèmes de chargeur de démarrage et peut vous laisser avec un Arduino sur lequel vous ne pouvez pas télécharger de croquis, si cela n'est pas fait correctement.
Si vous voulez essayer de changer la vitesse de votre horloge, tout en créant des outils dans l'IDE Arduino pour vous permettre de changer la fréquence du processeur à la volée, le guide détaillé de Pieter P peut vous aider à démarrer.
L'Arduino Uno est la carte la plus populaire pour les débutants, et la plupart des kits Arduino fournissent un modèle officiel ou clone. Son facteur de forme plus grand et ses micropuces remplaçables à chaud le rendent parfait pour l'expérimentation, et sa large capacité pour les tensions d'entrée ainsi que la conversion de tension intégrée pour les composants 3,3 V le rendent adapté à presque tous les usages.
Toutes ces fonctionnalités ne sont pas bon marché en termes de consommation d'énergie. Dans cet esprit, il existe un certain nombre de choses que vous pouvez faire pour modifier physiquement un Arduino Uno afin d'économiser de l'énergie.
Le régulateur de tension de l'Arduino Uno provoque la plus grande consommation d'énergie sur la carte. Ce n'est pas particulièrement surprenant, car il doit chuter jusqu'à 7 V en toute sécurité de l'alimentation d'entrée à la carte elle-même. Certains ont essayé de contourner ce problème en remplaçant le régulateur par d'autres plus efficaces, mais cela ne résout pas vraiment le problème.
Patrick Fenner de l'ingénierie DefProc a proposé une excellente solution dans son article de blog sur les stratégies d'économie d'énergie Uno. En remplaçant entièrement le régulateur de tension par un convertisseur abaisseur DC-DC, il a réussi à réduire de moitié la consommation électrique du microcontrôleur.
Un moyen infaillible d'utiliser uniquement la puissance nécessaire à votre projet consiste à concevoir un microcontrôleur selon vos propres spécifications. Dans le passé, nous avons montré comment vous pouvez construire votre propre Arduino pour une fraction du coût d'une carte officielle.
En plus d'avoir beaucoup plus de contrôle sur la taille et la portée de votre circuit, cela peut réduire la consommation d'énergie à 15,15 mA en veille et aussi peu que 0,36 mA en mode veille. Ces chiffres sont extraits du post incroyablement détaillé de Nick Gammon sur son forum.
Cet article couvre de nombreux autres aspects de l'économie d'énergie d'Arduino et constitue une ressource fantastique à consulter lorsque vous essayez de gagner un peu plus de temps sur une alimentation mobile.
Lorsque vous travaillez sur vos premiers projets Arduino pour débutants, la consommation d'énergie n'est probablement pas trop préoccupante.
Au fur et à mesure que vos idées deviennent plus grandes et nécessitent plus de réflexion, cela vaut la peine d'apprendre des moyens de rationaliser votre configuration. Entre vous assurer d'obtenir la bonne carte Arduino et la configurer pour en tirer le meilleur parti, vous pouvez faire beaucoup pour créer des appareils vraiment uniques et utiles. Bonne chance et continuez à bricoler !