Linux GPIO Interrupt Python on Orange Pi zero

Скрипт работает через прерывания от inotify. Проверялся на GPIO10.

import inotify.adapters
import inotify.constants
from threading import Thread
status=" "
def gpio():
  global status
  gpio_export  = open('/sys/class/gpio/export', 'w')
  gpio_export.write('10')
  #gpio_export.close()
  gpio_edge  = open('/sys/class/gpio/gpio10/edge', 'w')
  gpio_edge.write('both')                              #both - любое изменение, rising - по высокому уровню, falling - низкий уровень, none - отключено
  #gpio_edge.close()

  i = inotify.adapters.Inotify()
  i.add_watch(b'/sys/class/gpio/gpio10/value', mask=inotify.constants.IN_MODIFY)
  while True:
    for event in i.event_gen():
      if event is not None:
        
        gpio_r = open('/sys/class/gpio/gpio10/value', 'r')
        status=gpio_r.read(1)
        #print(status)  

def main():
  global status
  statusold=" "
  while True:
    if status != statusold:
      print(status)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *