Ville Lumière

Bref Descriptif:

Leds reliés à un potentiomètre afin de moduler les lumières en fonction d’événements donnés.

Schéma:


Code: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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: