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

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 爬取网页内容并保存需要完整的python代码
  • ¥30 NIRfast软件使用指导
  • ¥20 matlab仿真问题,求功率谱密度
  • ¥15 求micropython modbus-RTU 从机的代码或库?
  • ¥15 铜与钢双金属板叠加在一起每种材料300mm长,18mm宽,4mm厚一端固定并加热至80℃,当加热端温度保持不变时另一端的稳态温度。ansys
  • ¥15 django5安装失败
  • ¥15 Java与Hbase相关问题
  • ¥15 后缀 crn 游戏文件提取资源
  • ¥15 ANSYS分析简单钎焊问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了