#include "pitches.h"
int trig= 8;
int echo= 9;
int led= 13;
int spk= 5;
int melody[]= {
NOTE_D5, NOTE_D5, NOTE_E5, NOTE_D5, NOTE_G5, NOTE_G5, NOTE_FS5,
NOTE_D5, NOTE_D5, NOTE_E5, NOTE_D5, NOTE_A5, NOTE_A5, NOTE_G5,
NOTE_D5, NOTE_D5, NOTE_D6, NOTE_B5, NOTE_G5, NOTE_FS5, NOTE_E5,
NOTE_C6, NOTE_C6, NOTE_B5, NOTE_G5, NOTE_A5, NOTE_A5, NOTE_G5,
};
int interval[]= {
1, 1, 2, 2, 1, 1, 4,
1, 1, 2, 2, 1, 1, 4,
1, 1, 2, 2, 2, 2, 3,
1, 1, 2, 2, 1, 1, 4,
};
int playing= 0;
int playEnd= sizeof(melody) / sizeof(int);
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(trig, LOW);
delayMicroseconds(10);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
int val= pulseIn(echo, HIGH) * 17 / 100;
Serial.println(val);
if(val > 50) {
//5cm 범위를 벗어나면 LED 점등
digitalWrite(led, HIGH);
//음악 연주
Serial.println(val);
note(melody[playing], interval[playing] * 200);
playing++;
if(playing >= playEnd) playing= 0;
} else {
digitalWrite(led, LOW);
playing= 0;
}
}
void note(int pitch, int duration) {
tone(spk, pitch, duration);
delay(duration * 13 / 10);
noTone(spk);
}