加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 一、前言
    • 二、引脚对照表
    • 三、硬件连接
    • 四、编写程序
    • 五、结束语
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

树莓派从零开始快速入门第5讲——点亮LED

07/05 15:10
1637
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

千呼万唤始出来,今天,他来了,他来了,点灯的教程他终于来了,作为嵌入式编程世界公认最经典的入门程序,把你放在第5讲算是给足面子了,要是在其他教程,能活过第2讲?好了,废话不多说,盘他就完了。

GPIO是通用输入输出口的意思,是MCU控制外设最基本的硬件接口。把LED灯接到GPIO上面,通过控制GPIO的输出电压,就可以控制灯的亮灭,我们今天的目标是点亮第一个LED灯。

二、引脚对照表

要点灯,先要确定灯接在哪个引脚上面,对应的引脚号是多少。

要确定硬件引脚对应的软件引脚号,可以通过下面这个指令查看自己的设备引脚对照表。

gpio readall

在这里插入图片描述

树莓派的引脚编码方式有两种:wiringPi和BCM,其实就是对应两个不同的库函数。

1)wiringPi:基于WiringPi库,是树莓派平台的库函数,类似于Arduino里面的wiring。
2)BCM:基于bcm2835库,是树莓派cpu芯片的库函数,相当于stm32固件库一样,底层直接操作寄存器

这里引用一张树莓派实验室的通用引脚图,这个图非常好用,除了对应40pin的树莓派之外也兼容了其他版本的硬件。

请添加图片描述

再引用了一张3B的引脚图,两张图对比来看,引脚的对应关系就非常清晰了。

请添加图片描述

三、硬件连接

首先我们得准备一个LED灯或者带LED灯的扩展板,我这里用的是微雪的多功能扩展板Pioneer600(某宝上面找不到,要在微雪官网上面采购),总体来说,这款扩展板性价比不算高,但是对于初学者来说很友好,接口是pin对pin的,可以直接接上树莓派,常用的外设也比较全(LEDUARTIICSPI按键显示屏),如果能把把这些外设都调完,那去做一些小项目是基本没有问题的了。(特别说明:这不是在恰饭哈)

把LED接到树莓派任意一个GPIO口上面(如果是用的是普通插件LED灯,还要串一个1k左右的电阻,不然可能会把灯烧掉)。

四、编写程序

1、编程方式简述

树莓派控制IO口的方式有很多种。

1:通过shell命令直接控制
2:通过Linux脚本控制
3:通过wiringPi库控制
4:通过bcm2835库控制

控制的方式有多种,编程的语音也有多种,C、C++、python、Java等等,所以就导致很多初学者无从下手,到底应该选择哪种方式呢?我本身从事的工作是以C语言为主的,一开始我是想从C开始突破,但是经过我一段时间的摸索,我认为树莓派最好的方式应该是Linux系统+python编程。确定了路线之后,我后面的编程教程也都是以python编程为主。

2、python编程

python语法不懂的同学,可以先去看下其他的教程,了解一下python最基本的语法,然后再边学边做。

用python控制树莓派外设是通过python类库实现的,比如树莓派系统本身集成的RPi.GPIO就可以控制GPIO口。

树莓派官方的镜像基本都是自带python工具的,所以一般是不用再另外安装软件了。

1)新建py文件

新建led.py文件

touch led.py

2)编写程序

打开led.py并编写以下示例程序:

#!/usr/bin/python                             
#-*- coding:utf-8 -*-               
import RPi.GPIO as GPIO             #导入RPi.GPIO库
import time                         #导入time库                   
GPIO.setwarnings(False)               #禁用警告(可以不用)
GPIO.setmode(GPIO.BCM)                #使用BCM编码的引脚号
GPIO.setup(26,GPIO.OUT)               #根据自己LED灯接的引脚配置,我这里是26脚
try:
    while True:                       #wile循环
        GPIO.output(26,GPIO.HIGH)     #引脚拉高
        time.sleep(1)                 #延时1s
        GPIO.output(26,GPIO.LOW)      #引脚拉低
        time.sleep(1)                 #延时1s
except:
    print("except")
GPIO.cleanup()
注:
#!/usr/bin/env python,定义python解析脚本的绝对路径
#-*- coding:utf-8 -*-,python文件为utf-8格式,否则无法写入中文注释

编写代码的方式有很多种,根据自己的喜欢选择一种即可。

方式1:在树莓派命令窗口编辑

vim led.py      // 用vim编辑
nano led.py     // 用nano编辑

vim编辑示例如下:

在这里插入图片描述

方式2:在树莓派可视化界面编辑

在这里插入图片描述

在这里插入图片描述

方式3:在PC端打开并编辑

参考我上一讲介绍的文件共享。

树莓派从零开始快速入门第4讲——文件共享

在这里插入图片描述

3)运行

运行方式有两种方式。

方式1:命令行运行

python led.py

python led.py开始运行,Crtl+C结束运行。

在这里插入图片描述

方式2:可视化界面运行

在这里插入图片描述

注:如果RPi.GRIO检测到一个引脚已经被设置成了非默认值,那运行的时候会弹出一个警告信息。

在这里插入图片描述

可以在配置GPIO模式之前调用以下代码即可禁用警告,当然,不禁用也是没关系的,不影响代码运行。

GPIO.setwarnings(False)

运行结果:

LED每间隔1s闪烁一次。

五、结束语

点灯仪式就此结束,经过对LED的调试,相信你对树莓派的编程方式已经有了一定的了解。万事开头难,我觉得树莓派最容易让人产生疑惑的是它的编程方式,因为花样太多了,你在百度上搜索树莓派的编程方式,会得到很多种答案,都不知道该信谁,关于这个,我认为最好的方式是Linux系统+python编程。选择一种路线入门很重要,明确了自己的路线,就可以迈出新手村了,后面无非就是打怪升级。

想了解更多树莓派的知识可以关注我,后续我会继续出更多的教程。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
CY62167EV30LL-45ZXI 1 Cypress Semiconductor Standard SRAM, 1MX16, 45ns, CMOS, PDSO48, TSOP1-48
$69.33 查看
9DBV0441AKLFT 1 Integrated Device Technology Inc VFQFPN-32, Reel

ECAD模型

下载ECAD模型
$4.96 查看
AFBR-5972BZ 1 Broadcom Limited Transceiver, 635nm Min, 675nm Max, Panel Mount, PACKAGE-8

ECAD模型

下载ECAD模型
$43.31 查看

相关推荐

电子产业图谱