在python中gpio用while True实现红绿黄三个灯轮流闪,并可以调节时间
时间: 2024-09-19 13:09:30 浏览: 59
在Python中,如果你想要控制GPIO(General Purpose Input/Output)接口实现红绿黄三色LED灯的轮流闪烁,你可以使用`RPi.GPIO`库。首先,需要确保已经安装了这个库,如果没有,可以通过pip安装:
```bash
pip install RPi.GPIO
```
然后,以下是一个基本的示例,利用`while True`循环和定时器来控制灯光的切换:
```python
import RPi.GPIO as GPIO
import time
# 设置GPIO模式为BCM
GPIO.setmode(GPIO.BCM)
# 定义LED灯的GPIO编号
led_red = 18
led_green = 23
led_yellow = 24
# 设置GPIO为输出
GPIO.setup(led_red, GPIO.OUT)
GPIO.setup(led_green, GPIO.OUT)
GPIO.setup(led_yellow, GPIO.OUT)
def light_cycle(color):
GPIO.output(color, GPIO.HIGH) # 开启灯
time.sleep(0.5) # 灯亮0.5秒
GPIO.output(color, GPIO.LOW) # 关闭灯
time.sleep(0.5) # 等待0.5秒
try:
while True:
light_cycle(led_red) # 红灯亮
light_cycle(led_green) # 绿灯亮
light_cycle(led_yellow) # 黄灯亮
except KeyboardInterrupt:
print("Keyboard interrupt detected, cleaning up...")
finally:
GPIO.cleanup() # 清理GPIO,关闭所有输出
print("GPIO cleanup complete.")
```
在这个例子中,通过`light_cycle`函数,我们让每个颜色的LED灯依次点亮并等待一段时间。你可以调整`time.sleep(0.5)`部分的数值来改变灯光闪烁的速度。
阅读全文