LED也即是发光二极管,是一种固态半导体器件,具备将电能转换为可见光的特性。其核心是一个半导体晶片,晶片的一端与支架相连,另一端则与电源正极相连,整体被环氧树脂封装保护。那么下面这款LED交通信号灯模块是利用了三颗led灯串联的形式共同使用一个负极。 如果只接其中一颗led灯的正极那么只会亮一颗led。 如果同时接三个正极则会三颗led同时亮。
通过上述逻辑我们已知给交通信号灯模块是共负极,如果其中一个针脚输入正极就能点亮其中一颗led灯,我们在树莓派上来设定一个Python程序,通过控制每个引脚输出高电平时间,从而实现模拟红绿灯效果!
LED交通信号灯模块 | 树莓派开发板 |
GND | GND |
R | GPIO27 (BCM16) |
Y | GPIO29 (BCM21) |
G | GPIO28 (BCM20) |
树莓派主板GPIO引脚图
以下树莓派的Python代码设定正极输出高电平时间为:红灯10秒,绿灯8秒,黄灯3秒,
import RPi.GPIO as GPIO import time # 设置 GPIO 模式为 BCM GPIO.setmode(GPIO.BCM) # 配置 GPIO16、GPIO20 和 GPIO21 为输出引脚 GPIO.setup(16, GPIO.OUT) GPIO.setup(20, GPIO.OUT) GPIO.setup(21, GPIO.OUT) while True: # GPIO16 输出高电平 10 秒 GPIO.output(16, GPIO.HIGH) time.sleep(10) GPIO.output(16, GPIO.LOW) # GPIO20 输出高电平 8 秒 GPIO.output(20, GPIO.HIGH) time.sleep(8) GPIO.output(20, GPIO.LOW) # GPIO21 输出高电平 3 秒 GPIO.output(21, GPIO.HIGH) time.sleep(3) GPIO.output(21, GPIO.LOW)
运行程序后效果如下:红灯10秒,绿灯8秒,黄灯3秒”一直循环。