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()