嵌入式技术
我们通过程序控制彩色LED发出不同颜色的光。这次我们用3个按钮来手动控制彩色LED灯分别发出红,绿,蓝光并可以同时按下不同按钮以显示混合颜色的光。
树莓派GPIO入门04-使用按钮
硬件图
从树莓派上引GND(负极)到面包板上,3个按钮默认不联通的两只引脚的一只接到GND上。另一只接到树莓派GPIO口上。这3个GPIO口在程序里设置为输入模式,并且默认拉到高电平。当某个按钮被按下,即联通GND端到GPIO口上,此时从GPIO口取到的状态为低电平。程序侦测到低电平时就认为按钮被按下,从而可以做你想做的事情(点亮红/绿/蓝灯)。
硬件连接图
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
#!/usr/bin/env python# encoding: utf-8import RPi.GPIOimport timeR,G,B=15,18,14# 按钮输出针脚连接的GPIO口btnR, btnG, btnB=21,20,16RPi.GPIO.setmode(RPi.GPIO.BCM)RPi.GPIO.setup(R, RPi.GPIO.OUT)RPi.GPIO.setup(G, RPi.GPIO.OUT)RPi.GPIO.setup(B, RPi.GPIO.OUT)# 按钮连接的GPIO针脚的模式设置为信号输入模式,同时默认拉高GPIO口电平,# 当GND没有被接通时,GPIO口处于高电平状态,取的的值为1# 注意到这是一个可选项,如果不在程序里面设置,通常的做法是通过一个上拉电阻连接到VCC上使之默认保持高电平RPi.GPIO.setup(btnR, RPi.GPIO.IN, pull_up_down=RPi.GPIO.PUD_UP)RPi.GPIO.setup(btnG, RPi.GPIO.IN, pull_up_down=RPi.GPIO.PUD_UP)RPi.GPIO.setup(btnB, RPi.GPIO.IN, pull_up_down=RPi.GPIO.PUD_UP)try:RPi.GPIO.output(R, True)RPi.GPIO.output(G, True)RPi.GPIO.output(B, True)while True:time.sleep(0.01)# 检测按钮1是否被按下,如果被按下(低电平),则亮红灯(输出低电平),否则关红灯if (RPi.GPIO.input(btnR) == 0):RPi.GPIO.output(R, False)else:RPi.GPIO.output(R, True)# 检测按钮2是否被按下,如果被按下(低电平),则亮绿灯(输出低电平),否则关绿灯if (RPi.GPIO.input(btnG) == 0):RPi.GPIO.output(G, False)else:RPi.GPIO.output(G, True)# 检测按钮3是否被按下,如果被按下(低电平),则亮蓝灯(输出低电平),否则关蓝灯if (RPi.GPIO.input(btnB) == 0):RPi.GPIO.output(B, False)else:RPi.GPIO.output(B, True)except KeyboardInterrupt:passRPi.GPIO.cleanup()
全部0条评论
快来发表一下你的评论吧 !