/*
HC-SR04超声波测距传感器模块(通用款)
Echo接D2口,接收距离信号
Trig接D1口,触发测距
*/
const int echo=D1; //echO接D1脚
const int trig=D2; //echO接D2脚
void setup(){
Serial.begin(9600); //波特率9600
pinMode(echo,INPUT); //设置echo为输入脚
pinMode(trig,OUTPUT); //设置trig为输出脚
Serial.println("HC-SR04测距开始:");
}
//获取的距离的单位是cm
float getDistance(){
float distance;
digitalWrite(trig,LOW);
delayMicroseconds(20);
digitalWrite(trig,HIGH);
delayMicroseconds(20);
digitalWrite(trig,LOW); //发一个20US的高脉冲去触发Trig
distance = pulseIn(echo,HIGH); //计数接收高电平时间
distance = distance*340/2/10000; //计算距离 1:声速:340M/S 2:实际距离1/2声速距离 3:计数时钟为1US
delay(20); //单次测离完成后加20mS的延时再进行下次测量。防止近距离测量时,测量到上次余波,导致测量不准确。
return distance;
}
void loop(){
Serial.print("距离: ");
Serial.print(getDistance());
Serial.println("cm");
delay(500);
}