前言
最近花了1000多元入手了一块树莓派4B,其丰富的GPIO嘴巴可以完全满足我的各种想法。因为硬件接触少,我也属于在探索中学习。在做实验和记录的同时,欢迎纠正补充讨论,以便与您共同进步!
硬件介绍
LED
全称Light Emitting Diode
,即发光二极管。、、、,属于冷光源。
- 。LED 灯的响应时间为,白炽灯的响应时间应达到。
- 。例如,砷化镓二极管的发生,磷化镓二极管发,碳化硅二极管发,氮化镓二极管发。
- 。工作电压通常为,电流在,亮度随电流而变化。
在我看来,硬件首次点亮LED,就像第一次学习编程时在终端打印一样 一般意义重大。
参数分析
树莓派GPIO口的为,同时,所有引脚的总输出电流不得超过,输出电压高电平为,低电平为。为了防止引脚电流过大烧坏树莓派,需要在电路中串联,下面估计电阻大小。
由 R = U ? U l i R = \frac{U - U_l}{i} R=iU?Ul 取LED,,计算得 R = 3.3 ? 1.8 15 × 1 0 ? 3 = 100 Ω R = \frac{3.3 - 1.8}{15\times 10^{-3}} = 100\Omega R=15×10−33.3−1.8=100Ω
实物接线图
我选择的是,大家也可以按照自己的喜好去选择。
至此,硬件工作全部完成。
软件实现
Python版
方法一
使用RPi.GPIO
库完成对LED的控制,代码如下:
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False) #忽略引脚占用警告
GPIO.setmode(GPIO.BOARD) #设置引脚模式为BOARD模式(物理引脚)
GPIO.setup(12, GPIO.OUT, initial = GPIO.LOW) #设置第12号引脚(GPIO 18)为输出模式,初始化为低电平
while True:
GPIO.output(12, GPIO.HIGH) #指定12号引脚输出高电平
time.sleep(1) #睡眠1秒
GPIO.output(12, GPIO.LOW) #指定12号引脚输出低电平
time.sleep(1) #睡眠1秒
方式二
gpiozero
库完成对LED的控制,代码如下:
import gpiozero as GPIO
import time
led = GPIO.LED(18) #设置GPIO 18引脚控制LED
while True:
led.on() #开灯
time.sleep(1) #睡眠1秒
led.off() #关灯
time.sleep(1) #睡眠1秒
实验现象为LED灯亮一秒,灭一秒,如此往复。
C语言版
…待补充
C++版
…待补充
遇到的问题
-
接线之后,运行程序,LED灯不亮。
答: 绝大部分的异常问题源于接线。首先 检查LED灯正负极是否正确接入;其次 检查各连接点处有无断路(或接触不良);再次 检查LED元件和电阻元件是否被烧坏;最后 尝试更换小电阻值的电阻(因电流过小而亮度不明显)。如上述操作未排查出异常,可以考虑程序方面的问题。首先 运行程序,查看是否存在报错;其次 确认程序设置的引脚是否和实际接线引脚对应;再次 确认赋高低电平的程序段正常运行;最后 更换别的GPIO口进行测试。 -
…待补充
总结
恭喜你!至此你成功使用树莓派点亮了一盏小灯,并且学会了控制它的亮灭。相信我,在你的整个学习生涯中,这将会是具有色彩和温度的记忆。