/*
ATTiny85 core:
Physical, port (PBx), Interupt (PCINTx),...
1, PB5, PCINT5, Reset GPIO5/A0
2, PB3, PCINT3, INPUT GPIO3/A3 --> Green
3, PB4, PCINT4, INPUT GPIO4/A2 --> Red
4, GND
5, PB0, PCINT0, OUTPUT GPIO0, I2C-SDA
6, PB1, PCINT1, OUTPUT GPIO1 --> Blue
7, PB2, PCINT2, INPUT GPIO2/A1, I2C-SCL
8, VCC
*/
// Constantes pour les broches
const byte boutonPin = 2; // Broche pour le bouton (PB2)
const byte ledPin = 0; // Broche pour la LED (PB0)
unsigned long dernierDebounceTime = 0;
unsigned long debounceDelay = 500;
void setup() {
pinMode(boutonPin, INPUT_PULLUP); // Le bouton est connecté à la masse lorsqu'il est enfoncé
pinMode(ledPin, OUTPUT);
// Configuration de l'interruption pour la broche du bouton
attachInterrupt(0, boutonInterruption, FALLING); // Utilisation directe du numéro de la broche INT0???
}
void loop() {
// Le programme principal peut continuer à s'exécuter ici//
}
void boutonInterruption() {
// Cette fonction est appelée lorsque le bouton est enfoncé
// Ignorer les rebonds du bouton
if ((millis() - dernierDebounceTime) > debounceDelay) {
// Inversion de l'état de la LED
digitalWrite(ledPin, !digitalRead(ledPin));
dernierDebounceTime = millis();
}
}