void loop() { if (digitalRead(Btvert) == LOW && EtatBtvert == 0) { EtatBtvert = 1; // Allume la LED digitalWrite(LED_PIN, 1); digitalWrite(LED_PINverte, 1); // Temporise 20 ms delay(200); // Eteint la LED digitalWrite(LED_PIN, 0); digitalWrite(LED_PINverte, 0); delay(200); } if (digitalRead(Btvert) == HIGH && EtatBtvert == 1 && Reveil == 0) { EtatBtvert = 0; delay(200); Going_To_Sleep(); } if (digitalRead(Btvert) == HIGH && EtatBtvert == 1 && Reveil == 1) { EtatBtvert = 0; Reveil = 0; delay(200); } }
void Going_To_Sleep() { sleep_enable(); attachInterrupt(digitalPinToInterrupt(Btvert), wakeUp, LOW); // Il existe cinq modes de veille différents par ordre d'économie d'énergie : // SLEEP_MODE_IDLE - le mode d'économie d'énergie le plus bas // SLEEP_MODE_ADC // SLEEP_MODE_PWR_SAVE // SLEEP_MODE_STANDBY // SLEEP_MODE_PWR_DOWN - le mode d'économie d'énergie le plus élevé set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_enable(); // Entrez maintenant en mode veille. sleep_mode(); }
void wakeUp() { // La première chose à faire est de désactiver le sommeil. sleep_disable();
// Réactiver les périphériques. power_all_enable(); detachInterrupt(digitalPinToInterrupt(Btvert)); Reveil = 1; }