// Définition des broches pour les LEDs et le bouton
const int led1Pin = 2; // LED 1
const int led2Pin = 3; // LED 2
const int buttonPin = 4; // Bouton poussoir
const int led3Pin = 5; // LED 3
const int led4Pin = 6; // LED 4
const int potPin = A0; // Potentiomètre
// Variables pour le timing
unsigned long previousMillisLed1 = 0;
unsigned long previousMillisPot = 0;
const long intervalLed1 = 1000; // Intervalle de clignotement de la LED 1 (1 seconde)
const long intervalPot = 2000; // Intervalle d'impression du potentiomètre (2 secondes)
// Variable pour stocker la valeur du potentiomètre
int potValue = 0;
void setup() {
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
Serial.begin(9600); // Initialisation de la communication série
}
void loop() {
// Gestion du clignotement de la LED 1
unsigned long currentMillis = millis();
if (currentMillis - previousMillisLed1 >= intervalLed1) {
previousMillisLed1 = currentMillis;
digitalWrite(led1Pin, !digitalRead(led1Pin)); // Inverser l'état de la LED 1
}
// Lecture des données utilisateur sur le port série
if (Serial.available() > 0) {
int userValue = Serial.parseInt(); // Lire un entier depuis le port série
userValue = constrain(userValue, 0, 255); // Limiter la valeur entre 0 et 255
analogWrite(led2Pin, userValue); // Appliquer la valeur à la LED 2
}
// Gestion du bouton poussoir pour la LED 3
if (digitalRead(buttonPin) == HIGH) {
digitalWrite(led3Pin, HIGH); // Allumer la LED 3 si le bouton est enfoncé
} else {
digitalWrite(led3Pin, LOW); // Éteindre la LED 3 sinon
}
// Gestion de la lecture du potentiomètre et allumage de la LED 4
potValue = analogRead(potPin); // Lire la valeur du potentiomètre
if (potValue > 512) {
digitalWrite(led4Pin, HIGH); // Allumer la LED 4 si la valeur est supérieure à 512
} else {
digitalWrite(led4Pin, LOW); // Éteindre sinon
}
// Impression de la valeur du potentiomètre toutes les deux secondes
if (currentMillis - previousMillisPot >= intervalPot) {
previousMillisPot = currentMillis;
Serial.print("Valeur du potentiomètre: ");
Serial.println(potValue); // Afficher la valeur du potentiomètre sur le port série
}
}