Bonjour,
d'abord, je suis désolé de monopoliser le forum; j'ai vraiment essayé d'éviter, de polluer, mais je suis bloqué depuis 3j, et ne vois pas de levier de compréhension.
Physiquement, l'architecture est "on ne peut" plus simple, j'ai fait un fritzing pour l'illustration.
Il est composé de
- Arduino uno
- module DS3231 ZS-042 (CR2032 neuve primaire non rechargeable)
- une diode
Le code a été minimisé pour une lecture rapide:
// **** INCLUDES *****
#include "LowPower.h"
#include <Wire.h>
#include <DS3231.h> // GIT: https://github.com/jarzebski/Arduino-DS3231
// (c) 2014 by Korneliusz Jarzebski
DS3231 clock;
void wakeUp()
{
detachInterrupt(0);
}
void setup()
{
pinMode(13, OUTPUT);
// Setup Alarm
clock.begin();
clock.armAlarm1(false); clock.clearAlarm1();
clock.armAlarm2(false); clock.clearAlarm2();
// Set Alarm1 - Every 20s in each minute --- setAlarm1(Date or Day, Hour, Minute, Second, Mode, Armed = true)
clock.setAlarm1(0, 0, 0, 20, DS3231_MATCH_S, true);
}
void loop()
{
attachInterrupt(0, wakeUp, LOW);
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
digitalWrite(13, HIGH); delay(3000);digitalWrite(13, LOW);
}
L'alarme 1, semble bien écrite, un autre code m'a permis de m'en assurer.
Le soucis c'est que rien ne se passe.
Sans les interruptions, ie, avec des fonctions booléennes qui check l'heures pour savoir si l'alarm est ok, oui cela fonctionne; mais quand la board sera endormi, il sera difficile de la réveiller de cette manière...
Mais avec une interruption, je suis dans une impasse:
- Sont ce les librairies (fixation de l'alarm) ?
- Les problemes de registres que j'ai pu lire içi (FYI: Alarm interrupts with DS3234 and DS3231 real time clocks), avec les interruptions, mais peu compris,
- ...
Je ne voit pas ce que je n'ai pas compris, et/ou je dois creuser.
Philippe.