arduino行人可控交通燈

2021-10-07 23:44:05 字數 1699 閱讀 4015

1實現目標:

通常情況下,機動車道綠燈常亮,行人通道紅燈常亮;當行人按下按鈕後,機動車道的燈由綠變黃再變紅,行人通道的燈由紅變綠;一段時間後,行人通道綠燈頻閃提醒;頻閃結束,行人通道綠燈變紅燈,機動車道紅燈變綠燈,再變黃燈。行人兩次有效按下按鈕的時間控制為大於10秒,每乙個時期lcd屏將作為補充提醒,顯示行人和機動車的通行狀態。同時蜂鳴器會在行人按下按鈕和機動車再次行駛時發出提醒。

2**部分:

#include const int rs=12,en=11,d4=5,d5=4,d6=3,d7=2;

liquidcrystal lcd(rs,en,d4,d5,d6,d7);

int northsouthr=a5;

int northsouthg=8;

int northsouthy=6;

int peoeastwestr=a3;

int peoeastwestg=a4;

int button = 1;

int peocrosstime = 10000;//兩次按下按鈕至少間隔的時間

int soundpin = 9;

unsigned long switchtime;

void setup()

void loop() //按鈕檢測

}void peoplego()//改變交通燈的函式

digitalwrite(northsouthr,high);

delay(1000);

digitalwrite(peoeastwestr,low);

digitalwrite(peoeastwestg,high);

delay(peocrosstime);

lcd.clear();

lcd.begin(16,2);

lcd.print("please quickly!");

for(int j=0;j<5;j++)

lcd.clear();

digitalwrite(peoeastwestr,high);

delay(2000);

digitalwrite(northsouthy,high);

digitalwrite(northsouthr,low);

lcd.clear();

lcd.begin(16,2);

lcd.print("car time again!");

delay(3000);

digitalwrite(northsouthg,high);

digitalwrite(northsouthy,low);

switchtime = millis();

digitalwrite(soundpin,high);

delay(500);

digitalwrite(soundpin,low);

lcd.clear();

lcd.begin(16,2);

lcd.print("car go!");

}

3實物連線圖:

交通燈控制

問題描述,十字路,東西方向和南北方向燈,綠20s黃5s紅25s,倒計時顯示時間,另外,警車救護車等特殊狀態,都顯紅燈,且時間顯示不斷閃爍,通過之後,恢復原狀態。以下是我編寫的源 library ieee use ieee.std logic 1164.all use ieee.std logic u...

智慧型交通燈

交通燈有很多種型別,下面這個,還是比較簡單的。東西 a 南北 b 兩幹道交於乙個十字路口,各幹道有一組紅 黃 綠三色的指示燈,要求用微控制器控制交通燈,實現以下功能 1 a 道和b道上均有車輛要求通過時,a b道輪流放行。a道放行5分鐘 除錯時改為5秒鐘 b道放行4分鐘 除錯時改為4秒鐘 4 綠燈轉...

Arduino 模擬交通燈( 數碼管讀秒)

此次加上了行人過街按鈕與數碼管,一下子 的複雜度就提高了不少。1.主要是多工的問題。使用millis 函式進行多工處理,而不是使用delay 使用delay 可能會阻止我們在 等待 時執行 比如這裡就是我們的按鈕,它是需要時刻待命的。而且millis 具有更加準確的時間安排,這裡不再多說。2.數碼管...