0%

树莓派 点亮LED

使用树莓派的GPIO功能点亮一个LED灯。树莓派的GPIO,全拼是:General Purpose Input Output(通用输入输出)。GPIP引脚可以被用作数字输入或数字输出,这两种操作的电压都是3.3V。我们可以通过控制树莓派的GPIO引脚来作为输出电压,点亮我们的LED灯设备。

准备工作

材料清单:

  • 树莓派主体,(我使用的3B)
  • 1KΩ的电阻一个
  • 红色LED灯一个
  • 面包板一个
  • 导线若干

我们需要用到python和PRIi.GPIO库,所以在树莓派上安装python和对应的库:

1
2
$ sudo apt-get install python-dev
$ sudo apt-get install python-rpi.gpio

最新版的许多发行包可能都会自带Python和RPi.GPIO。如果已安装了的话,这两个命令只会把它升级到最新版。

电路规划

LED是便宜且有效的产生光的设备,但是它也十分脆弱,如果给的它一个相对很巨大的电流的话,会烧毁LED,同时也会损供电设备–我们的树莓派,所以,加一个电阻来保护电路安全,防止电流过大。LED全程为发光二极管,当给它两端加上正向电压时,电流从LED阳极流向阴极,半导体晶体就开始发出光线,电流的大小决定着光的强弱。所以,LED的正负极很重要,简单分辨方法是:引脚较长的为阳极,较短的为阴极)

发光二级管的工作电流很低,在任何大于1mA的电流下就会发光,在更大的电流下亮度更高。但是要注意以下安全规则:

  • 每个输出引脚不要引出超过3mA的电流。少数几次不会带来直接危害,但是会缩短树莓派使用寿命。
  • 不要葱3.3V的供电引脚引出总额超过50mA的电流。

所以,我们使用1kΩ的电阻总是安全的。

树莓派GPIO针脚在python中有BCM和BOARD两种模式,我们这里使用BCM模式,引脚定义图:
树莓派BCM引脚图-横向图
这里为了节省博客篇幅,使用了横向图,为了方便看图,点击查看树莓派BCM引脚图-纵向图
我们启用BCM模式下的18号引脚输出电流,然后将电阻和LED组成串联电路,再连接树莓派的GND引脚组成闭合电路,电路的连接方式如图所示:
电路图连接

python程序

使用ssh连接树莓派(或者直接接上显示器在树莓派里写),新建文件:led_blink.py,并输入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# coding: utf-8
import RPi.GPIO as GPIO
import time
# 选择引脚的模式为板载模式
GPIO.setmode(GPIO.BCM)
# 将18号引脚设置为输出模式
GPIO.setup(18, GPIO.OUT)
while True:
# 将18号输出引脚设置为高电平
GPIO.output(18, True)
time.sleep(0.5)
# 低电平
GPIO.output(18, False)
# 休眠500毫秒
time.sleep(0.5)

程序解读:

  1. 引入库PRi.GPIO命名为GPIO。
  2. 引入库time,来控制时间
  3. 将树莓派引脚的模式设置为BCM模式
  4. 打开18号引脚,设置为输出模式
  5. 建立循环,将18号引脚设置为高电平,停顿0.5秒后,将18号引脚设置为低电平,在停顿0.5秒,然后重复循环

最后,运行我们的程序:

1
$ sudo python led_blink.py

线路连接正确的情况下,会出现正确的结果,我们的led灯被点亮了:
led light


有一段时间没有鼓捣树莓派了,点亮这个灯的过程好比我们学习一个新语言写了一个hello world一样。这个实验还是很简单的,细心就好了。

我做的过程中卡了了好久,灯老是不亮,无奈的我拿出了万用表,一步步检查电压电阻,结果发现是面包板有坏点,导致电路不同,换了插孔后就好了,万用表是个好东西啊~😊

码字辛苦,打赏个咖啡☕️可好?💘