ESP-WROOM02https://blog.with2.net/link/?1965529制作構想では測距センサにはGP2Y0A21YKを使うつもりなのでアナログ入力についても検証しておきます。ESP-WROOM-02ではアナログ入力ポートはTOUT一か所のみらしく、しかもかかけられる最大電圧は1Vということらしい。ラインより入力することにし、出力1V以下となるよう抵抗分圧(5.6K+1K)することにした。試験回路さらに調べているとESP-WROOM02ではanalogRead();が使えないという記事があり、代わりにsystem_adc_read();という関数を使うという。別記事にはanalogRead();を使った例もあるのでこの際両方を試してみることにしました。結論か言えばどちらも使えました。使用したESP-WROOM0-2のファームウエアのバージョンは以下のようなものです。analogRead()からです。15行目の0.5は抵抗分圧した関係で追加した補正値ですが、実際の分圧値からすると妙な補正値ですがこれは現物合わせで決定したものです。このセンサの出力電圧と計測距離は正比例しているわけではなく図のように奇妙な関係になっていて、適当な換算式を作って現物合わせしているのが現状なのでこれで良いのだと思います。今回の使用目的が距離20cmから10cmでの障害物を検知するということなのでこの範囲で現物合わせをしています。結果は以下のようなものです。距離15cmに障害物を置いた場合の測定値です。このセンサは時たまとんでもない値を出力することがある(おそらくノイズが原因)のですが今回は安定しているようです。次にsystem_adc_read()でのスケッチと結果です。同一条件下での測定ですがanalogReadとは測定結果が微妙に異なります。20cm以上という値がでたりしています。原因は不明ですが回避運動の閾値と回避動作を工夫すれば問題はないと思います。記事は見つかりませんでした。スマホでLチカを試すこのサイトについて主にArduinoを使ってのモノ作りを紹介しています。電子工作とは無縁であった古希を迎えた元機械技術者の悪戦苦闘の記録です。Arduinoで距離センサーを使ってみるブログランキングブログランキングに参加しています。よかったらクリックしてください。クリックが投票になります。