一、前言

硬件入门第一课,千年不变的点灯实验,下面就来跟大家聊聊在树莓派上如何驱动LED灯。

蹦沙卡拉卡~~~~,亮起来~~~~,再闪起来~~~~

二、认识GPIO编码

学习如何用树莓派驱动LED灯时需要先了解树莓派管脚GPIO的编码方式,树莓派的管脚编码方式与51单片机的管脚编码有些不一样,在树莓派的GPIO上分为两种编码方式,分别为 BCM编码wiringPi编码 ,不同的编码方式在编写程序驱动GPIO 时稍有区别,具体编码如下:

GPIO编码对照图-1

GPIO编码对照图-2

三、准备实验材料

1、一套可运行的树莓派!
2、杜邦线2根
3、LED一颗

四、 线路连接

img

五、编写&执行驱动程序

下面将通过两种方式来介绍如何驱动树莓派的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端口。

最后修改:2021 年 04 月 03 日 11 : 46 AM