def Test_DownUp(): #by D@CC on 2023LDec17 #using gpiozero, time #aux: Cytron MAKER pHAT #Output: # watching GPIO: 21 # udud # ^C: vTrig: [1702871616.7199683, 4.637, -4.659, 5.146, -5.162] progName="Test_DownUp" print(progName) pin=21 #GPIO 21 is phys.pin 40 print("records switch triggers on GPIO:",pin) print("switch is a wire from phy pin 39 to 40") print("u means 'up +',d means 'down -'") print("Hit ^C to list their timed (sec.) vector.") global vTrig global isTrig isTrig=False #until initialized #gpiozero import etc must accompany the try/except from gpiozero import Button button=Button(pin,pull_up=True) button.when_pressed =nTrig button.when_released =pTrig iTrig() isTrig=True #enable trigger tracking if isTrig: print("watching GPIO:",pin) else: print("NOT watching GPIO:",pin) #if end try: while True: # tight loop to monitor the pin pass #while end except: print() #print("except") prntTrig(vTrig) #def end #while end #def end Test_Trig() def prntTrig(vTrig): cntTrig=len(vTrig) print("^C: cntTrig:",cntTrig) print("vTrig:",vTrig) return #def end prntTrig(vTrig) def iTrig(): # The following gpiozero import must accompany the try/except. #from gpiozero import LED, Button #from signal import pause (not needed) import time global vTrig #initialize the vector vTrig dT=time.time() vTrig=[dT] #vTrig.append() #if end return #def end def nTrig(): import time global vTrig global isTrig if isTrig: #if True: minusOne=-1 dT=(time.time()-vTrig[0])*1000 dT=minusOne*(int(dT)/1000.) vTrig.append(dT) print("d",end='') #def end nTrig def pTrig(): import time global vTrig global isTrig if isTrig: #if True : dT=(time.time()-vTrig[0])*1000 dT=int(dT)/1000. vTrig.append(dT) print("u",end='') #def end pTrig if __name__=="__main__": Test_DownUp() #if end #/Test_DownUp.py