Bonjour à tous,

je suis nouveau sur le forum et assez noob en programmation ... j'ai quelques bases qui me permettent de réaliser des programmes simples ou d'en modifier afin d'obtenir ce que je veux.

Je rencontre un problème lors dans la réalisation d'un chronomètre automatique qui se déclencherait automatiquement grâce à des capteurs HC-SR501.
Pour le chronomètre je suis parti de ce code-ci :

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
from tkinter import *
import tkinter.messagebox as tkMessageBox
import time
 
def Main():
    global root
 
    root = Tk()
    root.title("Sourcecodester")
    width = 600
    height = 200
    screen_width = root.winfo_screenwidth()
    screen_height = root.winfo_screenheight()
    x = (screen_width / 2) - (width / 2)
    y = (screen_height / 2) - (height / 2)
    root.geometry("%dx%d+%d+%d" % (width, height, x, y))
    Top = Frame(root, width=600)
    Top.pack(side=TOP)
    stopWatch = StopWatch(root)
    stopWatch.pack(side=TOP)
    Bottom = Frame(root, width=600)
    Bottom.pack(side=BOTTOM)
    Start =  Button(Bottom, text='Start', command=stopWatch.Start, width=10, height=2)
    Start.pack(side=LEFT)
    Stop = Button(Bottom, text='Stop', command=stopWatch.Stop, width=10, height=2)
    Stop.pack(side=LEFT)
    Reset = Button(Bottom, text='Reset', command=stopWatch.Reset, width=10, height=2)
    Reset.pack(side=LEFT)
    Exit = Button(Bottom, text='Exit', command=stopWatch.Exit, width=10, height=2)
    Exit.pack(side=LEFT)
    Title = Label(Top, text="Python: Simple Stopwatch For Beginners", font=("arial", 20), fg="white", bg="black")
    Title.pack(fill=X)
    root.config(bg="black")
    root.mainloop() 
 
 
class StopWatch(Frame):  
 
    def __init__(self, parent=None, **kw):        
        Frame.__init__(self, parent, kw)
        self.startTime = 0.0        
        self.nextTime = 0.0
        self.onRunning = 0
        self.timestr = StringVar()               
        self.MakeWidget()      
 
    def MakeWidget(self):                         
        timeText = Label(self, textvariable=self.timestr, font=("times new roman", 50), fg="green", bg="black")
        self.SetTime(self.nextTime)
        timeText.pack(fill=X, expand=NO, pady=2, padx=2)                      
 
    def Updater(self): 
        self.nextTime = time.time() - self.startTime
        self.SetTime(self.nextTime)
        self.timer = self.after(50, self.Updater)
 
    def SetTime(self, nextElap):
        minutes = int(nextElap/60)
        seconds = int(nextElap - minutes*60.0)
        miliSeconds = int((nextElap - minutes*60.0 - seconds)*100)                
        self.timestr.set('%02d:%02d:%02d' % (minutes, seconds, miliSeconds))
 
    def Start(self):                                                     
        if not self.onRunning:            
            self.startTime = time.time() - self.nextTime
            self.Updater()
            self.onRunning = 1        
 
    def Stop(self):                                    
        if self.onRunning:
            self.after_cancel(self.timer)            
            self.nextTime = time.time() - self.startTime    
            self.SetTime(self.nextTime)
            self.onRunning = 0
 
    def Exit(self):
        result = tkMessageBox.askquestion('Sourcecodester', 'Are you sure you want to exit?', icon='warning')
        if result == 'yes':
            root.destroy()
            exit()
 
    def Reset(self):                                  
        self.startTime = time.time()         
        self.nextTime = 0.0    
        self.SetTime(self.nextTime)
 
 
if __name__ == '__main__':
    Main()
que j'ai adapté pour qu'il corresponde à ce que je veux.

Sur un autre programme j'ai pu faire fonctionner mes capteurs, mais impossible de comprendre où et comment intégrer les capteurs dans ce code pour que l'un d'entre eux déclenche le chrono, et l'autre l'arrête.

le but étant d'avoir un capteur au début d'un parcours et l'autre à la fin afin d'obtenir le temps de parcours total.

Merci d'avance et bonne journée !