mardi 6 février 2018

Chapitre 19 : GPIO Raspberry : utilisation bouton poussoir



Pour continuer l’utilisation de l’assembleur pour commander le GPIO, le programme suivant va simuler un feu tricolore. Son démarrage s’effectuera par appui sur un bouton poussoir. Pour le schéma électrique nous utiliserons le montage précédent avec une LED rouge reliée au pin 18 et nous ajoutons une LED orange reliée au pin 23 et une LED verte reliée au pin 25 (avec bien entendu une résistance de protection). Le bouton poussoir sera relié au pin 4 au travers d’une résistance de 10k. Les autres extrémités seront reliées au pin 3 (ground).
Dans le programme, les informations concernant ces N° de pins seront mises sous forme de constantes, ce qui permet de les modifier facilement. Ensuite le programme reprend l’ouverture du périphérique et son mappage en mémoire. Il reprend les routines de sélection d’allumage et d’extinction des pins. Nous avons rajouté une routine de lecture de l’état de chaque pin (etatPin) qui exploite l’information contenue dans les registres GPLEV0 du GPIO. Cette routine servira pour lire l’état du bouton poussoir. Nous avons aussi ajouté une routine pour gérer plusieurs temps d’attente en appelant la fonction système déjà vue sleepnano.
Les instructions du fonctionnement se retrouvent dans la routine traitement. Pour les 3 pins concernant les leds, nous leur attribuons la fonction de sortie (output) et pour le pin 4 lié au bouton poussoir la fonction entrée (input).
Puis dans une boucle, nous testons l’état du bouton poussoir que nous terminerons lorsque son état aura changé. Puis nous allumerons successivement les 3 led en laissant des temps d’allumage de 25, 5 et 30 secondes.
Ces allumages font partie d’une boucle sans fin. Il faudra donc arrêter le programme par un ctrl-C ce qui laissera une LED toujours allumée. Il serait donc utile d’ajouter un autre bouton poussoir pour arrêter proprement la boucle et terminer le programme.

Aucun commentaire:

Enregistrer un commentaire