Bref Descriptif:
Leds reliés à un potentiomètre afin de moduler les lumières en fonction d’événements donnés.
Schéma:
Code:
int potentiometre_entree = A0; // selectionner le pin d'entrée du potentiometre
int lumiere_minuit = 12; // déclarer chaque sortie led pour chaque heure
int lumiere_22h = 11;
int lumiere_20h = 10;
int lumiere_18h = 9;
int lumiere_16h = 8;
int lumiere_14h = 7;
int lumiere_12h = 6;
int lumiere_10h = 5;
int lumiere_8h = 4;
int lumiere_6h = 3;
int lumiere_4h = 2;
int lumiere_2h = 13;
int potentiometre = 0; // variable pour stocker la valeur du potentiomètre
int horaire = 0; // variable pour stocker la valeur une fois arrondie en 24 heures
void setup() {
Serial.begin(9600);
pinMode(lumiere_minuit, OUTPUT);
pinMode(lumiere_22h, OUTPUT);
pinMode(lumiere_20h, OUTPUT);
pinMode(lumiere_18h, OUTPUT);
pinMode(lumiere_16h, OUTPUT);
pinMode(lumiere_14h, OUTPUT);
pinMode(lumiere_12h, OUTPUT);
pinMode(lumiere_10h, OUTPUT);
pinMode(lumiere_8h, OUTPUT);
pinMode(lumiere_6h, OUTPUT);
pinMode(lumiere_4h, OUTPUT);
pinMode(lumiere_2h, OUTPUT);
}
void loop() {
potentiometre = analogRead(potentiometre_entree);
// lit la valeur du potentiometre
//horaire = potentiometre/42;
// pour branchement 5V : la valeur est divisée sur une echelle de 24 heures (1024/24 = 42)
horaire = potentiometre/28;
// pour branchement 3.3V : la valeur est divisée sur une echelle de 24 heures (672/24 = 28)
switch(horaire) {
case 0:
case 1:
case 2:
digitalWrite(lumiere_2h, HIGH); //lumière de l'heure correspondante s'allume
digitalWrite(lumiere_4h, LOW); //lumières précédemment allumées s'éteignent
break;
case 3:
case 4:
digitalWrite(lumiere_4h, HIGH);
digitalWrite(lumiere_2h, LOW);
digitalWrite(lumiere_6h, LOW);
break;
case 5:
case 6:
digitalWrite(lumiere_6h, HIGH);
digitalWrite(lumiere_4h, LOW);
digitalWrite(lumiere_8h, LOW);
break;
case 7:
case 8:
digitalWrite(lumiere_8h, HIGH);
digitalWrite(lumiere_6h, LOW);
digitalWrite(lumiere_10h, LOW);
break;
case 9:
case 10:
digitalWrite(lumiere_10h, HIGH);
digitalWrite(lumiere_8h, LOW);
digitalWrite(lumiere_12h, LOW);
break;
case 11:
case 12:
digitalWrite(lumiere_12h, HIGH);
digitalWrite(lumiere_10h, LOW);
digitalWrite(lumiere_14h, LOW);
break;
case 13:
case 14:
digitalWrite(lumiere_14h, HIGH);
digitalWrite(lumiere_12h, LOW);
digitalWrite(lumiere_16h, LOW);
break;
case 15:
case 16:
digitalWrite(lumiere_16h, HIGH);
digitalWrite(lumiere_14h, LOW);
digitalWrite(lumiere_18h, LOW);
break;
case 17:
case 18:
digitalWrite(lumiere_18h, HIGH);
digitalWrite(lumiere_16h, LOW);
digitalWrite(lumiere_20h, LOW);
break;
case 19:
case 20:
digitalWrite(lumiere_20h, HIGH);
digitalWrite(lumiere_18h, LOW);
digitalWrite(lumiere_22h, LOW);
break;
case 21:
case 22:
digitalWrite(lumiere_22h, HIGH);
digitalWrite(lumiere_20h, LOW);
digitalWrite(lumiere_minuit, LOW);
break;
case 23:
case 24:
digitalWrite(lumiere_minuit, HIGH);
digitalWrite(lumiere_22h, LOW);
break;
//default :
//digitalWrite(lumiere_minuit, HIGH);
//digitalWrite(lumiere_12h, HIGH);
break;
}
delay(10);
Serial.println(horaire);
}
Final: