Здравствуйте, я работаю над бесконечным циклом While True для основного файла в моем коде Python. Я работаю над Raspberry Pi, и моя цель состоит в том, чтобы всякий раз, когда один из выводов GPIO воспринимал ввод, он печатал строку. Однако, когда я нажимаю кнопку, она будет продолжать печатать ее бесконечно, и единственный способ остановить ее — нажать Ctrl-C. Пока он печатает одну и ту же строку снова и снова, никакая другая кнопка не изменит происходящее. Что я делаю не так, я где-то забыл шаг?
import RPi.GPIO as GPIO
import time
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.IN)
GPIO.setup(19, GPIO.IN)
GPIO.setup(13, GPIO.IN)
GPIO.setup(6, GPIO.IN)
input_A = GPIO.input(26)
input_B = GPIO.input(19)
input_C = GPIO.input(13)
input_D = GPIO.input(6)
while True:
if input_A == True:
print('A was pushed')
if input_B == True:
print('B was pushed')
if input_C == True:
print('C was pushed')
if input_D == True:
print('D was pushed')
sleep(1.5);
if input_A == True:
будет работать, но обычно считается плохим стилем (см., например, PEP 8, второй пункт списка снизу) — предпочитаю простоif input_A:
. - person lvc   schedule 23.06.2015input_A/B/C/D
являются только переменными, их чтение не вызывает вызов функции, он просто считывает те же самые старые исторические значения, когда они были первоначально назначены (вне цикла). - person smci   schedule 15.12.2020