通過arduino IDE寫的一個利用超聲波檢測是否有人的一個智能交通燈程序
資料下載:
智能交通燈.7z
(1.26 KB, 下載次數: 23)
2017-7-18 20:39 上傳
點擊文件名下載附件
通過arduino寫的一個智能交通燈程序,可能有待改進,不過基本可用 用超聲波模塊進行檢測是否有人 下載積分: 黑幣 -5
- int T = 2;
- int E = 3;
- int RedPin2=13;
- int YellowPin2=12;
- int GreenPin2=11;
- int RedPin1=10;
- int YellowPin1=9;
- int GreenPin1=8;
- float cm;
- int i=0;
- void setup()
- {
- pinMode(RedPin1,OUTPUT);
- pinMode(YellowPin1,OUTPUT);
- pinMode(GreenPin1,OUTPUT);
- pinMode(RedPin2,OUTPUT);
- pinMode(YellowPin2,OUTPUT);
- pinMode(GreenPin2,OUTPUT);
-
- Serial.begin(9600);
- pinMode(T, OUTPUT);
- pinMode(E, INPUT);
- }
- void loop()
- {
- digitalWrite(RedPin1,HIGH);
- digitalWrite(GreenPin2,HIGH);
- digitalWrite(T, LOW); //低高低電平發一個短時間脈沖去TrigPin
- delayMicroseconds(2);
- digitalWrite(T, HIGH);
- delayMicroseconds(10);
- digitalWrite(T, LOW);
- cm = pulseIn(E, HIGH) / 58.0; //將回波時間換算成cm
- cm = (int(cm * 100.0)) / 100.0; //保留兩位小數
- Serial.print(cm);
- Serial.print("cm");
- Serial.println();
- delay(1000);
- if(cm>19 && cm<24) //二號路
- {
- digitalWrite(RedPin1,HIGH);
- digitalWrite(GreenPin2,HIGH);
- }
-
- else if(12.5<cm && cm<32) //一號路
- {
- if(i==0)
- {
- for(i=0;i<1;i++)
- {
- digitalWrite(GreenPin2,LOW);
- digitalWrite(YellowPin2,HIGH);
- delay(2000);
- digitalWrite(YellowPin2,LOW);
- }
- }
-
- while(i)
- {
- digitalWrite(RedPin1,LOW);
- digitalWrite(RedPin2,HIGH);
- digitalWrite(GreenPin1,HIGH);
- digitalWrite(GreenPin2,LOW);
- digitalWrite(T, LOW); //低高低電平發一個短時間脈沖去TrigPin
- delayMicroseconds(2);
- digitalWrite(T, HIGH);
- delayMicroseconds(10);
- digitalWrite(T, LOW);
- cm = pulseIn(E, HIGH) / 58.0; //將回波時間換算成cm
- cm = (int(cm * 100.0)) / 100.0; //保留兩位小數
- Serial.print(cm);
- Serial.print("cm");
- Serial.println();
- delay(1000);
- if(cm<12.5 || cm>32)
- {
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
|