#include <avr/io.h>
#include <util/delay.h>
#define boutonPin1 PB0
#define ledPin1 PB2
#define boutonPin2 PB1
#define ledPin2 PB3
int etatBoutonPrecedent1 = LOW;
int etatBoutonActuel1 = LOW;
int etatLED1 = LOW;
int etatBoutonPrecedent2 = LOW;
int etatBoutonActuel2 = LOW;
int etatLED2 = LOW;
void setup() {
// Initialise les broches
pinMode(boutonPin1, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(boutonPin2, INPUT);
pinMode(ledPin2, OUTPUT);
}
void loop() {
// Gestion du premier bouton poussoir et de la première LED
etatBoutonActuel1 = digitalRead(boutonPin1);
if (etatBoutonActuel1 != etatBoutonPrecedent1) {
_delay_ms(50);
etatBoutonActuel1 = digitalRead(boutonPin1);
if (etatBoutonActuel1 == HIGH) {
etatLED1 = !etatLED1;
digitalWrite(ledPin1, etatLED1);
// Si la LED2 est allumée, l'éteindre
if (etatLED2 == HIGH) {
etatLED2 = LOW;
digitalWrite(ledPin2, etatLED2);
}
}
}
etatBoutonPrecedent1 = etatBoutonActuel1;
// Gestion du deuxième bouton poussoir et de la deuxième LED
etatBoutonActuel2 = digitalRead(boutonPin2);
if (etatBoutonActuel2 != etatBoutonPrecedent2) {
_delay_ms(50);
etatBoutonActuel2 = digitalRead(boutonPin2);
if (etatBoutonActuel2 == HIGH) {
etatLED2 = !etatLED2;
digitalWrite(ledPin2, etatLED2);
// Si la LED1 est allumée, l'éteindre
if (etatLED1 == HIGH) {
etatLED1 = LOW;
digitalWrite(ledPin1, etatLED1);
}
}
}
etatBoutonPrecedent2 = etatBoutonActuel2;
}