此次加上了行人過街按鈕與數碼管,一下子**的複雜度就提高了不少。
1.主要是多工的問題。
使用millis()函式進行多工處理,而不是使用delay();
使用delay()可能會阻止我們在「等待」時執行**,比如這裡就是我們的按鈕,它是需要時刻待命的。而且millis()具有更加準確的時間安排,這裡不再多說。
2.數碼管顯示的資訊與led燈(訊號燈)顯示的資訊應該同步
這裡就需要設定乙個好的出發點,比如我們的
if(nowtime-pretime1>1000&&(i==0))與
else if(nowtime-pretime2>1000)正好都是一秒後才開始的。
下圖為連線圖,與實際有一點出入,實際是用4位的。(但是我找不到4位的數碼管了)
(因為比較懶,所以使用了巨集定義)
#define red 11
#define yellow 9
#define green 10
#define button 12
#define dw digitalwrite
#define pm pinmode
unsigned
long nowtime=
0,pretime1=
0,pretime2=0;
int state=
0,i=
0,j=
0,j_pre=
0,k=
3,temp=
0,t=1;
void
setup()
void
loop()
if(nowtime-pretime1>
3000
&&(i==1)
)if(nowtime-pretime1>
3000
&&(i==2)
)if(state==1)
if(i==0)
//yellow on ,數碼管不亮。
else
if(nowtime-pretime2>
1000)}
void
cross()
void
displaydigit
(unsigned
char digit)
//digit ->we want show the num on digitalscreen,,
//1,
//2,
// 3};
//a b c ...
//2 3 4 ...
for(
unsigned
char x=
0; x<
7; x++)dw
(2+x, abcdefgh[digit]
[x])
;}
arduino行人可控交通燈
1實現目標 通常情況下,機動車道綠燈常亮,行人通道紅燈常亮 當行人按下按鈕後,機動車道的燈由綠變黃再變紅,行人通道的燈由紅變綠 一段時間後,行人通道綠燈頻閃提醒 頻閃結束,行人通道綠燈變紅燈,機動車道紅燈變綠燈,再變黃燈。行人兩次有效按下按鈕的時間控制為大於10秒,每乙個時期lcd屏將作為補充提醒,...
java執行緒簡單模擬交通燈
color brown b size medium 最近溫習多執行緒通訊,所以用多執行緒簡單模擬了交通燈,感覺自己對執行緒方面的東西又有了進一步的理解。size b color b 通過這個模擬明白了notify 與wait 又一些特點。下面將 貼上 b b 交通燈類 b package com.x...
Arduino 數碼管LED屏驅動
今天測試數碼管led屏驅動,用某產品的乙個共陰極的led屏,依據電路圖做數碼管led屏的檢測。寫得有些冗長,有好幾種驅動的方法,這裡僅僅是當中一種最直接的方案,抽出時間要做個更有效率的呼叫和驅動的方案。設定陰極介面 int d1 1 int d2 2 int d3 3 int d4 4 int d5...