/* 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);
}
$abcdeabcde151015202530354045505560fghijfghij