LED 1
LED 2
Bouton poussoir 1
Bouton poussoir 2
Résistance 220Ω (x2)
Relais 5V
Transistor NPN (ex: 2N2222)
Alimentation 5V
Branchement:
LED 1: Broche 0 (avec résistance)
LED 2: Broche 1 (avec résistance)
Bouton poussoir 1: Broche 2 (avec résistance pull-up)
Bouton poussoir 2: Broche 3 (avec résistance pull-up)
Relais:
Broche VCC: Alimentation 5V
Broche GND: GND
Broche IN: Broche 4 (via transistor)
Transistor:
Emetteur: Broche 4
Base: Broche 5
Collecteur: GND
Code:
C++
#define LED1 5
#define LED2 6
#define BTN1 2
#define BTN2 3
#define RELAY 7
int led1State = LOW;
int led2State = LOW;
int btn1State = HIGH;
int btn2State = HIGH;
unsigned long startTime = 0;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(BTN1, INPUT_PULLUP);
pinMode(BTN2, INPUT_PULLUP);
pinMode(RELAY, OUTPUT);
digitalWrite(RELAY, LOW);
}
void loop() {
btn1State = digitalRead(BTN1);
btn2State = digitalRead(BTN2);
// Démarrage du programme par appui sur BTN1
if (btn1State == LOW && startTime == 0) {
startTime = millis();
led1State = HIGH;
}
// Clignotement de LED1 de plus en plus rapidement
if (startTime > 0 && millis() - startTime <= 60000) {
int delayTime = 60000 / (millis() - startTime);
digitalWrite(LED1, led1State);
led1State = !led1State;
delay(delayTime);
}
// Allumage de LED2 en clignotant lent
if (millis() - startTime > 60000) {
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
delay(500);
digitalWrite(LED2, LOW);
delay(500);
}
// Déclenchement du relais par appui sur BTN2
if (btn2State == LOW) {
digitalWrite(RELAY, HIGH);
delay(1000);
digitalWrite(RELAY, LOW);
}
}