#define echoPin 6 // Echo Pin は6ピンに接続
#define trigPin 7 // Trigger Pin は7ピンに接続
double Duration = 0; //受信した間隔
double Distance = 0; //距離
int led1 = 13; //13番ピンにLEDを接続
int led2 = 12; //12番ピンにLEDを接続
int led3 = 11; //11番ピンにLEDを接続
int led4 = 10; //10番ピンにLEDを接続
int led5 = 9; //9番ピンにLEDを接続
void setup() {
Serial.begin( 9600 ); //シリアル通信を開始
pinMode( echoPin, INPUT );
pinMode( trigPin, OUTPUT );
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
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 < 5) {//5cm以内になるとLED1が点灯
digitalWrite(led1, HIGH);
delay(100);
digitalWrite(led1, LOW);
} else if (Distance < 10) { //10cm以内になるとLED2が点灯
digitalWrite(led2, HIGH);
delay(100);
digitalWrite(led2, LOW);
} else if (Distance < 15) { //15cm以内になるとLED3が点灯
digitalWrite(led3, HIGH);
delay(100);
digitalWrite(led3, LOW);
} else if (Distance < 20) { //20cm以内になるとLED4が点灯
digitalWrite(led4, HIGH);
delay(100);
digitalWrite(led4, LOW);
} else { //それ以上の場合はLED5が点灯
digitalWrite(led5, HIGH);
delay(100);
digitalWrite(led5, LOW);
}
}
}