Skip to content

Instantly share code, notes, and snippets.

@likersacademia
Last active November 25, 2019 10:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save likersacademia/329eb76575a0181a793662c14037a468 to your computer and use it in GitHub Desktop.
Save likersacademia/329eb76575a0181a793662c14037a468 to your computer and use it in GitHub Desktop.
//02_distance_speaker
//近づいたエリアによって違う音がなる
//SchooMyとかいてあるところまですすもう
#define echoPin 19
#define trigPin 18
#define SPEAKER 10
#define do 262
#define re 294
#define mi 330
#define fa 349
#define so 392
#define ra 440
#define shi 494
#define do2 523
double Duration = 0;
double Distance = 0;
void setup() {
Serial.begin(9600);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(SPEAKER, 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");
delay(500);
}
//SchooMy
//プログラムはここからかえます
if (Distance < 10) { //このエリアになったら
tone(SPEAKER, do); //鳴る
delay(1000); //待つ
Serial.println("do"); //表示する
delay(20); //待つ
} else if (Distance < 20) { //このエリアになったら
tone(SPEAKER, re); //鳴る
delay(1000); //待つ
Serial.println("re"); //表示する
delay(20); //待つ
} else if (Distance < 30) { //このエリアになったら
tone(SPEAKER, mi); //鳴る
delay(1000); //待つ
Serial.println("mi"); //表示する
delay(20); //待つ
} else { //それ以外は
noTone(SPEAKER); //鳴らない
delay(20); //待つ
}
noTone(SPEAKER);
delay(20);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment