Hi,
Does anyone able to share how to write a callback event on falling edge on an Input GPIO. I can't find any example on how the lib handle event instead of using pulling method to find falling event.
Please helps.
We found shipping rate(s) for your address
Hi,
Does anyone able to share how to write a callback event on falling edge on an Input GPIO. I can't find any example on how the lib handle event instead of using pulling method to find falling event.
Please helps.
Hello, you can refer to the following sample.
#!/usr/bin/env python
#
import gpiod
import time
# Define the chip and lines
chipname = "gpiochip0" #Please use gpiochip0 if using Raspberry pi 4/3 hardware
# chipname = "gpiochip4" #Please use gpiochip4 if using Raspberry pi 5 hardware
line_offset = 6
# Open the GPIO chip
chip = gpiod.Chip(chipname)
# Get the input line
line = chip.get_line(line_offset)
line.request(consumer="my_program", type=gpiod.LINE_REQ_EV_BOTH_EDGES)
def print_event(event):
if event.type == gpiod.LineEvent.RISING_EDGE:
print("---AC Power Loss OR Power Adapter Failure---")
print("Shutdown in 5 seconds")
time.sleep(5)
elif event.type == gpiod.LineEvent.FALLING_EDGE:
print("---AC Power OK, Power Adapter OK---")
try:
# Wait for events indefinitely
while True:
event = line.event_wait()
if event:
event = line.event_read()
print_event(event)
except KeyboardInterrupt:
print("Exiting...")
finally:
chip.close()