Il enchaîne avec la deuxième partie et le circuit de feux de circulation proprement dit. Voyons les différents signaux de feux de circulation sur Wikipédia. Nous voulons les recréer en appuyant sur un bouton.
(Source : Wikipedia)
Dans un premier temps, nous construisons le circuit :
Nous avons donc les étapes suivantes :
- aucun bouton appuyé – rouge permanent (jaune et vert éteints)
- Le bouton est appuyé – le rouge et le jaune s’allument (le vert s’éteint), la durée : 3 secondes
- Passage au vert (rouge et jaune éteints), durée : 15 secondes
- Passage au jaune (rouge et vert éteints), durée : 3 secondes
- Retour à l’étape 1.
Il faut maintenant le convertir en code. Par exemple, j’ai créé un Script pour cela :
sudo nano ampel_script2.py
Cette fois, au lieu des numéros de pin, j’utilise les numéros GPIO.
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 |
#Bibliotheken einbinden import RPi.GPIO as GPIO import time #GPIO Modus (BOARD / BCM) GPIO.setmode(GPIO.BCM) #Warnungen ausschalten GPIO.setwarnings(False) #GPIO Pin Belegung ROT = 02 GELB = 14 GRUEN = 15 TASTER = 07 #Richtung der GPIO-Pins festlegen (IN / OUT) GPIO.setup(ROT, GPIO.OUT) #rot GPIO.setup(GELB, GPIO.OUT) #gelb GPIO.setup(GRUEN, GPIO.OUT) #gruen GPIO.setup(TASTER, GPIO.IN) #Taster #Umschaltung definieren def umschalten(): #Phase 2 GPIO.output(ROT, True) GPIO.output(GELB, True) GPIO.output(GRUEN, False) time.sleep(2) #Phase 3 GPIO.output(GRUEN, True) GPIO.output(ROT, False) GPIO.output(GELB, False) time.sleep(15) #Phase 4 GPIO.output(GELB, True) GPIO.output(GRUEN, False) time.sleep(3) #zurueck zu Phase 1 GPIO.output(ROT, True) GPIO.output(GELB, False) #Endlosschleife while True: #Phase 1 GPIO.output(ROT, True) GPIO.output(GELB, False) GPIO.output(GRUEN, False) #Status des Tasters einlesen tasterStatus = GPIO.input(TASTER) if (tasterStatus): umschalten() |
Il est appelé à nouveau avec
sudo python ampel_script2.py
La LED rouge s’allume et une pression sur le bouton appelle la fonction et modifie les feux de circulation. L’exécution du Script se termine par CTRL + C.
Les Fonctions peuvent être modifiées et étendues. Voici une image de mon circuit.