找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12368|回复: 4
收起左侧

arduino uno简易交通灯控制实验

[复制链接]
ID:284446 发表于 2018-2-20 05:32 | 显示全部楼层 |阅读模式
简易交通灯控制是我们常做的一个控制实验,本文试图用arduino uno实现该控制,控制方法是将简易交通灯控制分成6个程序段,每段用一个控制函数表示,在函数内分别设置各个交通灯的状态,在loop程序中循环执行各个函数,完成交通灯的控制。

简易交通灯控制
  • 简易交通灯实验控制时序
  • 简易交通灯控制输出分配
南北向控制
输出端
东西向控制
输出端
红灯1
LED0
红灯2
LED3
绿灯1
LED1
绿灯2
LED4
黄灯1
LED2
黄灯3
LED5
  • 简易交通灯控制程序设计思路
将简易交通灯控制分成6个程序段,每段用一个控制函数表示,在函数内分别设置各个交通灯的状态,在loop程序中循环执行各个函数,完成交通灯的控制。
  • 简易交通灯控制程序清单
    1. //为各个输出端起别名
    2. int  Led0 = 2; //Red1
    3. int  Led1 = 3; //Green1
    4. int  Led2 = 4; //Yellow1
    5. int  Led3 = 5; //Red2
    6. int  Led4 = 6; //Green2
    7. int  Led5 = 7; //Yellow2

    8. void setup() {
    9.   unsigned char i;
    10.   for (i = 2; i < 8; i++)
    11.     pinMode(i, OUTPUT);  //循环设置Ledi为输出
    12.   digitalWrite(i, LOW);   //熄灭Ledi
    13. }
    14. void Styl1(void) {
    15.   digitalWrite(Led5, LOW);    // 熄灭LED5(Yellow2)
    16.   digitalWrite(Led0, LOW);    // 熄灭LED0(Red1)
    17.   digitalWrite(Led1, HIGH);   //点亮LED1(Green1)
    18.   digitalWrite(Led3, HIGH);   //点亮LED3(Red2)
    19.   delay(50000);    //延时50秒
    20. }
    21. void Styl2(void) {
    22.   unsigned char i;
    23.   for (i = 0; i < 6; i++) {
    24.     digitalWrite(Led1, LOW);    // 熄灭LED1(Green1)
    25.     delay(500);              //等待500毫秒
    26.     digitalWrite(Led1, HIGH);   //点亮LED1(Green1)
    27.     delay(500);              //等待500毫秒
    28.   }

    29. }
    30. void Styl3(void) {
    31.   digitalWrite(Led1, LOW);    // 熄灭LED1(Green1)
    32.   digitalWrite(Led2, HIGH);   //点亮LED2(Yellow1)
    33.   delay(5000);    //延时5秒
    34. }
    35. void Styl4(void) {
    36.   digitalWrite(Led2, LOW);    // 熄灭LED2(Yellow1)
    37.   digitalWrite(Led3, LOW);    // 熄灭LED3(Red2)
    38.   digitalWrite(Led0, HIGH);   //点亮LED0(Red1)
    39.   digitalWrite(Led4, HIGH);   //点亮LED4(Green2)
    40.   delay(50000);    //延时50秒
    41. }
    42. void Styl5(void) {
    43.   unsigned char j;
    44.   for (j = 0; j < 6; j++) {
    45.     digitalWrite(Led4, LOW);    // 熄灭LED4(Green2)
    46.     delay(500);              //等待500毫秒
    47.     digitalWrite(Led4, HIGH);   //点亮LED4(Green2)
    48.     delay(500);            //等待500毫秒
    49.   }

    50. }
    51. void Styl6(void) {
    52.   digitalWrite(Led4, LOW);    // 熄灭LED4(Green2)
    53.   digitalWrite(Led5, HIGH);   //点亮LED5(Yellow2)
    54.   delay(5000);    //延时5秒
    55. }

    56. void loop() {
    57.   Styl1();
    58.   Styl2();
    59.   Styl3();
    60.   Styl4();
    61.   Styl5();
    62.   Styl6();
    63. }
    复制代码

    以上程序仅供参考。

全部资料51hei下载地址:
简易交通灯控制xiao.zip (24.73 KB, 下载次数: 31)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:286466 发表于 2018-2-28 23:14 | 显示全部楼层
很好的试验,受教了。 t.png
回复

使用道具 举报

ID:92231 发表于 2018-3-11 06:10 来自手机 | 显示全部楼层
下载来学习,真的是好例程,思路清晰,讲课时当例子
回复

使用道具 举报

ID:294853 发表于 2018-3-28 09:28 | 显示全部楼层
模拟现实生活中的路口交通灯,实现以下功能:
①白天东西方向红灯亮20s;南北方向绿灯亮17s,然后南北方向黄灯闪烁(1s内闪烁4次)3s。
②白天东西方向绿灯亮27s,然后东西方向黄灯闪烁(1s内闪烁4次)3s;南北方向红灯亮30s。
③晚上10点至凌晨6点所有灯改为黄灯闪烁。(红灯、绿灯不亮,只有黄灯闪烁,并且1s内闪烁2次)
注意:白天和晚上的时间可以自己定义。
这个是怎么做啊
回复

使用道具 举报

ID:761739 发表于 2020-5-26 16:32 | 显示全部楼层
受教了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表