User manual
85
motif = [
("Chenillard vers la gauche",1), ("Clignoter",2), ("Chenillard vers la droite",3)
]
Les textes des trois motifs disponibles sont définis sous forme de liste spécifique. Chacun des trois éléments
de la liste consiste en quelques valeurs, chacun comprenant le texte affiché et la valeur numérique qui doit
être retournée plus tard lors du choix du bouton radio.
root = Tk(); root.title("LED")
L'initialisation du widget root correspond encore une fois au programme précédent, ne différant qu'au
niveau du contenu de la boîte de dialogue.
v = IntVar(); v.set(1)
Les variables qui sont utilisées dans la boîte de dialogue Tk, doivent être déclarées avant la première
utilisation, contrairement aux variables normales de Python. Ces deux lignes déclarent une variable
v comme
un nombre entier et la spécifie comme
1 au début.
def LedAllumée():
e = v.get()
Une fonction qui s'appelle LedAllumée() comme dans le dernier exemple est maintenant définie à nouveau.
Mais cette fois, elle n'allume pas qu'une seule LED mais démarre un motif de LED. La deuxième fonction
LedÉteinte() du dernier exemple n'est pas nécessaire ici. La première ligne de la nouvelle fonction lit
l'entrée de l'utilisateur à partir de la variable tk
v et écrit la valeur dans la variable Python e. Comme la
valeur arrive exactement dans la variable
v, apprenez davantage ci-dessous avec l'explication des boutons
radio.
Selon le choix de l'utilisateur, trois différentes boucles de programme peuvent être lancées :
if e == 1:
for i in range(w):
for j in range(4):
GPIO.output(LED[j], True); time.sleep(t)
GPIO.output(LED[j], False)
Dans le premier cas, une boucle est exécutée cinq fois. Elle allume successivement chacune des quatre LED,
les laisse allumées pendant 0,2 seconde puis les éteint. Les cinq répétitions et le temps de clignotement de
0,2 seconde sont définis par les variables
w et t au début du programme.
elif e == 2:
for i in range(w):
for j in range(4):
GPIO.output(LED[j], True)
time.sleep(t)
for j in range(4):
GPIO.output(LED[j], False)
time.sleep(t)