前言
对本月实现微信远程控制家里电路的计划,补步学习树莓派python GPIO控制。其中查看了网上的些资料还发现了点部问题。
正文
看了网上多数都是正极直接级VCC,然后控制物理接口11的输出。但问题在于初始化11接口后LED灯就常亮,所以我直接使用11,13两个口。看下我的接法:
我大部分参考树莓派开发系列教程9——树莓派GPIO控制 帮助了我很多,但也给我埋了个坑。 程序初始化11接口为输出模式,程序退出后没有复位。导致程序下次执行警告,最终问题是程序退出后LED保持最后的状态。警告信息如下:
其实我也对GPIO也不是太懂,最后看到文章树莓派学习笔记——RPi.GPIO 流水灯中的代码,退出程序前将接口设置为低电平输入模式。
最后看看我的程序
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
def setup():
'''初始化接口'''
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.LOW)
def destroy():
'''恢复接口'''
GPIO.output(11, GPIO.LOW)
GPIO.output(13, GPIO.LOW)
GPIO.setup(11, GPIO.IN)
GPIO.setup(13, GPIO.IN)
setup()
GPIO.output(13, GPIO.HIGH)
for i in range(10):
GPIO.output(11,GPIO.HIGH)
time.sleep(1)
GPIO.output(11, GPIO.LOW)
time.sleep(1)
destroy()
20170517 树莓派GPIO入门01-使用GPIO接口控制发光二极管闪烁 的源码中GPIO.cleanup()对所有GPIO引脚做清理
再看看效果
最后零时找了个在线画电路图,平时不常用。
参考: 树莓派开发系列教程9——树莓派GPIO控制 树莓派学习笔记——RPi.GPIO 流水灯 树莓派的pythonGPIO编程整理