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

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

  • 树莓派从零开始快速入门第5讲——点亮LED
    • 一、前言
    • 二、引脚对照表
    • 三、硬件连接
    • 四、编写程序
      • 1、编程方式简述
      • 2、python编程
    • 五、结束语

一、前言 千呼万唤始出来,今天,他来了,他来了,点灯的教程他终于来了,作为嵌入式编程世界公认最经典的入门程序,把你放在第5讲算是给足面子了,要是在其他教程,能活过第2讲?好了,废话不多说,盘他就完了。
GPIO是通用输入输出口的意思,是MCU控制外设最基本的硬件接口。把LED灯接到GPIO上面,通过控制GPIO的输出电压,就可以控制灯的亮灭,我们今天的目标是点亮第一个LED灯。
二、引脚对照表 要点灯,先要确定灯接在哪个引脚上面,对应的引脚号是多少。
要确定硬件引脚对应的软件引脚号,可以通过下面这个指令查看自己的设备引脚对照表。
gpio readall

树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

树莓派的引脚编码方式有两种:wiringPi和BCM,其实就是对应两个不同的库函数。
1)wiringPi:基于WiringPi库,是树莓派平台的库函数,类似于Arduino里面的wiring。
2)BCM:基于bcm2835库,是树莓派cpu芯片的库函数,相当于stm32的固件库一样,底层直接操作寄存器。
这里引用一张树莓派实验室的通用引脚图,这个图非常好用,除了对应40pin的树莓派之外也兼容了其他版本的硬件。
树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

再引用了一张3B的引脚图,两张图对比来看,引脚的对应关系就非常清晰了。
树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

三、硬件连接 首先我们得准备一个LED灯或者带LED灯的扩展板,我这里用的是微雪的多功能扩展板Pioneer600(某宝上面找不到,要在微雪官网上面采购),总体来说,这款扩展板性价比不算高,但是对于初学者来说很友好,接口是pin对pin的,可以直接接上树莓派,常用的外设也比较全(LED\UART\IIC\SPI\按键\显示屏),如果能把把这些外设都调完,那去做一些小项目是基本没有问题的了。(特别说明:这不是在恰饭哈)
把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编辑示例如下:
树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

方式2:在树莓派可视化界面编辑
树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

方式3:在PC端打开并编辑
参考我上一讲介绍的文件共享。
树莓派从零开始快速入门第4讲——文件共享
树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

3)运行
运行方式有两种方式。
方式1:命令行运行
python led.py

python led.py开始运行,Crtl+C结束运行。
树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

方式2:可视化界面运行
树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

注:如果RPi.GRIO检测到一个引脚已经被设置成了非默认值,那运行的时候会弹出一个警告信息。
树莓派|树莓派从零开始快速入门第5讲——点亮LED
文章图片

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

运行结果:
LED每间隔1s闪烁一次。
五、结束语 点灯仪式就此结束,经过对LED的调试,相信你对树莓派的编程方式已经有了一定的了解。万事开头难,我觉得树莓派最容易让人产生疑惑的是它的编程方式,因为花样太多了,你在百度上搜索树莓派的编程方式,会得到很多种答案,都不知道该信谁,关于这个,我认为最好的方式是Linux系统+python编程。选择一种路线入门很重要,明确了自己的路线,就可以迈出新手村了,后面无非就是打怪升级。
想了解更多树莓派的知识可以关注我,后续我会继续出更多的教程。
【树莓派|树莓派从零开始快速入门第5讲——点亮LED】树莓派入门系列教程:
树莓派从零开始快速入门系列汇总

    推荐阅读