本帖最后由 lhjmy 于 2020-4-22 17:23 编辑
结合前几次GPIO的简单了解和学习,今天给大家分享一个GPIO的简单应用:智能交通灯
涉及硬件:开发套件、LED红绿灯
涉及知识:GPIO LED驱动电路
(1) 有了下图这样的红绿灯模块之后,就可以把这个小装置连接到开发板的GPIO接口上。
(2) 连接好LED模块和开发板后,就可以打开程序,然后编写一些代码来控制LED了。一个例子,我是用了Python来读取树莓派的CPU使用率,通过RPi.GPIO库来显示红、黄、绿三种LED灯。 (3) 下面的代码是通过读取CPU使用率,通过GPIO库来显示红、黄、绿三种LED灯。
原理
如果CPU负载低于50%,会显示绿灯;在50%到90%之间,显示黄灯;高于90%就会显示红灯。
GREEN = 26
YELLOW = 13
RED = 19
# Pin Setup:
GPIO.setmode(GPIO.BCM) # Broadcom pin-numbering scheme.
GPIO.setwarnings(False)
GPIO.setup(GREEN, GPIO.OUT)
GPIO.setup(YELLOW, GPIO.OUT)
GPIO.setup(RED, GPIO.OUT)
try:
while (1):
cpu_pc = psutil.cpu_percent(interval=2)
print 'CPU: %d%%' % (cpu_pc)
if cpu_pc <= 50:
GPIO.output(RED, False)
GPIO.output(YELLOW, False)
GPIO.output(GREEN, True)
if 50 < cpu_pc < 90:
GPIO.output(GREEN, False)
GPIO.output(RED, False)
GPIO.output(YELLOW, True)
if cpu_pc >=90 :
GPIO.output(GREEN, False)
GPIO.output(YELLOW, False)
GPIO.output(RED, True)
目前没基础的同学可以先了解一下思路,是否能看明白代码逻辑,后期我们学习了GPIO的代码实现,大家可以把这个应用自己实现。有能力的同学可以研究一下自己做一个。
|