0018 树莓派电脑控制第一个led灯亮起来

0018 树莓派电脑控制第一个led灯亮起来_第1张图片

这节课开始,进入树莓派硬件控制传感器的世界,感受软件和硬件结合带来的无穷魅力。

硬件入手

根据后续课程的安排,需要入手的硬件零件如下:

面包板,杜邦线,led灯,蜂鸣器,温湿度传感器,单位数码管,双位数码管

渠道推荐如下:

0018 树莓派电脑控制第一个led灯亮起来_第2张图片

或者是这个:

0018 树莓派电脑控制第一个led灯亮起来_第3张图片

以前面一个为例,进入之后,查找以下关键字和对应的型号:

面包板:

0018 树莓派电脑控制第一个led灯亮起来_第4张图片

杜邦线:

0018 树莓派电脑控制第一个led灯亮起来_第5张图片

选择“20CM公对母”

led灯:

0018 树莓派电脑控制第一个led灯亮起来_第6张图片

蜂鸣器:

0018 树莓派电脑控制第一个led灯亮起来_第7张图片

可以买2个备用。

温湿度传感器:

0018 树莓派电脑控制第一个led灯亮起来_第8张图片

单位数码管:

0018 树莓派电脑控制第一个led灯亮起来_第9张图片

双位数码管:

0018 树莓派电脑控制第一个led灯亮起来_第10张图片

GPIO介绍

先来看一下树莓派主板的一些对外的接口,这是反面的情况:

0018 树莓派电脑控制第一个led灯亮起来_第11张图片

这是正面的情况:

0018 树莓派电脑控制第一个led灯亮起来_第12张图片

重点关注上面有40根排针,这就是树莓派用于控制外部传感器的接口,称之为GPIO

40根引脚如何进行编号呢,如果按照物理位置来编号,只要掌握一个规则就容易记住:

最靠近角上的那一根引脚为2号引脚。旁边的就是1号引脚,具体请看上图示意图。

那么这40根引脚具体的用途和定义是什么呢,请看下面的图:

0018 树莓派电脑控制第一个led灯亮起来_第13张图片

这个图是一个比较全面的一个定义,主要是因为对于这40根引脚有不同的编号规则来定义

虽然不同的规则叫的名字不一样,但实际的用途是一致的

这里只学习一种编号规则,也就是物理位置编号,这样更容易进行物理连接。

请看下面这张简图:

0018 树莓派电脑控制第一个led灯亮起来_第14张图片

比如:1号引脚,是输出1个3.3伏的电压,也就是如果你拿一个数字万用表去测量这根引脚的电压,会一直测出来是3.3伏。

比如:2号引脚,是输出1个5伏的电压,也就是如果你拿一个数字万用表去测量这根引脚的电压,会一直测出来是5伏。

比如:6号引脚,是一个GND,也就是接地,如果测量电压的话,就是0伏。

比如:11号引脚,是绿色图标,旁边写着GPIO17,其实这个接口就是普通的接口,可以输入也可以输出,如果设置为输出,则可以输出高电压或者低电压。输出高电压就是3.3伏,输出低电压就是0伏。可以通过程序来控制。GPIO17是另外一种编号方式而已,这里我们可以忽略。

假如需要一个恒定的电压输出到某个电路,则可以选择3.3v或者5v的相应接口。

假如需要一个变化的电压输出到某个电路,则可以选择绿色的GPIO接口,例如11号,12号,13号,15号等等。

led灯电路原理

学过物理的话,应该可以看懂下面的最简单的电路图:

0018 树莓派电脑控制第一个led灯亮起来_第15张图片

要让led灯亮起来,需要在led灯的正极输入一个正的电压,led灯的负极接地,这样led灯就可以亮起来了。

根据前面的GPIO接口的定义,选择6号口GND连接到led灯的负极,然后选择11号口连接到led灯的正极

这样,通过程序控制11号口,输出一个3.3伏的电压,led灯就亮了,输出一个0伏电压,led灯就灭了。

硬件连接

在开始连接硬件电路之前,首先要做的事是将树莓派电脑关机,并断开电源。

因为如果树莓派主板带电的时候,进行插接电路可能会导致电子元器件的烧毁,所以一定要记住这个原则:

连接电路的时候主板必须断电。

取出面包板,2根20cm的公对母杜邦线,1个led灯。

0018 树莓派电脑控制第一个led灯亮起来_第16张图片

将杜邦线的母头插到树莓派主板的GPIO接口的6号口和11号口:

0018 树莓派电脑控制第一个led灯亮起来_第17张图片

将杜邦线另外一头的公头插入面包板上:

0018 树莓派电脑控制第一个led灯亮起来_第18张图片

将led灯的长脚插入11号口线的同一纵排,将led灯的短脚插入6号口线的同一纵排:

0018 树莓派电脑控制第一个led灯亮起来_第19张图片

插好之后的样子:

0018 树莓派电脑控制第一个led灯亮起来_第20张图片

这样插好之后,全部的电路就连接好了。

这里大家可以自行去网上搜索一下关于面包板的电路图,看看为何这样就可以把线和led灯连接起来了。

看看整体连接的效果:

0018 树莓派电脑控制第一个led灯亮起来_第21张图片

然后,检查一下电路的接口是否有错误,正确无误之后就可以启动树莓派电脑的电源了:

0018 树莓派电脑控制第一个led灯亮起来_第22张图片

程序编写

电脑启动之后,可以编写程序了:

0018 树莓派电脑控制第一个led灯亮起来_第23张图片

启动文本编辑器,输入以下代码,文件保存为led.py

程序执行

保存文件之后,运行sudo python led.py看看led灯是否亮了3秒钟之后熄灭。

如果灯不亮,则按照以下次序进行检查判断:

1.首先查看树莓派主板上的引脚口的编号

是否是11号口,接到面包板上的是对着led灯的长脚

是否是6号口,接到面包板上的是对着led灯的短脚

2.如果接线没有错误,则有可能是led灯坏了

可以采取换一个led灯试试看

或者将11号口的杜邦线的母头拔出来,插入到1号口,看看led灯是否亮,如果亮了则说明灯和线没有问题。

3.如果电路都没有问题,则可能是程序错误

逐行检查代码,看看是否有遗漏或者错误。

4.如果以上都不能让灯亮起来,那只能去qq群里直接提问了。

看看程序执行结果:

0018 树莓派电脑控制第一个led灯亮起来_第24张图片

程序每行说明

import RPi.GPIO as GPIO

导入模块RPI.GPIO,命名为别名为GPIO

如果只写import RPi.GPIO也是可以的,但是后面用的地方就必须用RPi.GPIO.setmode(RPi.GPIO.BOARD)这样写齐全

用别名的方式可以简化代码

import time

导入time模块

GPIO.setmode(GPIO.BOARD)

声明GPIO使用物理编号方式,也就是11号口就是物理编号11号口

GPIO.setup(11,GPIO.OUT)

声明11号口是用于输出模式

为何6号口不用声明呢,因为它是GND,不可能变化,也就不可能输入和输出

GPIO.output(11,True)

设置11号口为高电压,也就是11号口变为3.3伏

这行代码执行之后,11号口变为高电压,那么根据电路原理,led灯就会亮起来

如果后面没有代码了,则led灯会一直亮下去,直到程序修改了输出或者电脑接口断电

time.sleep(3)

程序休眠3秒钟

程序休眠期间,led灯会一直亮着

GPIO.output(11,False)

设置11号口为低电压,也就是11号口变为0伏,和GND一样

这行代码执行之后,11号口变为低电压,那么根据电路原理,led灯就会熄灭

GPIO.cleanup()

将所有的GPIO口状态恢复为初始化,一般代码结束都执行此代码,方便后续代码运行都是从初始状态开始。

程序整体的功能很简单:

导入必须的模块

设置GPIO的编号模式

设置需要用到的GPIO接口的模式

控制GPIO口的电压状态

结合时间模块运行出自己想要的结果

大家要根据以上基本的代码以及说明,思考如何修改程序,改变运行功能

课后作业

1.将休眠时间修改为10秒

2.增加8根线和4个led灯,5个led灯依次亮3秒,循环10次结束

往期教程

因为教程是系列教程,前后关联性非常强,请大家按照_|_微_|_信_|_公_|_众_|_号_|_【零基础学编程】的历史消息发布时间先后次序进行阅读。

Q_Q_群简介

欢迎大家加入Q_Q_群 603559164 零基础学编程,交流学习,共同进步。

你可能感兴趣的:(0018 树莓派电脑控制第一个led灯亮起来)