Bonjour,
Je veux faire clignoter une led rouge 3 fois sans blocage. Je ne veux pas utiliser time.sleep. J'ai écrit 2 fonctions que j'appelle avec la fonction after(). Je suis capable de faire clignoter la led, mais je ne suis pas capable de le faire seulement 3 fois. Voici un extrait fonctionnel de mon code. J'aimerais que la fonction allumeRouge ne soit plus appelé après 3 fois. Je ne veux pas faire de Break, car j'ai d'autre code qui doit continuer a fonctionner. Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 from tkinter import * import RPi.GPIO as GPIO def allumeRouge():#Fonction sans bloquage time.sleep. GPIO.setmode(GPIO.BCM) GPIO.setup(16, GPIO.OUT) GPIO.output(16, GPIO.HIGH) fenetre.after(200, eteintRouge) #Attend 200 millisecondes et apelle la fonction eteintRouge(). def eteintRouge(): GPIO.setmode(GPIO.BCM) GPIO.setup(16, GPIO.OUT) GPIO.output(16, GPIO.LOW) value = compteur_clignottement_led.get()#Lit la valeur du compteur. print(value) if value < 4: compteur_clignottement_led.set(value +1)#Incrémente la valeur du compteur a chaque passe. fenetre.after(200, allumeRouge) if value == 3:#Si la valeur est a 3. compteur_clignottement_led.set(value=0)#Remet le compteur a 0. # creation de la fenettre principale. fenetre = Tk() label = Label(fenetre, text="Antenne RFID", font="Arial 20 bold") label.pack() # Titre de la fenettre principale. fenetre.title("Antenne") btn = Button(fenetre, text ="Cliquez ici!", command = allumeRouge) btn.pack() compteur_clignottement_led=IntVar(value=0) fenetre.mainloop()
Partager