J'ai testé cette solution dans le cadre d'une application basique est elle fonctionne parfaitement
.
Voici le petit montage que j'ai réalisé pour tester cette solution, j'ai fait en sorte que mon exemple soit encore plus simple que celui de l'article :
schéma_auto_detect_shut_down.PNG 33,38 Ko
13 téléchargement(s)
Et voici le programme arduino qui va avec :
#include <EEPROM.h>
#include <rgb_lcd.h>
rgb_lcd ecranRGB;
int addr = 0;
int counter = 0;
void powerLoss()
{
EEPROM.write(addr, counter);
}
void setup()
{
attachInterrupt(digitalPinToInterrupt(2), powerLoss, FALLING);
ecranRGB.begin(16,2, 0x00);
ecranRGB.clear();
ecranRGB.print("start");
delay(1000);
ecranRGB.clear();
ecranRGB.print("data = ");
delay(500);
counter = EEPROM.read(addr);
ecranRGB.print(counter);
delay(1000);
}
void loop()
{
ecranRGB.clear();
counter += 1;
ecranRGB.print(counter);
delay(1000);
}
Procédure de test :
1. Réaliser le montage et brancher son alimentation 12V
2. Brancher votre carte arduino via USB et téléverser le programme
3. Débrancher l'USB
4. Vérifier que le compteur qui s'affiche sur l'écran fonctionne et couper l'alimentation 12V lorsque vous le souhaitez
5. Rebrancher l'alimentation, le compteur doit reprendre là où il se trouvait avant la coupure d'alimentation
J'espère que ça pourra aider certains d'entre nous, en tout cas pour moi ça change pas mal de choses 