超音波距離センサ HC-SR04(4pin)をArduinoで3pinのセンサとして制御する
HC-SR04という超音波距離センサがアマゾンで安かったので買ってみました。
※10個で購入なので、なんと一個あたり\110っていう!!
HC-SR04 超音波距離センサーモジュール セット数が増えると価格はもっと格安! For Arduino 10pcs
- 出版社/メーカー: サインスマート(SainSmart)
- メディア: エレクトロニクス
- この商品を含むブログを見る
ただこのセンサ、TrigとEchoで1pinずつ使うので、
制御するためには2つのピンを制御する必要があり、若干めんどくさい。
とか思いながら色々しらべてたら、TrigとEchoをショートさせて
制御してもいけるって記事をどこかで見つけてやってみたところ、うまく動いた。
ソースは下記
#include <NewPing.h> #define PING_PIN 12 // Arduino pin for both trig and echo NewPing sonar(PING_PIN, PING_PIN ); void setup() { Serial.begin(115200); } void loop() { delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS). Serial.print("Ping: "); Serial.print(uS / US_ROUNDTRIP_CM); // convert time into distance Serial.println("cm"); }
※ 2019.09.02 補足で追記
HC-SR04は検出距離内に物体が無いと信号がおかしくなるとの現象があるようです。
akizukidenshi.com
下記は、即席の打開策です
www.suwa-koubou.jp
最近では、下記の方が良いとなっているようです。使い方は既存のHC-SR04と同様の使い方で行けるようです。
(ただし上のソースみたいに3ピンでの制御はできません、あしからず)
akizukidenshi.com