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を超えたあたりから測定値のばらつきが大きくなります。
※コメント投稿者のブログIDはブログ作成者のみに通知されます