用python使用七段数码管方法,制作一个红灯绿灯各30秒的带倒计时的红绿灯,黄灯3秒
时间: 2023-06-13 18:06:52 浏览: 274
以下是使用七段数码管制作红绿灯的Python代码:
```python
import time
import RPi.GPIO as GPIO
# 定义GPIO引脚
LED_PIN = [11, 12, 13, 15, 16, 18, 22]
# 定义数字0-9对应的七段数码管编码
NUMBERS = {'0': (1, 1, 1, 1, 1, 1, 0),
'1': (0, 1, 1, 0, 0, 0, 0),
'2': (1, 1, 0, 1, 1, 0, 1),
'3': (1, 1, 1, 1, 0, 0, 1),
'4': (0, 1, 1, 0, 0, 1, 1),
'5': (1, 0, 1, 1, 0, 1, 1),
'6': (1, 0, 1, 1, 1, 1, 1),
'7': (1, 1, 1, 0, 0, 0, 0),
'8': (1, 1, 1, 1, 1, 1, 1),
'9': (1, 1, 1, 1, 0, 1, 1)}
# 初始化GPIO
GPIO.setmode(GPIO.BOARD)
for pin in LED_PIN:
GPIO.setup(pin, GPIO.OUT)
# 定义函数显示数字
def display_number(number):
for i, pin in enumerate(LED_PIN):
if NUMBERS[number][i] == 1:
GPIO.output(pin, GPIO.HIGH)
else:
GPIO.output(pin, GPIO.LOW)
# 红灯亮30秒
display_number('0')
time.sleep(30)
# 绿灯亮30秒
display_number('8')
time.sleep(30)
# 黄灯亮3秒
display_number('1')
time.sleep(3)
# 清除数码管
for pin in LED_PIN:
GPIO.output(pin, GPIO.LOW)
# 释放GPIO资源
GPIO.cleanup()
```
注:以上代码是在树莓派上使用七段数码管的情况下编写的,如果你没有七段数码管可以将代码修改为输出到控制台。
阅读全文