用双色LED灯做一个简单的单向红绿灯 用Python语言编写一个程序实现如下功能:绿灯亮7秒闪3秒-->黄灯亮3秒-->红灯亮10秒,再次循环
时间: 2024-02-12 10:09:33 浏览: 195
一个简单的红绿灯模拟程序
好的,我来给你写一个简单的Python程序,实现你的要求。需要先确定一下使用的开发板型号和接线方式,以便正确控制GPIO口。假设我们使用的是树莓派3B+开发板,GPIO口分别连接红、黄、绿三个LED灯,其中红灯连接GPIO口17,黄灯连接GPIO口27,绿灯连接GPIO口22。代码如下:
```python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM) # 设置GPIO口编号模式为BCM
GPIO.setwarnings(False) # 忽略GPIO口警告信息
# 定义三个LED灯的GPIO控制口
red_led = 17
yellow_led = 27
green_led = 22
# 初始化三个LED灯的GPIO口状态
GPIO.setup(red_led, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(yellow_led, GPIO.OUT, initial=GPIO.LOW)
GPIO.setup(green_led, GPIO.OUT, initial=GPIO.LOW)
# 循环执行交通灯控制程序
while True:
# 绿灯亮7秒闪3秒
GPIO.output(green_led, GPIO.HIGH)
time.sleep(7)
GPIO.output(green_led, GPIO.LOW)
time.sleep(3)
# 黄灯亮3秒
GPIO.output(yellow_led, GPIO.HIGH)
time.sleep(3)
GPIO.output(yellow_led, GPIO.LOW)
# 红灯亮10秒
GPIO.output(red_led, GPIO.HIGH)
time.sleep(10)
GPIO.output(red_led, GPIO.LOW)
```
上述代码中,我们使用了树莓派的GPIO口控制LED灯的亮灭,通过 `time` 模块实现了延时等待,从而实现了红绿灯的控制。需要注意的是,这里的延时时间单位是秒。如果需要更加精确的控制,可以使用 `time.sleep()` 函数的参数传入毫秒数。同时,为了保证代码的完整性,我们在程序的最开始也导入了 RPi.GPIO 模块,这是树莓派GPIO口控制的必备模块。
阅读全文