用树莓派控制发光二极管

描述

上一节我们讲了树莓派可以通过输入输出(I/O)来与现实世界进行沟通。今天我们实际操作一下,通过树莓派的GPIO来控制发光二极管,体验计算机如何通过程序来控制实际的电路。

需要的材料

要完成本节的实验,需要准备如下的电子原件:

  • 一个发光二极管,颜色不限
  • 一个500-2K欧姆的电阻。我使用的是1K欧姆的电阻。
  • 两条跳线
  • 面包板(可选,没有面包板,需要把元器件直接连接,容易出问题)
  • 树莓派GPIO扩展组件(可选)

下面我们来逐个介绍一f下这些原器件,已经知道的同学可以跳过。

发光二极管

是二极管的一种,二极管的主要特性是整流,既电流只能正向流过,反方向会被阻断。发光二极管也叫LED,当电流正向流过时可以发光,有很多颜色可选,主要用途是标识电路的工作状态,最常见的是各种电器电源指示灯,表示现在电器已经通电正在工作中。在电路中二极管的符号如下

发光二极管

电阻

顾名思义,电阻主要是阻挡电流通过,控制电路中电流的大小。用欧姆(符号是Ω)来表示电阻大小,今天我们使用的1K欧姆电阻可以帮助保护树莓派,发光二极管正向电阻基本为0,如果没有电阻保护,二极管发光时的电流过大,会烧毁树莓派。电阻的符号有如下2种:

发光二极管

面包板

是用于实验和设计电路的特别好的工具,它上面有很多小插孔,可以插入各种电子元件,非常适合进行电路调试和设计。

面包板上下标有+,-符号的是电源区,每行是相通的,用来连接外部的电源,通常用上面的+连接外部电源正极,下面的-连接电源负极。中间部分标有ABCD...的是元件区,ABCDE是竖着相通的,下面的FGHIJ也是竖着相通的。

跳线

跳线是用来连接不同元件的,有公对公,公对母,母对母三种。

如果不用面包板,用跳线直接连GPIO时,跳线的一端必须是母头,以插到GPIO的引脚上,我们使用面包板和GPIO扩展,所以使用的公对公跳线。

树莓派GPIO扩展组件

直接让元器件直连GPIO虽然可行,但容易出现短路,连接不牢等问题,所以最好使用扩展组件+面包板的组合,这样搭起电路来更方便。市场上的GPIO扩展组件比较多,我使用的是一个扩展电路板+扩展排线的方式。下图中扩展电路板已经与排线连好了。

好,现在我们的全部元器件都准备好了。

现在我们按下面的电路把这些元器件连起来

发光二极管

引脚1是3.3V的电源,GND可以连接GPIO的引脚6或者14等(标识为GND的引脚都可以)。

这时给树莓派通电开机,连接电路后可以看到二极管亮起来。这样做的目的是确保电路连接正常,方便接下来的程序控制。

发光二极管

接下来我们把连接电源的跳线(上图为红色线)换到GPIO27(第12号引脚),LED灯熄灭了,因为GPIO默认为输入,现在是低电压,没法让灯亮起来。

控制LED的Python程序

现在让我们开始编写代码来控制连接到GPIO27的LED电路吧。代码如下:

import RPi.GPIO as GPIO    #需要使用别人写好的类库
from time import sleep     #需要使用别人写好的类库
GPIO.setmode(GPIO.BCM)
GPIO.setup(27,GPIO.OUT)  #这2句把GPIO27设置为输出模式
while True:
    GPIO.output(27,True)   #在GPIO输出高电位1,此时LED亮
    sleep(1)             #等1秒
    GPIO.output(27,False)  #在GPIO输出低电位0,此时LED灭
    sleep(1)            #等待1秒

用上面的程序,可以让LED亮1秒暗1秒,直到程序退出。如果你连接的不是GPIO27,请把上面代码的27换成你实际连接的GPIO编号。(你也可以尝试修改sleep的时间,比如改为0.2, 3等来试一下不同的LED闪烁效果)

现在我们体会到了用程序和GPIO控制实际电路是怎么回事了,你可能对上面的Python代码还不了解,下一讲我们将对此进行详细讲解,同时换另一种更简介的代码来控制LED。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分