はるあんのプログラミング日記

プログラミングについてのブログです

Arduinoで超音波センサー

目標

ロボット班の人たちとロボカップジュニアレスキューチャレンジに出るためのロボットを作る。なので、物との距離を算出し、自動で避けられるようにするため、超音波センサーでその機能を実装する。

使うもの・材料

 

  • Aruduino Uno
  • ブレットボード
  • ジャンパピン
  • 超音波センサー
  • LED
  • 抵抗器

配線

f:id:haruan39:20170812230327p:plain

f:id:haruan39:20170812230821p:plain

 

f:id:haruan39:20170812230833p:plain

f:id:haruan39:20170812230844p:plain

超音波センサのVCC,Trig,Echo,GNDは間違えないように配線する。

f:id:haruan39:20170812230537j:plainこの通りにやれば、問題ない。

コード

    #define echoPin 2 // Echo Pin
#define trigPin 3 // Trigger Pin
#define LED 13
double Duration = 0; //受信した間隔
double Distance = 0; //距離
void setup() {
Serial.begin( 9600 );
pinMode( echoPin, INPUT );
pinMode( trigPin, OUTPUT );
pinMode( LED,OUTPUT);
}
void loop() {
  delayMicroseconds(2); 
  digitalWrite( trigPin, HIGH ); //超音波を出力
  delayMicroseconds( 10 ); //
  digitalWrite( trigPin, LOW );
  Duration = pulseIn( echoPin, HIGH ); //センサからの入力
  if (Duration > 0) {
    Duration = Duration/2; //往復距離を半分にする
    Distance = Duration*340*100/1000000; // 音速を340m/sに設定
    Serial.print("Distance:");
    Serial.print(Distance);
    Serial.println(" cm");
    if ( Distance <= 30){
   digitalWrite(LED, HIGH);
  }
  else {
    digitalWrite(LED, LOW);
  }
  }


}

実行

これをAruduino IDEで書き込み、Arduino Unoに繋いで、”マイコンボードに書き込む”を押す。 そうすれば、超音波センサーと物との距離が30cm以下になるとLEDが光り、30cm以上になると、LEDが消える。