一、前言
硬件入门第一课,千年不变的点灯实验,下面就来跟大家聊聊在树莓派上如何驱动LED灯。
蹦沙卡拉卡\~\~\~\~,亮起来\~\~\~\~,再闪起来\~\~\~\~
二、认识GPIO编码
学习如何用树莓派驱动LED灯时需要先了解树莓派管脚GPIO的编码方式,树莓派的管脚编码方式与51单片机的管脚编码有些不一样,在树莓派的GPIO上分为两种编码方式,分别为 BCM编码
和 wiringPi编码
,不同的编码方式在编写程序驱动GPIO 时稍有区别,具体编码如下:
三、准备实验材料
1、一套可运行的树莓派!
2、杜邦线2根
3、LED一颗
四、 线路连接
五、编写&执行驱动程序
下面将通过两种方式来介绍如何驱动树莓派的LED。
方案一:Python + BCM编码驱动
在方案一中,我们将通过 python语言 + BCM编码 的方式来驱动 LED。
说明:以下操作是通过SSH方式登录到树莓派上来完成的,SSH的具体操作可看我的其它博文。
首先给工程建立一个文件夹用于存放工程文件:
mkdir lesson_1
cd lesson_1/
使用 vim 编辑器新建一个 led_falsh.py
脚本文件,并写入驱动代码:
vim led_flash.py
写入驱动代码:
import RPi.GPIO as GPIO # 引入GPIO文件
import time # 导入时间模块
GPIO.setmode(GPIO.BCM)
GPIO.setup(25,GPIO.OUT)
while True:
GPIO.output(25,GPIO.HIGH) # 25管脚电平置高
time.sleep(0.5) # 延时 500 ms
GPIO.output(25,GPIO.LOW)
time.sleep(0.5)
编辑完成后,按下 Esc
键退出编辑模式,然后输入 :wq
回车保存并退出文件的编辑!
在正式执行文件时,需要先给文件增加用户可执行权限:
sudo chmod u+x led_flash.py
接着运行程序:
python led_flash.py
此时就可以看到LED实际的效果了,同时如果程序有误的话,终端也会打印出错误消息!
Tips: 如需退出执行程序,直接按下 ctrl+c 组合键即可退出。
方案二:C + wiringPi编码驱动
在方案二,将通过 C语言 + wiringPi编码 的方式实现驱动LED 。
在文件夹下新建一个名为 flash.c
的文件,并写入以下示例代码:
#include <wiringPi.h>
int main(void)
{
wiringPiSetup();
pinMode (6,OUTPUT);
for(;;)
{
digitalWrite(6,HIGH);
delay(500);
digitalWrite(6,LOW);
delay(500) ;
}
}
执行程序前,需要对c文件进行编译,执行以下命令进行编译:
gcc -Wall -o flash flash.c -lwiringPi
如何编译没有错误,接着输入以下命令执行程序:
sudo ./flash
此时可以看到实时的效果,如果需要退出程序,可使用 ctrl+c 强制停止。
六、小结
由于人为退出程序时间的不确定性,所以在程序退出时可能为亮,也可能为灭的状态。
使用python的程序驱动和C程序驱动LED,只是在编码方式上稍有不同,但实际上驱动的都是同一个IO端口。