satotsuのいろいろつくってみた日記

いろいろつくってみたあれこれの記録。

HC-SR04で距離をはかってみる

買ったはいいものの、また積んでいた超音波センサ。動かしてみた

 

こちらを参考に。

deviceplus.jp

 

ソースはこんな感じ。

そのうち温度補正いれるかもなのと、キー入力で動作、停止をいれた。

 

#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);

}

 

できたのがこれ。ジャンパー線をぶっ刺すだけの簡単設計。

f:id:msatotsu:20180609114209j:image

 

ロボットに載せたらなんかできるかな。