Я пытаюсь настроить Raspberry Pi (модель B +) на выбранный пользователем светодиод через GPIO с помощью функции io.output()
.Однако у меня есть проблемы с получением моего сценария, чтобы сделать это.Сценарий написан на Python3.
# Set GPIO pins for each color
red = 11
yellow = 9
green = 10
# etc...
# LEDs are set as output
io.setup(red, io.OUT)
io.setup(yellow, io.OUT)
io.setup(green, io.OUT)
# etc...
# Function
def phase(color):
io.output(color, io.HIGH)
color = input("Please choose a color like red, yellow, green, ...: ")
То, чего я пытаюсь добиться, заключается в следующем: в зависимости от выбора, который делает пользователь, этот конкретный светодиод включается.
У пользователя есть выбориз 10 цветов.
Я знаю, что это может быть достигнуто путем установки:
if color == 'red':
io.output(red, io.HIGH)
elif color == 'yellow':
io.output(yellow, io.HIGH)
elif color == 'green':
io.output(green, io.HIGH)
#etc...
Но я хотел бы иметь только 1 строку кода, в которой переменная color
обновляется в соответствии скакой цвет выбрал пользователь:
io.output(color, io.HIGH)
Кажется, что установка переменных в Python3 работает немного по-другому, чем я думал (я привык к PHP, но в Python3 такого еще не было).
Я ожидаю, что переменная color
будет обработана Python для ввода данных пользователем (скажем, «красным»), который впоследствии должен быть обработан в соответствующий номер вывода GPIO, который равен 11
.
Однако этого не происходит, и я не могу понять, почему.Я продолжаю получать сообщения о том, что color
должно быть целым числом.И я думал, что переменные в этом случае работают как color = red = 11
.
Как передать переменную в мою io.output()
функцию?Это возможно, или я застрял с необходимостью написать строку кода для каждого цветного светодиода?Это кажется мне излишним, но, может быть, я здесь совершенно не прав.