这里我们需要两个硬件:
- Arduino UNO开发板
- HC-SRO4超声波传感器
代码:
const int TrigPin = 2;
const int EchoPin = 3;
float cm;
void setup()
{ Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(13, OUTPUT);
}
void loop()
{ digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
cm = pulseIn(EchoPin, HIGH) / 58; //将回波时间换算成cm
cm = (int(cm * 100)) / 100; //保留两位小数
if (cm < 10)
{digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
}
else if (cm > 10 && cm < 50)
{digitalWrite(13, HIGH);
delay(300);
digitalWrite(13, LOW);
}
else if (cm > 50)
{digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
}
Serial.print(cm);
Serial.print(“cm”);//串口输出
Serial.println();
}
1、距离足够远时,灯常亮
2、准备接近物体时,灯闪烁,但速度较慢
3、即将碰到物体时,灯快速闪烁