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



Personnaliser

Google Analytics

Google Analytics est un service utilisé sur notre site Web qui permet de suivre, de signaler le trafic et de mesurer la manière dont les utilisateurs interagissent avec le contenu de notre site Web afin de l’améliorer et de fournir de meilleurs services.

Facebook

Notre site Web vous permet d’aimer ou de partager son contenu sur le réseau social Facebook. En l'utilisant, vous acceptez les règles de confidentialité de Facebook: https://www.facebook.com/policy/cookies/

Twitter

Les tweets intégrés et les services de partage de Twitter sont utilisés sur notre site Web. En activant et utilisant ceux-ci, vous acceptez la politique de confidentialité de Twitter: https://help.twitter.com/fr/rules-and-policies/twitter-cookies