超音波距離センサ
Maker Faire Tokyo 2013のFabxFab様のブースで購入した超音波距離センサを使ってみます。
必要なもの
秋月で販売しているパララックス社のセンサも似たような感じで使えると思います。
手順
- SDM-IOのV5.0ピンをArduinoの5Vピンに接続する。
- SDM-IOのGNDピンをArduinoのGNDピンに接続する。
- SDM-IOのTRIGピンをArduinoのデジタル8ピンに接続する。
- スケッチを書き込む。
- シリアルモニタを表示させ、超音波センサの前に手をかざしてみる。
スケッチ
| #define TRIG_PIN 8
#define SPEED_OF_SOUND 340.29 #define INTERVAL 200 #define ADJUSTMENT 3 #define TIMEOUT 18000 #define INIT_PULSE_WIDTH 10
unsigned long beginTime;
unsigned long endTime;
unsigned long elapsedTime;
unsigned int echobackPulseWidth;
float distance;
void setup()
{
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
digitalWrite(TRIG_PIN, HIGH);
}
void loop()
{
pinMode(TRIG_PIN, OUTPUT);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(INIT_PULSE_WIDTH);
digitalWrite(TRIG_PIN, HIGH);
beginTime = micros();
pinMode(TRIG_PIN, INPUT);
echobackPulseWidth = pulseIn(TRIG_PIN, LOW, TIMEOUT);
if (echobackPulseWidth == 0) {
Serial.println("distance: -");
} else {
endTime = micros(); elapsedTime = endTime - beginTime - echobackPulseWidth;
distance = elapsedTime * SPEED_OF_SOUND / 10000 / 2 - ADJUSTMENT;
Serial.print("distance: ");
Serial.print(distance);
Serial.println("[cm]");
}
delay(INTERVAL);
}
|
備考
公式のデータシートを見つけられなかったので、下記サイトを参考にしました。
参考
Amazon