用于循环访问GPIO引脚的Python

时间:2015-04-09 07:02:31

标签: python for-loop raspberry-pi raspbian gpio

我是Python和Raspberry Pi的新手。我尝试缩短代码并在代码中使用for循环来重复部分,例如将所有引脚更改为高和低。

我尝试使用for循环来访问引脚。这甚至可能吗?

import RPi.GPIO as GPIO
from time import sleep

R1=22
R2=10
R3=9
R4=11

GPIO.setup(R1, GPIO.OUT)
GPIO.setup(R2, GPIO.OUT)
GPIO.setup(R3, GPIO.OUT)
GPIO.setup(R4, GPIO.OUT)

for x in range(1, 5):
    print "We're on time %d" % (x)
    GPIO.output(R + %d % (x), GPIO.HIGH)
    sleep(1)
    GPIO.output(R + %d % (x), GPIO.LOW)
    sleep(1)

GPIO.cleanup()

2 个答案:

答案 0 :(得分:0)

这种事情是可能的,但通常更好地使用listdict

pins = [22, 10, 9, 11]

for pin in pins:
    GPIO.setup(pin, GPIO.OUT)

for x in range(1, 5):
    GPIO.output(pins[x], GPIO.HIGH)
    sleep(1)
    GPIO.output(pins[x], GPIO.LOW)
    sleep(1)

答案 1 :(得分:0)

您无法像这样创建变量名称。您必须具有相同的变量名称并更改其指向的内容:

pins = [R1, R2, R3, R4]

for pin in pins:
    GPIO.setup(pin, GPIO.OUT)

for pin in pins:
    GPIO.output(pin, GPIO.HIGH)
    sleep(1)
    GPIO.output(pin, GPIO.LOW)
    sleep(1)