# Compte rendue project feu tricolor **Partie 1 :** Nous avons commencé par réaliser le schéma donné par le prof qui est : ![](https://i.imgur.com/5vKIrAA.png) Ensuite j'ai écris le programme suivant : ``` import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) LED_RED = 11 LED_ORANGE = 13 LED_GREEN = 15 GPIO.setup(LED_RED, GPIO.OUT) GPIO.setup(LED_ORANGE, GPIO.OUT) GPIO.setup(LED_GREEN, GPIO.OUT) GPIO.output(LED_GREEN, GPIO.HIGH) time.sleep(10) GPIO.output(LED_GREEN, GPIO.LOW) GPIO.output(LED_ORANGE, GPIO.HIGH) time.sleep(2) GPIO.output(LED_ORANGE, GPIO.LOW) GPIO.output(LED_RED, GPIO.HIGH) time.sleep(8) GPIO.output(LED_RED, GPIO.LOW) ``` Je vais maintenant vous l'expliquez : * import permet de rajouter des modules au programme * GPIO.setmode(GPIO.BOARD) permet de configurer les ports GPIO en mode BOARD * GPIO.setwarning(False) permet de desactiver le mode warning * La ligne 7 à 10 sont des variables on nomme la variable puis on lui attribut une donnée * GPIO.setup() permet de configurer les ports GPIO * GPIO.output permet de donner une information au port GPIO * time.sleep() permet de faire une pause en seconde du temps entre paranthése Ceci conclue notre partie 1. **Partie 2** Nous avons commencé par réaliser le schéma donné par le prof qui est : ![](https://i.imgur.com/R7ZkZhJ.png) Ensuite j'ai écris ce programme : ``` import RPi.GPIO as GPIO from time import * GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) GREEN = 40 ORANGE = 38 RED = 36 pinBtn = 3 GPIO.setup(RED, GPIO.OUT) GPIO.setup(ORANGE, GPIO.OUT) GPIO.setup(GREEN, GPIO.OUT) GPIO.setup(pinBtn, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) def ALLUMAGE(): GPIO.output(ORANGE, GPIO.HIGH) time.sleep(2) GPIO.output(ORANGE, GPIO.LOW) GPIO.output(RED, GPIO.HIGH) time.sleep(8) GPIO.output(RED, GPIO.LOW) while 1==1: GPIO.output(GREEN, GPIO.HIGH) for i in range(100): if GPIO.input(pinBtn)==1: GPIO.output(GREEN, GPIO.LOW) break time.sleep(0.1) ALLUMAGE() ``` Je vais maintenant vous l'expliquez : * def suivi d'un nom permet de créer une fonction que l'on pourra rappeler plus tard * Le mot-clé while signifie tant que en anglais. Le corps de la boucle sera répété tant que la condition est vraie * L’instruction for est une instruction composée, c’est-à-dire une instruction dont l’en-tête se termine par deux-points :, suivie d’un bloc indenté qui constitue le corps de la boucle * L'instruction break, comme en C, interrompt la boucle for ou while la plus profonde Ce qui conclue le TP. Merci de m'avoir lu. Bruggeman Viktor