当前位置:首页 » 《随便一记》 » 正文

Proteus十字路口交通灯_亓冕的博客

24 人参与  2022年02月18日 17:40  分类 : 《随便一记》  评论

点击全文阅读


本实验使用的是树莓派3的GPIO口连接:
在这里插入图片描述

原理图:
在这里插入图片描述

本实验代码使用的编译环境为Python↓

代码示例:

import time
import RPi.GPIO  as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)

#南北灯接口对应GPIO
GREEN_A = 16
YELLOW_A = 18
RED_A = 7
#东西灯对应GPIO
GREEN_B = 32
YELLOW_B = 31
RED_B = 29

def LIANG_A():

    GPIO.output(YELLOW_A, GPIO.HIGH)
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.LOW)  # 南北红灯亮2秒
    GPIO.output(YELLOW_B, GPIO.HIGH)
    GPIO.output(GREEN_B, GPIO.LOW)  # 东西绿灯亮2秒
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(2)

    GPIO.output(YELLOW_A, GPIO.HIGH)
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.LOW) # 南北红灯亮2秒
    GPIO.output(YELLOW_B, GPIO.LOW)  # 东西黄灯亮2秒
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(2)
    #1黄灯闪烁
    GPIO.output(YELLOW_B, GPIO.HIGH)  # 东西黄灯不亮0.25秒
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(0.25)

    GPIO.output(YELLOW_B, GPIO.LOW)  # 东西黄灯亮0.25秒
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(0.25)
    #2黄灯闪烁
    GPIO.output(YELLOW_B, GPIO.HIGH)  # 东西黄灯不亮0.25秒
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(0.25)

    GPIO.output(YELLOW_B, GPIO.LOW)  # 东西黄灯亮0.25秒
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(0.25)
	#3黄灯闪烁
    GPIO.output(YELLOW_B, GPIO.HIGH)  # 东西黄灯不亮0.25秒
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(0.25)
    
    GPIO.output(YELLOW_B, GPIO.HIGH)  # 南北黄灯不亮0.25秒
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(0.25)
	
    GPIO.output(YELLOW_B, GPIO.LOW)  # 东西黄灯亮0.25秒
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.HIGH)
    time.sleep(0.25)
    #
    GPIO.output(YELLOW_A, GPIO.HIGH)
    GPIO.output(GREEN_A, GPIO.LOW) #南北绿灯亮2秒
    GPIO.output(RED_A, GPIO.HIGH)
    GPIO.output(YELLOW_B, GPIO.HIGH)
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.LOW) #东西红灯亮2秒
    time.sleep(2)

    GPIO.output(YELLOW_A, GPIO.LOW) #南北黄灯亮2秒
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.HIGH)
    GPIO.output(YELLOW_B, GPIO.HIGH)
    GPIO.output(GREEN_B, GPIO.HIGH)
    GPIO.output(RED_B, GPIO.LOW)#东西红灯亮2秒
    time.sleep(2)
    #1黄灯闪烁
    GPIO.output(YELLOW_A, GPIO.HIGH)  # 南北黄灯不亮秒
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.HIGH)
    time.sleep(0.25)

    GPIO.output(YELLOW_A, GPIO.LOW)  # 南北黄灯亮0.25秒
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.HIGH)
    time.sleep(0.25)
    #2黄灯闪烁
    GPIO.output(YELLOW_A, GPIO.HIGH)  # 南北黄灯不亮0.25秒
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.HIGH)
    time.sleep(0.25)

    GPIO.output(YELLOW_A, GPIO.LOW)  # 南北黄灯亮0.25秒
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.HIGH)
    time.sleep(0.25)
    #3黄灯闪烁
    GPIO.output(YELLOW_A, GPIO.HIGH)  # 南北黄灯不亮0.25秒
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.HIGH)
    time.sleep(0.25)

    GPIO.output(YELLOW_A, GPIO.LOW)  # 南北黄灯亮0.25秒
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.HIGH)
    time.sleep(0.25)

    GPIO.output(YELLOW_A, GPIO.HIGH)  # 南北黄灯不亮0.25秒
    GPIO.output(GREEN_A, GPIO.HIGH)
    GPIO.output(RED_A, GPIO.HIGH)
    time.sleep(0.25)
    #


# 设置引脚模式并赋予初值
GPIO.setup(YELLOW_A, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(GREEN_A, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(RED_A, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(YELLOW_B, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(GREEN_B, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(RED_B, GPIO.OUT, initial=GPIO.HIGH)

try:
    while True: #循环代码
        LIANG_A()
except KeyboardInterrupt:
    # print("stop by user!")
    GPIO.cleanup()  # 清除引脚状态,回收资源


点击全文阅读


本文链接:http://zhangshiyu.com/post/34958.html

东西  灯不亮  闪烁  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1