/*
ATTiny85 core:
https://github.com/SpenceKonde/ATTinyCore/blob/v2.0.0-devThis-is-the-head-submit-PRs-against-this/avr/extras/Pinout_x5.jpg
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/INT0, INPUT GPIO2/A1, I2C-SCL
8, VCC
*/
#define GREEN_LED_GPIO 3 //pin2, PB(3), GPIO3
#define BLUE_LED_GPIO 1 //pin6, PB(1), GPIO1
// #define RAIN_REED 4 //pin3, PB4, GPIO4
#define RAIN_REED 2 //pin3, PB4, GPIO4
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 500;
void setup() {
pinMode(GREEN_LED_GPIO, OUTPUT);
pinMode(BLUE_LED_GPIO, OUTPUT);
pinMode(RAIN_REED, INPUT_PULLUP);
attachInterrupt(0, buttonInterupt, FALLING); //INT0 here
}
void loop() {
}
void buttonInterupt() {
// Ignorer les rebonds du bouton
if ((millis() - lastDebounceTime) > debounceDelay) {
// Inversion de l'état de la LED
digitalWrite(BLUE_LED_GPIO, !digitalRead(BLUE_LED_GPIO));
lastDebounceTime = millis();
}
}