/* Arduino ライブラリとは?(製作編)
     距離に応じてLEDを制御する
*/
#include <HCSR04.h>
#define TRIG_PIN 2 // トリガー端子
#define ECHO_PIN 3 // エコー端子
#define NEAR 10.0 // この値以下だったら「近い」判定(単位:cm)
#define MID  30.0 // この値以下だったら「中間」判定(単位:cm)
// LED接続端子
#define LED_NEAR 4 // 近い
#define LED_MID  6 // 中間
#define LED_FAR  8 // 遠い
HCSR04 kyoriSensor(TRIG_PIN, ECHO_PIN); // 距離センサーオブジェクト生成
void setup(){
  // シリアルモニタ初期化
  Serial.begin(9600);
  // 端子設定
  pinMode(LED_NEAR, OUTPUT);
  pinMode(LED_MID,  OUTPUT);
  pinMode(LED_FAR,  OUTPUT);
}
void loop() {
  // 距離測定&シリアルモニタ表示
  float distance = kyoriSensor.dist();
  Serial.println(distance);
  if( distance > 0.0 ) { // 測定できた時の処理
    if( distance<=NEAR ){ // 近い場合
      digitalWrite(LED_NEAR, HIGH);
      digitalWrite(LED_MID,  LOW);
      digitalWrite(LED_FAR,  LOW);
    } else if( distance<=MID ) { // 中間の場合
      digitalWrite(LED_NEAR, LOW);
      digitalWrite(LED_MID,  HIGH);
      digitalWrite(LED_FAR,  LOW);
    } else { //それ以外の場合
      digitalWrite(LED_NEAR, LOW);
      digitalWrite(LED_MID,  LOW);
      digitalWrite(LED_FAR,  HIGH);
    }
  }
  // 時間待ち
  delay(200);
}