• Post category:Nano
  • Post comments:0 commentaire
  • Post last modified: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