/* Arduino ライブラリとは?(製作編)
     距離に応じてスピーカを制御する
*/
#include <HCSR04.h>
#define TRIG_PIN 2 // トリガー端子
#define ECHO_PIN 3 // エコー端子
#define SPEAKER_PIN A0 // スピーカー接続端子
#define BLOCK_LENGTH 5 // 1ブロックの長さ(単位:cm)
// ド〜ドの音程の周波数
//            ド    レ   ミ   ファ  ソ   ラ    シ   ド
int note[] = {262, 294, 330, 349, 392, 440, 494, 523};
// HC-SR04のオブジェクト生成
HCSR04 kyoriSensor(TRIG_PIN, ECHO_PIN);
void setup(){
  // シリアルモニタ初期化
  Serial.begin(9600);
}
void loop() {
  // 距離測定&シリアルモニタ表示
  float distance = kyoriSensor.dist();
  Serial.println(distance);
  if( distance > 0.0 ) { // 測定できた時の処理
    // どのブロックに障害物があるか計算
    //(計算結果は整数にするため結果を代入する変数はint型にする)
    int block = distance / BLOCK_LENGTH;
    Serial.println(block);
    // ブロック位置に対応する音程を鳴らす
    if( block==0 || block==1 ){
      tone(SPEAKER_PIN, note[0]);
    } else if( block>=2 && block<=8 ) {
      tone(SPEAKER_PIN, note[block-1]);
    } else {
      noTone(SPEAKER_PIN);
    }
  } else {
    noTone(SPEAKER_PIN);
  }
  // 時間待ち
  delay(200);
}