HC-SR04で距離をはかってみる
買ったはいいものの、また積んでいた超音波センサ。動かしてみた
こちらを参考に。
ソースはこんな感じ。
そのうち温度補正いれるかもなのと、キー入力で動作、停止をいれた。
#define echoPin 2 // Echo Pin #define trigPin 3 // Trigger Pin char op_mode = 0; char key_in = 0; double period = 0.0; double dist = 0.0; double temp = 25.0; double spd = 340.0; void setup() { // put your setup code here, to run once: Serial.begin( 9600 ); pinMode( echoPin, INPUT ); pinMode( trigPin, OUTPUT ); Serial.println("a: start, s: stop"); } void loop() { // put your main code here, to run repeatedly: key_in = Serial.read(); switch(key_in){ case 'a': op_mode = 1; break; case 's': op_mode = 0; break; default: break; } if(op_mode){ spd = 331.5 + 0.6 * temp; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite( trigPin, HIGH ); //超音波を出力 delayMicroseconds( 10 ); // digitalWrite( trigPin, LOW ); period = pulseIn( echoPin, HIGH ) / 2.0; // us if (period > 0) { dist = spd * period / 1000000; // m Serial.print("dist: "); Serial.print(dist); Serial.println(" m"); } } else{} delay(500); }
できたのがこれ。ジャンパー線をぶっ刺すだけの簡単設計。
ロボットに載せたらなんかできるかな。