关于如何在ubuntu上配置python控制gpio的环境参见这篇博客
https://blog.csdn.net/ourkix/article/details/113417800
关于GPIO引脚
GPIO(英语:General-purpose input/output),通用型之输入输出的简称,其接脚可以供使用者由程序自由控制使用,PIN脚依现实考量可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)等。
在树莓派4B上有40个引脚,见下图红框的地方,这些引脚可以通过程序来控制输出电压,或读取外部电压。通过这些接口,可以让树莓派和不同的模块组件进行交互,比如按钮、按钮、蜂鸣器等等。
下面是这些引脚的定义,下图对应上图的排序
关于如何通过编程控制这些接口,下面讲各种外设时会一一介绍。
驱动LED灯
LED也叫发光二极管,可高效地将电能转化为光能的半导体器件,在现代社会具有广泛的用途,如照明、平板显示、医疗器件等。
常见直插LED元件,观察这个元件的2个引脚,长的为正极,短的为负极。如上图左侧为正极,右侧为负极。不同的发光二极管压降也不红色、黄色LED一般在1.8V-2.2V,蓝色、绿色一般在3.0V-3.6V。如果加给LED的电压超过它们的压降会导致LED烧毁。
要驱动LED的话,一般就在LED的正负极加上适当的电压就可以点亮LED了,而要控制其亮灭,就可以用树莓派芯片的引脚,再通过程序控制引脚输出与不输出电压就能实现LED的亮灭了。
- 硬件连接
根据上面的引脚定义,我们选择39号引脚和40号引脚。即靠近以太网口的引脚。
根据引脚定义,39引脚是GND,40引脚是gpio引脚。我们把40引脚接到LED的正极,39引脚接到LED负极。通过控制40引脚是否给电压,从而达到控制LED亮与灭。
下面是实际接线图,在LED前要串联一个限流电阻,电阻大小是1K欧姆
- 代码编写
打开Thonny IDE,在里面输入代码
import RPi.GPIO as GPIO #导入树莓派提供的python模块
import time #导入时间包,用于控制闪烁
GPIO.setmode(GPIO.BCM) #设置GPIO模式,BCM模式在所有树莓派通用
GPIO.setup(21, GPIO.OUT) #设置GPIO21为电流输出
while True:
GPIO.output(21, GPIO.HIGH) #GPIO21 输出3.3V
time.sleep(0.05) #程序控制流程睡眠0.05秒
GPIO.output(21, GPIO.LOW) #GPIO21 输出0V
time.sleep(0.05) #程序控制流程睡眠0.05秒
输入完成后,点击绿色按钮运行程序,红色按钮停止程序,在点击绿色按钮后就能看见LED在一闪一闪了。