Я использую Raspberry Pi 3 и управляю тремя светодиодами с помощью Python.Я мог бы сказать, что я хорош с Python.Вот мой код:
import RPi.GPIO as GPIO
import time
#GPIO Pins
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17,GPIO.OUT)
GPIO.setup(27,GPIO.OUT)
GPIO.setup(22,GPIO.OUT)
def led(color,state):
if state == "on":
if color == "g": #green
GPIO.output(27,GPIO.HIGH)
elif color == "y": #yellow
GPIO.output(22,GPIO.HIGH)
elif color == "r": #red
GPIO.output(17,GPIO.HIGH)
print ("LED on")
elif state == "off":
if color == "g":
GPIO.output(27,GPIO.LOW)
elif color == "y":
GPIO.output(22,GPIO.LOW)
elif color == "r":
GPIO.output(17,GPIO.LOW)
print ("LED off")
while True:
leds_col = input("Color (r, g, y): ")
leds_stat = input("On or Off: ")
led(leds_col, leds_stat)
У меня есть функция с именем led()
, которая принимает два аргумента: color
(g, y или r) и state
(вкл или выкл).В цикле while leds_col
запрашивает цвет в консоли, а leds_stat
- статус.Теперь я пытаюсь добиться того, чтобы не запрашивать цвет в другой строке и статус светодиода в другой строке, а объединить их два.Так, например, я бы написал на консоли:
g, on
И он включил бы зеленый светодиод.Я знаю, что могу просто использовать оператор if, например: if led_input == "g, on": GPIO.output(27,GPIO.HIGH)
Но я уверен, что есть лучший способ сделать это.