L'efficacité énergétique est cruciale pour de nombreuses applications embarquées, notamment celles fonctionnant sur batterie. Dans ce guide, nous expliquons comment mettre CodeCell en mode veille basse consommation et le réactiver à l'aide d'un capteur de proximité.
Pour les applications nécessitant une coupure complète de l'alimentation, vous pouvez ajouter un interrupteur en série avec la batterie. Cela vous permet d'allumer et d'éteindre manuellement l'appareil. Vous pouvez également mettre CodeCell en veille et le réactiver en cas d'activité des capteurs.
CodeCell présente un courant de veille moyen de 689 μA. Bien que ce soit supérieur aux exigences de certaines applications à très faible consommation, nous travaillons activement à optimiser la consommation d'énergie de la prochaine version, tout en conservant la même taille.
En raison de la petite taille et du nombre limité de broches de l'ESP32C3, nous n'avons pas pu inclure de broche d'interruption dédiée aux capteurs pour réveiller l'appareil. Bien qu'une véritable interruption matérielle soit idéale, vous pouvez toujours mettre CodeCell en veille en vérifiant régulièrement l'activité des capteurs avant de le réveiller.
Le code suivant illustre comment CodeCell entre en mode veille et se réveille lorsque la proximité est détectée.
#include <CodeCell.h>
CodeCell myCodeCell;
void setup() {
Serial.begin(115200);
delay(60); // Waking up from Sleep - add a small delay for Serial
if (myCodeCell.WakeUpCheck()) {
// Initialize light sensor
while (myCodeCell.Light_Init() == 1) {
delay(1);
myCodeCell.LightReset(); // If sensor not responding, reset it
}
delay(40);
myCodeCell.Light_Read(); // Read value from light sensor
if (myCodeCell.Light_ProximityRead() < 10) {
myCodeCell.Sleep(1); // Si la proximité n'est toujours pas détectée, retournez en mode veille et vérifiez à nouveau après 1 seconde
}
}
myCodeCell.Init(LIGHT); // Heure de réveil - Initialise tous les périphériques CodeCell
}
boucle vide() {
if (myCodeCell.Run(10)) { // Exécuter toutes les 10 Hz
si (myCodeCell.Light_ProximityRead() < 10) {
myCodeCell.Sleep(1); // Si la proximité n'est pas détectée, mettez-vous en veille et vérifiez à nouveau après 1 seconde
}
}
}
Comment ça marche :
Au démarrage, CodeCell initialise le capteur de lumière et vérifie la proximité.
Si aucune proximité n'est détectée, CodeCell entre en mode veille pendant 1 seconde.
Chaque seconde, CodeCell se réveille brièvement, vérifie la proximité et se rendort si nécessaire.
Si une proximité est détectée, CodeCell se réveille complètement et initialise tous les périphériques.
Grâce à cet exemple, vous pouvez réaliser d'importantes économies d'énergie avec CodeCell, le rendant ainsi plus adapté aux applications alimentées par batterie. Nous travaillons en permanence à l'optimisation de CodeCell pour les applications basse consommation. Restez à l'affût des mises à jour et des améliorations !
Soyez le premier informé des nouveaux projets et bénéficiez d'offres intéressantes !
© 2025 Microbots.