La console série n'affiche que des 1, aussi bien quand j'enfonce le bouton que quand je le relâche
Si j'enlève le condensateur de l'anti-rebond j'ai parfois des 0 qui apparaissent, mais pas toujours et apparemment quand il y a rebond du bouton (plusieurs lignes alors que je n'ai manipulé qu'une fois le bouton)
Que nenni, pas sommaire du tout. C'est le meilleur anti rebond, bien plus efficace que la version logicielle qui ne fait que cacher la poussière sous le tapis.
Si tu utilises un micro avr 8 bits (cartes UNO, nano, mega, leonardo, mni; micro) il existe une version beaucoup plus rapide de digitalRead.
Il faut télécharger le fichier digitaReadFast.h
Avec cette version il ne faut que 2 cycles horloge pour lire une entrée alors que le digitalRead "classique" en prend plus de 60.
Il semble exister plusieurs versions, certaines couvrent maintenant les micros ARM Samd21.
Bouton n’est pas le numéro de pin….c’est le numéro de l’interruption
const byte boutonPin = 3; // interruption 1, pin 3
void traite_int1()
{
Serial.println(digitalRead(boutonPin)); // pas génial d’imprimer dans une ISR mais à des fins de démo OK
}
void setup()
{
pinMode(boutonPin, INPUT); // en supposant le pullup externe correct
Serial.begin(115200);
attachInterrupt(digitalPinToInterrupt(boutonPin), traite_int1, CHANGE);
Serial.println("On démarre !");
}
void loop() {}