#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); //initialisation class HCSR04 (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 = kyouriSensor.dist();
Serial.println(distance); // return curent distance in serial
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);
}
} else {
digitalWrite(LED_NEAR, HIGH);
digitalWrite(LED_MID, HIGH);
digitalWrite(LED_FAR, HIGH);
}
delay(200);
}
// #include "pitch.h"
// #define TIMER 10 // タイマー時間(秒)
// #define HALF_TIMER 5
// #define SOON_TIMER 3
// #define SW_PIN A5 // スイッチ接続端子
// #define SW_OFF 1 // スイッチOFFのdigitalReadの値
// #define LED_PIN 12 // LED接続端子
// #define LED_ON_INTERVAL 50 // LEDを点灯する時間
// #define LED_OFF_INTERVAL 950 // LEDを消灯する時間
// #define FULL_LED 8
// #define HALF_LED 6
// #define SOON_LED 4
// #define SPEAKER_PIN A0 // スピーカー接続端子
// #define ALARM_TONE 1760 // アラーム音の周波数
// #define ALARM_COUNT 3 // アラームを鳴らす回数
// void setNokoriLed(int position)
// {
// digitalWrite(FULL_LED, LOW);
// digitalWrite(HALF_LED, LOW); // 「残り時間十分」LEDをOFF
// digitalWrite(SOON_LED, LOW);
// switch (position)
// {
// case 1: digitalWrite(FULL_LED, HIGH); break;
// case 2: digitalWrite(HALF_LED, HIGH); break;
// case 3: digitalWrite(SOON_LED, HIGH); break;
// }
// }
// void setup() {
// // put your setup code here, to run once:
// pinMode(LED_PIN, OUTPUT);
// pinMode(FULL_LED, OUTPUT);
// pinMode(HALF_LED, OUTPUT);
// pinMode(SOON_LED, OUTPUT);
// pinMode(SW_PIN, INPUT_PULLUP);
// }
// void loop() {
// while (digitalRead(SW_PIN) == SW_OFF) {
// }
// setNokoriLed(1);
// for (int i = 0; i < TIMER; i++) {
// int nokori = TIMER - i;
// if (nokori == HALF_TIMER) {
// setNokoriLed(2);
// }
// if (nokori == SOON_TIMER) {
// setNokoriLed(3);
// }
// digitalWrite(LED_PIN, HIGH);
// delay(LED_ON_INTERVAL);
// digitalWrite(LED_PIN, LOW);
// delay(LED_OFF_INTERVAL);
// }
// digitalWrite(LED_PIN, HIGH);
// int melody[] = {DO_4, RE_4, MI_4, 0, MI_4, RE_4, DO_4};
// int duration[] = {2, 1, 2, 2, 2, 1, 2};
// for (int i = 0; i < 7; i++) {
// if (melody[i] == 0) {
// noTone(SPEAKER_PIN);
// delay(duration[i] * 250);
// } else {
// tone(SPEAKER_PIN, melody[i]);
// delay(duration[i] * 250);
// }
// }
// noTone(SPEAKER_PIN);
// digitalWrite(LED_PIN, LOW);
// }