学习用树莓派驱动LED灯闪烁
【前沿】
·认识GPIO编码
·准备实验材料
·实验电路连接
·编写驱动程序
·讲解其它的驱动方式(扩展篇)
【实际操作】
一、认识GPIO编码
学习如何用树莓派驱动LED灯时需要先了解树莓派管脚GPIO的编码方式,树莓派的管脚编码方式与51单片机的管脚编码有些不一样,在树莓派的GPIO上分为两种编码方式,分别为BCM编码和wiringPi编码,不同的编码方式在编写程序驱动GPIO时稍有区别,具体编码如下:
二、准备实验材料
1、一套可运行的树莓派!
2、杜邦线2根
3、LED一颗
三、线路连接
四、编写驱动程序
说明:以下的实验都是使用SSH方式登录到树莓派来完成的,具体操作可看我的其它博文。
1、使用python脚本语言BCM编码方式驱动LED!
这里使用vim.tiny文本编辑工具编写一个python脚本程序驱动LED,首先给工程 建立一个文件夹用于存放工程文件
mkdir lesson_1
cd lesson_1/
新建一个led_falsh.py的脚本文件,并写入驱动代码:
vim.tiny led_flash.py
正式写入驱动代码:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(25,GPIO.OUT)
while True:
GPIO.output(25,GPIO.HIGH)
time.sleep(0.2)
GPIO.output(25,GPIO.LOW)
time.sleep(0.2)
编辑完成按下一次Esc键,然后输入 :wq ,意思为保存文件并退出编辑!
下面开始执行文件,查看具体效果,首先先给文件增加用户可执行权限:
sudo chmod u+x led_flash.py
运行程序:
python led_flash.py
此时就可以看到LED实际的效果了,同时如果程序有误的话,终端也会打印出错误消息!
如需退出执行程序,直接按下 ctrl+c 组合键即可退出
程序解读:
到此,一个驱动LED闪烁的学习就完成了!
五、讲解其它的驱动方式(扩展篇)
【驱动方式】
使用wiringPi编码方式实现驱动LED
【示例程序】
在文件夹下新建一个名为flash.c的文件,并写入以下示例代码:
#include <wiringPi.h>
int led = 29; // 定义使⽤wiringPi编码的7引脚
int main(void)
{
wiringPiSetup(); // 使⽤wiring编码去初始化GPIO序号
pinMode(led, OUTPUT); // 设置GPIO电⽓属性为推挽输出
while(1)
{
digitalWrite(led, 1); // led亮
delay(500); // 延时500ms
digitalWrite(led, 0); // led灭
delay(500); // 延时500ms
}
return 0;
}
【编译运行】
使用cd命令进入文件所在目录,以下命令对文件进行编译:
gcc -Wall -o flash flash.c -lwiringPi
如何编译没有错误,接着输入以下命令执行程序:
sudo ./flash
此时可以看到实时的效果,最后可使用ctrl+c可以结束程序。
【小结】
1、由于人为退出程序时间的不确定性,所以在程序退出时可能为亮,也可能为灭的状态。
2、使用python的程序驱动和C程序驱动LED,只是在编码方式上稍有不同,但实际上驱动的都是同一个IO端口。