Feux tricolores automatiques
Méthode : Montage

Code Arduino
1
//Déclaration contante(s)2
//Nommage des ports Leds3
const int ledVH=8;
4
const int ledOH=9;
5
const int ledRH=10;
6
const int ledVB=11;
7
const int ledOB=12;
8
const int ledRB=13;
9
//Nommage des délais10
const int tempsLong=6000;
11
const int tempsCourt=3000;
12
13
// Configuration de départ--------------------------------14
void setup()
15
{16
//Déclaration des sorties digitales17
pinMode(ledVB, OUTPUT);
18
pinMode(ledOB, OUTPUT);
19
pinMode(ledVH, OUTPUT);
20
pinMode(ledOH, OUTPUT);
21
pinMode(ledRH, OUTPUT);
22
pinMode(ledRB, OUTPUT);
23
}
24
//Exécution de la boucle----------------------------------25
void loop()
26
{27
digitalWrite(ledVB, 1);
28
digitalWrite(ledVH, 1);
29
delay(tempsLong);
30
digitalWrite(ledVB, 0);
31
digitalWrite(ledVH, 0);
32
33
digitalWrite(ledOB, 1);
34
digitalWrite(ledOH, 1);
35
delay(tempsCourt);
36
digitalWrite(ledOB, 0);
37
digitalWrite(ledOH, 0);
38
39
digitalWrite(ledRB, 1);
40
digitalWrite(ledRH, 1);
41
delay(tempsLong);
42
digitalWrite(ledRH, 0);
43
digitalWrite(ledRB, 0);
44
}
Code Python
1
# Péparation utilisation Python/Arduino2
from pyfirmata import *
3
from time import *
4
carte = Arduino('COM3')
5
# itérateur : éviter trop de flux série6
it = util.Iterator(carte)
7
it.start()
8
9
# Contantes10
# Nommage des ports Leds11
PinledVH = 8
12
PinledOH = 9
13
PinledRH = 10
14
PinledVB =11
15
PinledOB=12
16
PinledRB=13
17
# Nommage des délais18
tempsLong = 6
19
tempsCourt = 3
20
21
# Configuration de départ-------- setup22
LedVH = carte.digital[PinledVH]
23
LedVB = carte.digital[PinledVB]
24
LedOH = carte.digital[PinledOH]
25
LedOB = carte.digital[PinledOB]
26
LedRH = carte.digital[PinledRH]
27
LedRB = carte.digital[PinledRB]
28
29
# Création de la boucle-----------loop30
while True:
31
LedVB.write(1)
32
LedVH.write(1)
33
sleep(tempsLong)
34
LedVB.write(0)
35
LedVH.write(0)
36
37
LedOB.write(1)
38
LedOH.write(1)
39
sleep(tempsCourt)
40
LedOB.write(0)
41
LedOH.write(0)
42
43
LedRB.write(1)
44
LedRH.write(1)
45
sleep(tempsLong)
46
LedRB.write(0)
47
LedRH.write(0)
Complément : Code Arduino commenté
1
//Déclaration contante(s)2
//Nommage des ports Leds3
const int ledVH=8;
4
const int ledOH=9;
5
const int ledRH=10;
6
const int ledVB=11;
7
const int ledOB=12;
8
const int ledRB=13;
9
10
//Nommage des délais11
const int tempsLong=6000;
12
const int tempsCourt=3000;
13
14
// Configuration de départ--------------------------------15
void setup()
16
{17
//Déclaration des sorties digitales18
pinMode(ledVB, OUTPUT);
19
pinMode(ledOB, OUTPUT);
20
pinMode(ledVH, OUTPUT);
21
pinMode(ledOH, OUTPUT);
22
pinMode(ledRH, OUTPUT);
23
pinMode(ledRB, OUTPUT);
24
}
25
26
//Exécution de la boucle----------------------------------27
void loop()
28
{29
digitalWrite(ledVB, 1);// feu vert Bas allumé
30
digitalWrite(ledVH, 1); // feu vert Haut allumé
31
delay(tempsLong); // Pause
32
digitalWrite(ledVB, 0);// feu vert Bas éteint
33
digitalWrite(ledVH, 0);// feu vert Haut éteint
34
35
digitalWrite(ledOB, 1);// feu orange Bas allumé
36
digitalWrite(ledOH, 1);// feu orange Haut allumé
37
delay(tempsCourt); // Pause
38
digitalWrite(ledOB, 0);// feu orange Bas éteint
39
digitalWrite(ledOH, 0);// feu orange Haut éteint :
40
41
digitalWrite(ledRB, 1);// feu rouge Bas allumé
42
digitalWrite(ledRH, 1);// feu rouge Haut allumé
43
delay(tempsLong); // Pause
44
digitalWrite(ledRH, 0);// feu rouge Haut éteint
45
digitalWrite(ledRB, 0);// feu rouge Bas éteint
46
}