Я пытаюсь сделать так, чтобы при нажатии клавиши на моей клавиатуре (в данном случае «а») загорелся светодиод, а затем сразу же погас, когда я отпущу эту клавишу. Это работает, если я использую halfdelay ([номер 1-5]), но не так, как мне бы хотелось. Использование 1 выключает светодиод почти сразу после того, как я отпущу клавишу, но в начале наблюдается раздражающее мерцание (светодиод включается на долю секунды, выключается на несколько десятых секунды, а затем остается включенным). непрерывно). Если я использую 5, мерцание исчезает, но светодиод остается включенным в течение половины секунды после того, как я отпущу клавишу. Использование 2, 3 или 4 похоже на слайдер, а 2 ведет себя в основном как 1 и немного похоже на 5.
Очевидно, использование nodelay должно решить эту проблему за счет вычислительной мощности, но это не работает дляя вообще даю ошибку:
AttributeError: 'module' object has no attribute 'nodelay'
вот мой код:
import curses
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12,GPIO.OUT)
screen = curses.initscr()
curses.noecho()
curses.nodelay(3)
screen.keypad(True)
screen.keypad(True)
try:
while True:
char = screen.getch()
print char
if char == ord('q'):
break
elif char == ord('a'):
GPIO.output(12,True)
else:
GPIO.output(12,False)
finally:
curses.nocbreak();screen.keypad(0);curses.echo()
curses.endwin()
GPIO.cleanup()```