#Test_RPi5GPIO_I.py #By: D@CC on 2024AJan21 #Purpose: Control GPIO pins using RPi.GPIO code on a RPi 5B #Source 1: https://ephotocaption.com/a/213/213.html #Issue: 1 2024AJan19 buffer any GPIO.HIGH using GPIO.unity() # buffer any GPIO.LOW using GPIO.unity() import time #import unity #import RPi.GPIO as GPIO #Deprecated # v import RPi5GPIO as GPIO # -> import RPi5GPIO as GPIO GPIO.setmode(GPIO.BCM) #Initialize # ^ RPiLibrary="RPi5GPIO" def unity(func): #by D@CC on 2024AJan18 #Purpose: return "constants" such as GPIO.BCM, GPIO.HIGH etc #strReturn=func() try: strReturn=func() except: strReturn=True finally: pass #try end if strReturn=="GPIO.HIGH": strReturn=func(parm=True) if strReturn=="GPIO.LOW" : strReturn=func(parm=False) return strReturn #/unity.py def ctrl_LED_using_Button(Lout,PBin): #Purpose: function that uses PBin to control Lout #By: D@CC on 2024AJan18 # Issue 1 invoke GPIO.HIGH through GPIO.unity() etc #if GPIO.input(PBin)== GPIO.HIGH: #original code #if GPIO.input(PBin)== GPIO.unity(GPIO.HIGH): #if GPIO.input(PBin)== unity(GPIO.HIGH): #if GPIO.input(PBin)== unity(GPIO.LOW): #works with RPi5GPIO #if GPIO.input(PBin)== GPIO.LOW: #works with RPi.GPIO RPiLibrary="RPi5GPIO" if GPIO.input(PBin)== unity(GPIO.HIGH): #works with RPi.GPIO GPIO.output(Lout,False) #on else : GPIO.output(Lout,True) #off #if end #def end # 12 LEDblink=12 # This led will blink every .5 seconds # 18 21 # on Cytron Maker pHAT,beeper is LEDout=26 LEDout = 18 ; PINin=21 #use PINin to control LEDout GPIO.setup(PINin, GPIO.IN) # monitored every second GPIO.setup(LEDout,GPIO.OUT) progName="Test_RPi5GPIO_I.py" print("(even on a RPi 5B) progName:",progName) print(" using import RPi5GPIO instead of import RPi.GPIO") print("Ignore RuntimeWarning: This channel is already in use.") print("LED is blinking on GPIO",LEDblink) print("LED on GPIO",LEDout) print(" will turn ON when pressing Button on GPIO",PINin) print("Hit ^C to exit") GPIO.setup(LEDblink,GPIO.OUT) while True: #blinks a LED at .5 sec intervals GPIO.output(LEDblink,True) #turn LED on time.sleep(.5) GPIO.output(LEDblink,False) #turn LED off time.sleep(.5) ctrl_LED_using_Button(LEDout,PINin) #use PINin to control LEDout #/Test_RPi5GPIO_I.py saved as .txt