Hello, hope you can help me with my issue. I have an Orange Pi Zero+ with an H5 processor. My requirement is to detect when a button is pressed, my input port is PA1 or pin 11, my pin for 3.3V is 17, I'm using the pyA20 library, have also setup this project: https://github.com/herzig/orangepi_PC_gpio_pyH5. My code is based on the read_button example (https://github.com/herzig/orangepi_PC_gpio_pyH5/blob/master/examples/read_button.py#L46). Bellow I will show the code, but the main problem is that the gpio.input() method is usually returning 0 but every few seconds it returns 1, which is only supposed to happen when button is pressed. I'm a complete newbie in this world so excuse me if this is an easy thing to solve. For the record I have also tried with other libraries an none have worked for me. Thanks in advance.
Example code:
#!/usr/bin/env python
"""Read button.
Make gpio input and enable pull-up resistor.
"""
import os
import sys
import time
import logging
if not os.getegid() == 0:
sys.exit('Script must be run as root')
from pyA20.gpio import gpio
from pyA20.gpio import connector
from pyA20.gpio import port
__author__ = "Stefan Mavrodiev"
__copyright__ = "Copyright 2014, Olimex LTD"
__credits__ = ["Stefan Mavrodiev"]
__license__ = "GPL"
__version__ = "2.0"
__maintainer__ = __author__
__email__ = "support@olimex.com"
button = port.PA1 #connector.gpio3p40
"""Init gpio module"""
gpio.init()
"""Set directions"""
gpio.setcfg(button, gpio.INPUT)
"""Enable pullup resistor"""
# gpio.pullup(button, gpio.PULLUP)
gpio.pullup(button, gpio.PULLDOWN) # Optionally you can use pull-down resistor
try:
while True:
state = gpio.input(button) # Read button state
print (state)
if state == 1:
print("button pressed")
logging.info("button pressed")
time.sleep(0.2)
except KeyboardInterrupt:
print ("Goodbye.")