• Post category:Nano
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :mars 12, 2022
  • Temps de lecture :4 min de lecture

Bouton pour activer et interrompre Mode Sleep Arduino *

 

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino Nano
  • 1 x Led
  • 1 x Résistance 220 ohms
  • 1 x Multimètre
  • 1 x Bouton
  • Fils de connexion
  • 1 x Breadboard
  • 1 x Alimentation 5V

 

 

Vidéo de démonstration :

 

Schéma de câblage :

 

Code :

#include <avr/sleep.h>
#include <avr/power.h>
#define LED_PIN (13)
#define LED_PINverte (4)
#define Btvert (2)
boolean EtatBtvert;
boolean Reveil;

void setup() {
pinMode(Btvert, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
pinMode(LED_PINverte, OUTPUT);
}

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;
}

 


 

Laisser un commentaire