ESP32 HC-SR04による距離測定

JH7UBC 2020.2.10


ESP32で超音波センサーHC-SR04を使って距離を測定するテストです。
原理はmicro:bitで行った実験と同じです。簡単な説明の図です。

スケッチです。測定した距離はシリアルモニタにcm単位で表示します。
HC-SR04に送るトリガーパルスの幅は10usです。

/*
 * ESP32 HC-SR04による距離の測定
 * 2020.2.10
 * JH7UBC Keiji Hata
 */

#define Trigger_Pin 17
#define Echo_Pin 16
int V = 340;//音速

void setup() {
  Serial.begin(115200);
  pinMode(Trigger_Pin, OUTPUT);
  pinMode(Echo_Pin, INPUT);
  digitalWrite(Trigger_Pin, LOW);
}

//Send Trigger pulse
void sendTrigger(){
  digitalWrite(Trigger_Pin,HIGH);
  delayMicroseconds(10);
  digitalWrite(Trigger_Pin, LOW);
}

void loop() {
  sendTrigger();

  while(!digitalRead(Echo_Pin)){ 
  }
  unsigned long t1 = micros();

  while(digitalRead(Echo_Pin)){
  }
  unsigned long t2 = micros();
  unsigned long t = t2 - t1;
  Serial.print(V * t /20000);
  Serial.println("cm");
  delay(1000);
}

測定の様子です。

micro:bitの時と同様に1mくらいまでは、けっこう正確に距離を測定できますが。1mを超えたあたりから測定値のばらつきが大きくなります。

inserted by FC2 system