0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

超音波センサーの設置場所を調整

0
Last updated at Posted at 2026-02-06

前回はプロトタイプが概ね完成したものの、距離が65cmの結果となっていたね。
管の長さは100cmだから35cmも誤差があるよ。

超音波センサはこんな感じで管の中を覗き込むように配置してるんだけど、これが原因かもしれない。
image.png
なんかね、管の内部はツルツルのように見えて些細な凹凸があるらしい。
その凹凸に超音波が反射して帰ってくるのが65cmくらいの所にあるかもしれないんだって。

なら、管を覗き込まずに見下ろせばよいんじゃない?
image.png

1 : 19c 606mm sended.
1 : 19c 991mm sended.
1 : 19c 991mm sended.
1 : 20c 993mm sended.
1 : 19c 995mm sended.

こうしたら結果は99cmくらいの結果を返してくれるようになったよ。
やっぱり原因は管の内部にありそうだなあ。

ソースコードで電圧を調整する部分も修正加えたけど、やはり距離の誤差はほとんど影響なかった。
管の外で測ったら妥当な数値が出るなら物理的な問題じゃないかなあ。

とりあえず超音波センサは管の外へ向ければ解決できそうだし、これでいきましょ。

image.png
という訳で超音波センサーを筒の外から見下ろす形で造形。
image.png
覗き穴は円形から四角形へ変更したよ。
image.png
できた!
image.png
こんな感じで装着。これなら超音波センサーが落下しにくい筈。
image.png
ところが、想定とは違う距離を計測しているんだよね。

想定は、こう。
超音波センサーから80cmの地点を0cmの基準にしたいんだ。
image.png
つまり、泥に刺さっていない今は-20cmが正しい測定値になる筈なんだ。
計算式でも間違えてるのかなー?

  long duration = pulseIn(ECHO, HIGH);
  int 距離 = (int)(duration * soundSpeed / 2.0);
  int 水位 = 800 - 距離;

超音波センサから800mmの距離が水位0mmの基準だよ。
つまり超音波センサが1000mmを算出すれば液晶には-200mmと表示されて欲しいし、超音波センサが700mmを算出すれば液晶には100mmと表示されて欲しい。

室内では管が埋まってないから超音波センサは1000mmを算出する筈なんだ。
だから液晶には-200mmが表示される想定なのに、実際には11mmと表示されている。

何かがおかしいんだよなあ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?