Raspberry - Feux Tricolores

led


Si vous débutez en GPIO Raspberry et/ou en Python, je vous invite à prendre connaissance des instructions sur la page:


Raspberry - Faire clignoter une led


feux_tricolor


Je vous propose de créer un feu tricolore (Vert, Orange et Rouge), et de le piloter en Python avec le GPIO du Raspberry.



Cablage du GPIO

BCM
BOARD
BCM
BOARD
Feux
  Vert 1  
GPIO16
36
  Vert 2  
GPIO23
16
Feux
  Orange 1  
GPIO20
38
  Orange 2  
GPIO24
18
Feux
  Rouge 1  
GPIO21
40
  Rouge 2  
GPIO25
22
Masse
Ground
6
Les phases d'allumages

Dans chaque phase, seulement deux feux sont allumés, les autres sont éteints. 
Phase 1
Phase 1
Phase 2
Phase 2
Phase 3
Phase 3
Phase 4
Phase 4
  Vert 1  
  Rouge 2  
  Orange 1  
  Rouge 2  
  Rouge 1  
  Vert 2  
  Rouge 1  
  Orange 2  
Allumé
Allumé
Allumé
Allumé
Allumé
Allumé
Allumé
Allumé
Tous les autres feux sont éteints ...

Schema du feu tricolore

schema-tricolor




  • 6 resistances de 220 Ohms
  • 2 leds vertes
  • 2 leds oranges
  • 2 leds rouges


Câblage des leds

tricolor-cablage



  • Toutes les Catodes des leds sont reliées à la masse -- Ground -- 6 
  • Anode Vert1 -- résistance de 220 Ohms -- GPIO16 -- 36
  • Anode Orange1 -- résistance de 220 Ohms  -- GPIO20 -- 38
  • Anode Rouge1 -- résistance de 220 Ohms  -- GPIO21 -- 40
  • Anode Vert2 -- résistance de 220 Ohms  -- GPIO23 -- 16
  • Anode Orange2 -- résistance de 220 Ohms  -- GPIO24 -- 18
  • Anode Rouge2 -- résistance de 220 Ohms  -- GPIO25 -- 22



Programme Python

code-tricolor

Créer un fichier Python et nommer le en tricolor.py

Copier le code ci-dessous dans le fichier tricolor.py



  • import RPi.GPIO as GPIO
  • import time

  • # Definition des variables
  • vert1 = 36  # Feu vert1
  • orange1 = 38  # Feu orange1
  • rouge1 = 40  # Feu rouge1
  • vert2 = 16  # Feu vert2
  • orange2 = 18  # Feu orange2
  • rouge2 = 22  # Feu rouge2
  • tempo = 3  # Temporisation

  • GPIO.setmode(GPIO.BOARD)

  • GPIO.setup(vert1, GPIO.OUT)
  • GPIO.setup(orange1, GPIO.OUT)
  • GPIO.setup(rouge1, GPIO.OUT)
  • GPIO.setup(vert2, GPIO.OUT)
  • GPIO.setup(orange2, GPIO.OUT)
  • GPIO.setup(rouge2, GPIO.OUT)

  • # extinction des leds
  • GPIO.output(36, 0)
  • GPIO.output(38, 0)
  • GPIO.output(40, 0)
  • GPIO.output(16, 0)
  • GPIO.output(18, 0)
  • GPIO.output(22, 0)

  • # Boucle
  • try:
  •     while 1:
  •         GPIO.output(36, 1)
  •         GPIO.output(38, 0)
  •         GPIO.output(40, 0)
  •         GPIO.output(16, 0)
  •         GPIO.output(18, 0)
  •         GPIO.output(22, 1)
  •         time.sleep(tempo)

  •         GPIO.output(36, 0)
  •         GPIO.output(38, 1)
  •         GPIO.output(40, 0)
  •         GPIO.output(16, 0)
  •         GPIO.output(18, 0)
  •         GPIO.output(22, 1)
  •         time.sleep(tempo)

  •         GPIO.output(36, 0)
  •         GPIO.output(38, 0)
  •         GPIO.output(40, 1)
  •         GPIO.output(16, 1)
  •         GPIO.output(18, 0)
  •         GPIO.output(22, 0)
  •         time.sleep(tempo)

  •         GPIO.output(36, 0)
  •         GPIO.output(38, 0)
  •         GPIO.output(40, 1)
  •         GPIO.output(16, 0)
  •         GPIO.output(18, 1)
  •         GPIO.output(22, 0)
  •         time.sleep(tempo)

  • except:
  •     GPIO.cleanup()


Pour exécuter le programme, faire Run / Run Module ou F5 dans la fenêtre tricolor.py

Le feu tricolore fonctionne ...


Télécharger le code Tricolor.py

Télécharger le code tricolor.py