共八盏灯做跑马灯,编程实现每次点亮两站LED灯
时间: 2024-09-19 13:01:07 浏览: 39
为了实现一个简单的跑马灯效果,即共8盏灯每隔一定时间依次点亮两盏,可以采用类似上述的编程思路,这里我们假设每两盏灯作为一个独立的“站”。以下是使用Python和RPi.GPIO库在Raspberry Pi上的一种实现方法:
```python
import RPi.GPIO as GPIO
import time
# 假设灯泡编号从0开始,每个站包含两盏灯
lights = [14, 15, 17, 18, 21, 22, 23, 24] # 这里只是示例,实际需根据硬件连接进行调整
# 初始化GPIO并设置为输出模式
GPIO.setmode(GPIO.BCM)
for light in lights:
GPIO.setup(light, GPIO.OUT)
def cycle_lights():
for i in range(0, len(lights), 2): # 两步一跳,每次循环点亮两盏灯
# 点亮第一盏灯
GPIO.output(lights[i], GPIO.HIGH)
print(f"Light {lights[i]} is on")
# 等待片刻,例如0.5秒
time.sleep(0.5)
# 点亮第二盏灯
if i + 1 < len(lights):
GPIO.output(lights[i+1], GPIO.HIGH)
print(f"Light {lights[i+1]} is on")
# 再等待片刻
time.sleep(0.5)
# 关闭两盏灯
GPIO.output(lights[i], GPIO.LOW)
GPIO.output(lights[i+1], GPIO.LOW)
while True: # 无限循环,持续跑马灯效果
cycle_lights()
# 可以增加一个计数器或定时器,限制整个周期的长度,防止灯长时间全亮
# 结束时清理GPIO
GPIO.cleanup()
```
阅读全文