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

2021-10-02 04:44:11 字數 1633 閱讀 8948

此次加上了行人過街按鈕與數碼管,一下子**的複雜度就提高了不少。

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...