树莓派(Raspberry Pi)本质上是一台Linux小电脑,但其板载的GPIO接口彰显着它的独特之处。掌握并控制好这些IO接口我们就可以将树莓派变成一块性能极高的单片机。本文通过“按键控制树莓派LED灯”的实验给大家分享一下使用树莓派GPIO进行输入输出的经验。
图1 接好各种外设的树莓派
下面通过一个“按键控制树莓派LED灯”的实验给大家分享一下本人使用树莓派GPIO进行输入输出的经验。
这个实验中我们选用Python语言对树莓派GPIO口进行编程。Python语言是一种面向对象的解释性语言。好在现在有中文版的教材《Raspberry Pi Python 编程入门》所以学习起来还是蛮轻松地。最新版的树莓派上已经预装了Python软件以及驱动GPIO的软件包。我们直接进行编程就行了(如果没有软件包请按《爱上Raspberry Pi》书中所提方法进行安装)。
树莓派为了减小成本,没有I/O口的外设,所以我们需要一些有I/O外设的扩展板,在这里给大家推荐一款树莓派原型扩展板,它有专门为树莓派设计的接口,它将树莓派所有的GPIO接口全部引出,板上有一颗LED接到树莓派GPIO25脚上,另有一颗按键接到GPIO24。板子的其余部分全部打上通孔可以让玩家焊上自己的电路。
图2 树莓派原型扩展板
首先,给大家演示一下用Python指令驱动GPIO。打开树莓派终端输入 sudo python 用管理员身份打开python程序。依次输入以下指令:>>>GPIO.setmode(GPIO.BCM)
>>>GPIO.setup(25,GPIO.OUT) #设置25管脚为输出
>>>GPIO.output(25,GPIO.HIGH) #25脚输出高电平
>>>GPIO.output(25,GPIO.LOW) #25脚输出低电平
以上的指令可以控制管脚的输出,python程序还可以读取引脚的输入,这将在接下来的例子中体现出来。
指令固然能控制I/O口,当然我们最希望的还是能生成可执行文件,树莓派做到这一点自然也是毫无问题的。首先我们需要建立一个空文本,在文本中输入以下程序(程序内容如注释所示)。
import RPi.GPIO as GPIO #调入GPIO库
import time #调入时间库
GPIO.setmode(GPIO.BCM)
GPIO.setup(24,GPIO.IN) #将24脚设置为输入
#GPIO.setup(24,GPIO.IN,pull_up_down=GPIO.PUD_UP)
#将24脚设置成有上拉模式,如果用不带上拉电阻的按键可以使用此句。
GPIO.setup(23,GPIO.OUT) #将23脚设置为输出
count=0
while True: #循环执行
inputValue = GPIO.input(24)#读取键值
if(inputValue==0): #判断键值
count=count+1
if(count%2==0):
print("THE LED IS ON NOW") #终端输出
else:
print("THE LED IS OFF NOW") #终端输出
time.sleep(0.3) #延时等待
if(count%2==0): #根据count的值决定LED灯是否开闭
GPIO.output(23,GPIO.HIGH)
else:
GPIO.output(23,GPIO.LOW)
time.sleep(0.01) #延时等待留给系统空闲时间
#注意:1、程序段的前的空格数,Python程序用空格字符控制程序层次,而不是C语言的“{}”。2、Python程序中的注释符是“#”而不是“//”.
然后按下面的电路图搭建电路,这里我用的是树莓派原型扩展板自带的面包板自己搭建的电路。如果不想自己搭建电路也可以使用原型扩展板上的自带的LED灯和按键。只需要根据程序所示用语句“GPIO.setup(channel,GPIO.IN,pull_up_down=GPIO.PUD_UP)”将该输入口设置成上拉模式即可。
图3 按键与LED电路原理图
图4 插接好元器件的原型扩展板
将文本保存命名为KEYLED.py文件。然后进入树莓派终端,输入sudo python keyled.py ,运行我们所写的程序。我们可以看到当按下按键时,LED灯变亮,终端显示THE LED IS ON NOW,当按键再次按下时,LED灯变灭,终端显示THE LED IS OFF NOW。
图5 输入程序运行指令
图6 LED灯亮灭状态显示
树莓派的GPIO应用起来虽不如Arduino简单易用,不过稍加练习很快也能运用自如,这样Arduino的很多模块在树莓派GPIO上也同样能够玩转起来。
相关链接:
树莓派二代:http://www.alsrobot.cn/goods-427.html
树莓派原型扩展板:http://www.alsrobot.cn/goods-491.html
树莓派显示器:http://www.alsrobot.cn/goods-386.html
爱上Raspberry Pi:http://www.alsrobot.cn/goods-410.html
爱上Raspberry Pi套件:http://www.alsrobot.cn/goods-433.html
近期新闻
热门新闻
奥松智能微信