找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 13592|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

arduino uno簡(jiǎn)易交通燈控制實(shí)驗(yàn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
簡(jiǎn)易交通燈控制是我們常做的一個(gè)控制實(shí)驗(yàn),本文試圖用arduino uno實(shí)現(xiàn)該控制,控制方法是將簡(jiǎn)易交通燈控制分成6個(gè)程序段,每段用一個(gè)控制函數(shù)表示,在函數(shù)內(nèi)分別設(shè)置各個(gè)交通燈的狀態(tài),在loop程序中循環(huán)執(zhí)行各個(gè)函數(shù),完成交通燈的控制。

簡(jiǎn)易交通燈控制
  • 簡(jiǎn)易交通燈實(shí)驗(yàn)控制時(shí)序
  • 簡(jiǎn)易交通燈控制輸出分配
南北向控制
輸出端
東西向控制
輸出端
紅燈1
LED0
紅燈2
LED3
綠燈1
LED1
綠燈2
LED4
黃燈1
LED2
黃燈3
LED5
  • 簡(jiǎn)易交通燈控制程序設(shè)計(jì)思路
將簡(jiǎn)易交通燈控制分成6個(gè)程序段,每段用一個(gè)控制函數(shù)表示,在函數(shù)內(nèi)分別設(shè)置各個(gè)交通燈的狀態(tài),在loop程序中循環(huán)執(zhí)行各個(gè)函數(shù),完成交通燈的控制。
  • 簡(jiǎn)易交通燈控制程序清單
    1. //為各個(gè)輸出端起別名
    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);  //循環(huán)設(shè)置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);   //點(diǎn)亮LED1(Green1)
    18.   digitalWrite(Led3, HIGH);   //點(diǎn)亮LED3(Red2)
    19.   delay(50000);    //延時(shí)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);   //點(diǎn)亮LED1(Green1)
    27.     delay(500);              //等待500毫秒
    28.   }

    29. }
    30. void Styl3(void) {
    31.   digitalWrite(Led1, LOW);    // 熄滅LED1(Green1)
    32.   digitalWrite(Led2, HIGH);   //點(diǎn)亮LED2(Yellow1)
    33.   delay(5000);    //延時(shí)5秒
    34. }
    35. void Styl4(void) {
    36.   digitalWrite(Led2, LOW);    // 熄滅LED2(Yellow1)
    37.   digitalWrite(Led3, LOW);    // 熄滅LED3(Red2)
    38.   digitalWrite(Led0, HIGH);   //點(diǎn)亮LED0(Red1)
    39.   digitalWrite(Led4, HIGH);   //點(diǎn)亮LED4(Green2)
    40.   delay(50000);    //延時(shí)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);   //點(diǎn)亮LED4(Green2)
    48.     delay(500);            //等待500毫秒
    49.   }

    50. }
    51. void Styl6(void) {
    52.   digitalWrite(Led4, LOW);    // 熄滅LED4(Green2)
    53.   digitalWrite(Led5, HIGH);   //點(diǎn)亮LED5(Yellow2)
    54.   delay(5000);    //延時(shí)5秒
    55. }

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

    以上程序僅供參考。

全部資料51hei下載地址:
簡(jiǎn)易交通燈控制xiao.zip (24.73 KB, 下載次數(shù): 31)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:286466 發(fā)表于 2018-2-28 23:14 | 只看該作者
很好的試驗(yàn),受教了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:92231 發(fā)表于 2018-3-11 06:10 來自手機(jī) | 只看該作者
下載來學(xué)習(xí),真的是好例程,思路清晰,講課時(shí)當(dāng)例子
回復(fù)

使用道具 舉報(bào)

地板
ID:294853 發(fā)表于 2018-3-28 09:28 | 只看該作者
模擬現(xiàn)實(shí)生活中的路口交通燈,實(shí)現(xiàn)以下功能:
①白天東西方向紅燈亮20s;南北方向綠燈亮17s,然后南北方向黃燈閃爍(1s內(nèi)閃爍4次)3s。
②白天東西方向綠燈亮27s,然后東西方向黃燈閃爍(1s內(nèi)閃爍4次)3s;南北方向紅燈亮30s。
③晚上10點(diǎn)至凌晨6點(diǎn)所有燈改為黃燈閃爍。(紅燈、綠燈不亮,只有黃燈閃爍,并且1s內(nèi)閃爍2次)
注意:白天和晚上的時(shí)間可以自己定義。
這個(gè)是怎么做啊
回復(fù)

使用道具 舉報(bào)

5#
ID:761739 發(fā)表于 2020-5-26 16:32 | 只看該作者
受教了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表