那上篇文章的 呼吸灯 举例
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
ledPin = 11
GPIO.setup(ledPin,GPIO.OUT)
p = GPIO.PWM(ledPin, 50)
p.start(0)
while True:
for i in range(0,100):
p.ChangeDutyCycle(i)
time.sleep(0.02)
for i in range(100,0,-1):
p.ChangeDutyCycle(i)
time.sleep(0.02)
这个写法下, 如果我们使用ctrl+c打断了脚本的运行, 该如何清理GPIO释放资源呢?
我们如何能把它当做一个模块供其他模块调用呢?
我们不防按如下的方式修改这个程序
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
ledPin = 11
GPIO.setup(ledPin,GPIO.OUT)
p = GPIO.PWM(ledPin, 50)
def setup():
p.start(0)
def mainloop():
while True:
for i in range(0,100):
p.ChangeDutyCycle(i)
time.sleep(0.02)
for i in range(100,0,-1):
p.ChangeDutyCycle(i)
time.sleep(0.02)
if __name__ == "__main__":
setup()
try:
mainloop()
except KeyboardInterrupt:
print('KeyboardInterrupt and cleanup GPIO')
GPIO.cleanup()
是不是很像arduino的写法?