Alimentation et puissance
Dans toutes les applications où l’autonomie énergétique est requise, il faut intéresser de près à la puissance absorbée par le microcontrôleur et ses périphériques.
Consommation
Arduino UNO
| Alimentation | Mode éveillé | Mode veille |
|---|---|---|
| USB | 38mA | 20mA |
| Broche 5V | 25mA | 6mA |
| JACK ou broche VIN (7V) | 30mA | 11mA |
Sources : https://riton-duino.blogspot.com/2018/12/consommation-dune-carte-arduino.html
Modes de veille
La plupart des microcontrôleurs possèdent plusieurs modes de fonctionnements permettant de désactiver certaines fonctionnalités (timers, CAN…), réduisant ainsi leur consommation énergétique.
Arduino UNO
Bibliothèque : LowPower par LowPowerLab
#include <LowPower.h>
Pour une veille d’une durée programmée
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
Pour une veille permanente
On doit alors réveiller l’Arduino par une broche numérique, en utilisant une interruption.
// Broche de réveil
const int wakeUpPin = 2;
void wakeUp()
{
// Just a handler for the pin interrupt.
Serial.println("Bonjour");
}
void sleep() {
// Permet à la broche de réveil de déclencher une interruption lorsqu'elle est basse/haute.
attachInterrupt(0, wakeUp, LOW/*HIGH*/);
// Mise en veille (avec les modules ADC et BOD désactivés)
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
// Désactive l'interruption de la broche de réveil.
detachInterrupt(0);
}
Sources : https://circuitdigest.com/microcontroller-projects/arduino-sleep-modes-and-how-to-use-them-to-reduce-power-consumption
https://lowpowerlab.com/
