Feux tricolores automatiques

MéthodeMontage

Code Arduino

1
//Déclaration contante(s)
2
//Nommage des ports Leds
3
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élais
10
const int tempsLong=6000;
11
const int tempsCourt=3000;
12
13
// Configuration de départ--------------------------------
14
void setup()
15
{
16
  //Déclaration des sorties digitales
17
  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/Arduino
2
from pyfirmata import *
3
from time import *
4
carte = Arduino('COM3')
5
# itérateur : éviter trop de flux série
6
it = util.Iterator(carte)
7
it.start()
8
9
# Contantes
10
# Nommage des ports Leds
11
PinledVH = 8
12
PinledOH = 9
13
PinledRH = 10
14
PinledVB =11
15
PinledOB=12
16
PinledRB=13
17
# Nommage des délais
18
tempsLong = 6
19
tempsCourt = 3
20
21
# Configuration de départ-------- setup
22
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-----------loop
30
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émentCode Arduino commenté

1
//Déclaration contante(s)
2
//Nommage des ports Leds
3
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élais
11
const int tempsLong=6000;
12
const int tempsCourt=3000;
13
14
// Configuration de départ--------------------------------
15
void setup()
16
{
17
  //Déclaration des sorties digitales
18
  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
}