|
|
入手arduino第3天,跟着论坛里面的高手教程学习,自己鼓捣出来一个类似倒车雷达的东西,很简陋,自己感觉代码写的也很乱,求抨击,求指教。。。尤其请帮忙看看代码怎么优化优化,目前感觉太累赘了。。顺便问一下,为什么测距不怎么准,还总出现负距离?


原谅我的渣像素。。
代码如下(根据距离不同蜂鸣器发出不同声音)
- #include <LiquidCrystal.h>
-
- LiquidCrystal lcd(12, 11, 10, 9, 8, 7, 6);
- const int TrigPin = 2;
- const int EchoPin = 3;
- float cm;
- int buzzer=4;
- void setup()
- {
- Serial.begin(9600);
- pinMode(TrigPin, OUTPUT);
- pinMode(EchoPin, INPUT);
- pinMode(buzzer,OUTPUT);
- lcd.begin(16, 2);
- lcd.print("Dao Che Lei Da");
- delay(2000);
- }
-
- void loop ()
- {
- digitalWrite(TrigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(TrigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(TrigPin, LOW);
- cm = pulseIn(EchoPin, HIGH) / 58.0;
- cm = (int(cm * 100.0)) / 100.0;
- Serial.print(cm);
- Serial.print("cm");
- Serial.println();
- delay(500);
- lcd.clear();
- lcd.print("Zhu Yi Ju Li");
- lcd.setCursor(0, 1) ;
- lcd.print(cm);
- lcd.print("cm");
- delay(100);
- if (cm < 10)
- {
- unsigned char i;
- {
- for(i=0;i<80;i++)
- {
- digitalWrite(buzzer,HIGH);
- delay(1);
- digitalWrite(buzzer,LOW);音
- delay(1);
- }
- }
- }
- else if (cm < 20)
- {
- unsigned char i;
- {
- for(i=0;i<100;i++)
- {
- digitalWrite(buzzer,HIGH);
- delay(2);
- digitalWrite(buzzer,LOW);
- delay(2);
- }
- }
- }
- else
- {
- digitalWrite(buzzer,HIGH);
- delay(1);
- digitalWrite(buzzer,LOW);音
- delay(1);
- }
- }
复制代码
|
|