2401_84233912 2024-05-23 21:33 采纳率: 0%
浏览 13
已结题

arduino双向交通灯设计

  1. 按照题目要求独立完成Arduino程序设计。
    (2)显示南北两个方向的交通灯状态(红、黄、绿),共12只灯。
    (3)每隔10秒钟切换一个方向,绿灯亮之前黄灯开始闪烁三次结束。
    (4)通过点阵显示当前正在通行的方向和倒计时时间。
    (5)通过按键控制,调整通行时间。
    (6)通过按键设置紧急红灯全亮)。
  • 写回答

28条回答 默认 最新

  • 百锦再@新空间代码工作室 全栈领域优质创作者 2024-05-23 21:34
    关注
    获得0.30元问题酬金

    // 程序设计如下: 
    // 包含Arduino的头文件#include <
    Arduino.h>

    // 定义交通灯的引脚(假设使用数字引脚)const int redNorthPin = 2;
    const int yellowNorthPin = 3;
    const int greenNorthPin = 4;
    const int redSouthPin = 5;
    const int yellowSouthPin = 6;
    const int greenSouthPin = 7;

    // 定义按钮的引脚const int buttonPin = 8;

    // 定义倒计时时间int countdown = 10;
    // 默认10秒
    void setup() {// 初始化交通灯引脚为输出pinMode(redNorthPin, OUTPUT);
    pinMode(yellowNorthPin, OUTPUT);
    pinMode(greenNorthPin, OUTPUT);
    pinMode(redSouthPin, OUTPUT);
    pinMode(yellowSouthPin, OUTPUT);
    pinMode(greenSouthPin, OUTPUT);

    // 初始化按钮引脚为输入pinMode(buttonPin, INPUT);
    }
    void loop() {// 检测按钮是否按下if(digitalRead(buttonPin) == HIGH) {// 紧急红灯全亮allRed();
    } else {// 切换交通灯switchLights();
    }}
    void switchLights() {// 显示南北两个方向的交通灯状态// 显示南方状态digitalWrite(greenNorthPin, HIGH);
    delay(10000);
    // 绿灯亮10秒
    // 倒计时,黄灯开始闪烁for(int i = 0;
    i <
    3;
    i++) {digitalWrite(yellowNorthPin, HIGH);
    delay(500);
    digitalWrite(yellowNorthPin, LOW);
    delay(500);
    }
    // 显示北方状态digitalWrite(greenNorthPin, LOW);
    digitalWrite(yellowNorthPin, LOW);
    digitalWrite(redNorthPin, HIGH);
    digitalWrite(greenSouthPin, HIGH);
    delay(10000);
    // 绿灯亮10秒
    // 倒计时,黄灯开始闪烁for(int i = 0;
    i <
    3;
    i++) {digitalWrite(yellowSouthPin, HIGH);
    delay(500);
    digitalWrite(yellowSouthPin, LOW);
    delay(500);
    }
    // 显示南方状态digitalWrite(greenSouthPin, LOW);
    digitalWrite(yellowSouthPin, LOW);
    digitalWrite(redSouthPin, HIGH);
    }
    void allRed() {// 全部红灯亮digitalWrite(redNorthPin, HIGH);
    digitalWrite(yellowNorthPin, LOW);
    digitalWrite(greenNorthPin, LOW);
    digitalWrite(redSouthPin, HIGH);
    digitalWrite(yellowSouthPin, LOW);
    digitalWrite(greenSouthPin, LOW);
    }

    有问题你别着急,评论留言都可以,看到马上就回复,尽量及时补充齐
    评论

报告相同问题?

问题事件

  • 系统已结题 5月31日
  • 赞助了问题酬金15元 5月23日
  • 创建了问题 5月23日

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错