#define echoPin 6 // Echo Pin #define trigPin 7 // Trigger Pin double Duration = 0; //受信した間隔 double Distance = 0; //距離 void setup() { Serial.begin( 9600 ); //シリアル通信開始 pinMode( echoPin, INPUT ); //エコーピンをインプット pinMode( trigPin, OUTPUT ); //トリグピンをアウトプット for (int i = 9; i < 14; i++)pinMode( i, OUTPUT ); //9 ピンをアウトプット } void loop() { digitalWrite(trigPin, LOW); //トリグピンを 0 に delayMicroseconds(2); //2ms 後 digitalWrite( trigPin, HIGH ); //超音波を出力 delayMicroseconds( 10 ); //10ms 後 digitalWrite( trigPin, LOW ); //超音波を止める Duration = pulseIn( echoPin, HIGH); //パルスイン センサからの入力 if (Duration > 0) { //センサーからの入力が 0 以上ならば Duration = Duration / 2; //往復距離を半分にする Distance = Duration * 340 / 10000; // 音速を 340m/s に設定 digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); digitalWrite(13, LOW); if (Distance < 30) { //30cmより小さかったら digitalWrite(9, HIGH); // LED を点灯 tone(3,131,100) ; // ドの音をならす if (Distance < 20) { //20cmより小さかったら LED を点灯 digitalWrite(9, HIGH); digitalWrite(10, HIGH); // LED を点灯 tone(3,165,100) ; // ミの音をならす if (Distance < 15) { //15cmより小さかったら digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, HIGH); // LED を点灯 tone(3,196,200) ; // ソの音をならす if (Distance < 10) { //10cmより小さかったら digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, HIGH); // LED を点灯 tone(3,247,100) ; // シの音をならす if (Distance < 5) { //5cmより小さかったら LED を点灯 digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, HIGH); digitalWrite(13, HIGH); // LED を点灯 tone(3,880,250) ; // ラの音をならす } } } } } Serial.print("Distance:"); //シリアルモニタに出力 Serial.print(Distance); Serial.println(" cm"); } delay(250); //0.25秒毎に計測して出力 }