TP4 : Initiation algorithme Feux de circulation


Mise en situation
Le travail de ce TP se déroule en binôme.
Temps alloué : 2h
Logiciel utilisé : Flowcode V5
|
Référentiel
A2 Analyse système : Analyser et interpréter une information numérique
|
Pour effectuer des travaux sur la voirie, une entreprise de BTP doit disposer d’un système permettant le signalement des travaux et de pouvoir alterner la circulation ou la fermée. Le système dispose de deux feux tricolores, de chenillards clignotants et d’un affichage d’information programmable. On se propose d’étudier le programme gérant ce système.
Pour ces exercices nous allons utiliser le microcontrôleur
18F4550. A la fin de chaque exercice, appeler le professeur pour valider l’exécution. A la fin du TP, éditer tous les algorithmes que vous avez fait (un tirage par groupe)
Exercice 1
Nous allons d’abord réaliser le cas du clignotement d’une seule lampe.
Pour cela, réaliser l’algorithme suivant :

Vous aurez besoin d’une variable Led qui est un booléen. On connectera la led de sortie sur le bit 0 du port A du PIC. La led clignotera à l’infini toutes les 500ms.
Exercice 2
Souvent, pour éclaircir un algorithme ou lorsqu’une suite d’instructions est répétitive, on utilise des macros (souvent appelées fonctions).
Créer une macro
clignote qui prend en paramètre le temps de clignotement et qui fait clignoter une led sur le bit 0 du port A. Dans le main, exécuter cette macro.
Remarque : le résultat est le même que l’exercice 1.
Exercice 3
Ecrire une macro
feuxTricolore1 qui permet de passer soit du vert au rouge, soit du rouge au vert en un temps t. Vous utiliserez deux paramètres :
- passage(booléen) : passage rouge/vert ou vert/rouge
- Temps (int) : temps de maintient du feu orange en ms
La led rouge est sur le portA bit1, led orange sur le portA bit 2 et la led verte sur le port A bit 3.
Tester dans le main, dans une boucle infinie faisant passer dans les deux sens toutes les deux secondes.
Exercice 4
On veut maintenant ne faire passer les voitures que sur une voie. Il nous faut donc gérer deux feux tricolores. Quand un feu est vert, l’autre est rouge et réciproquement. Il faut aussi tenir compte du temps de passage des voitures avant de mettre un des feux à vert, il y aura un temps pour libérer la voie où les deux feux sont au rouge.
Créer une troisième macro
feuxTricolore2 qui gère le deuxième feu. On utilisera le port E avec les bits 1,2,3. Puis dans le main, tester le passage des deux feux tricolores. Faîtes d’abord un algorithme simple sur papier indiquant tous les passages.
Exercice 5
L’entreprise a à sa disposition un panneau lumineux où il est possible d’inscrire divers message. Lors de travaux, on veut pouvoir fermer une voie, s’il y a un accident, on veut pouvoir fermer les deux voies.
Rajouter une autre macro
message qui permet suivant la position du switch d’écrire « Circulation alternée » ou « Route fermée » sur l’écran LCD. Connecter le switch sur A4 et le LCDDsiplay sur le port C.
Exercice 6
Dans l’exercice 1, nous n’avions fait clignoter qu’une seule led. Maintenant, nous allons créer une macro chenillard pour faire un chenillard sur 8 leds sur le port D (LedArray).
Créer la macro et tester là dans le main. Comme nous ne connaissons pas le multi-tâche, nous ferons boucler le chenillard sur une boucle infinie dans la macro. Dès que l’on appellera la macro, la gestion des feux et de l’écran sera arrêtée.

