Réveil Arduino par interruption et envoie de donnée

Bonjour,

après plusieurs recherches sur internet je n’arrive toujours pas à comprendre pourquoi mon code ne marche pas.
Mon but est de mettre en veille mon Arduino et de le réveiller par une interruption dès lors que l’état du bouton change et envoyer cet état.

#include <avr/sleep.h>

const int buttonPin = 2;     
int lastButtonState = 0;
volatile int buttonState = 0;         

void setup() {
  Serial.begin(9600);

  pinMode(buttonPin, INPUT);

   ADCSRA = 0; 
}

void loop() {


attachInterrupt(0, pin_ISR, CHANGE);
set_sleep_mode (SLEEP_MODE_PWR_DOWN);  
sleep_enable();
sleep_cpu (); 
}

void pin_ISR() {
 
   sleep_disable();
  buttonState = digitalRead(buttonPin);

  if (buttonState != lastButtonState) {
    if (buttonState == HIGH) {

     
      
      Serial.println("L");

    }
    else {
      
      Serial.println("H");
      
      
    }
  }
  lastButtonState = buttonState;
}

Bonjour,

Dès que tu réveilles ton micro, tu le rendort aussitôt.

Mais avant de se rendormir n'a t'il pas le temps d'envoyer l'état du bouton ?

Peut être que non.
A 9600 bauds, il faut 1ms pour envoyer un caractère.
Il est peut être rendormi avant.
Mets une tempo au début de la loop