通过arduino IDE写的一个利用超声波检测是否有人的一个智能交通灯程序
资料下载:
智能交通灯.7z
(1.26 KB, 下载次数: 23)
- 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黑下载附件…………
复制代码
|