// 초음파센서와 피에조 스피커. 거리에 따라 (4cm마다) 도레미파솔라시도(4 옥타브) 소리내기.

int melody[28] = 131,147,165,175,196,220,247,// 도레미파솔라시

262,294,330,349,392,440,494,// 도레미파솔라시

523,587,659,698,784,881,988,// 도레미파솔라시

1047,1175,1319,1397,1568,1760,1976,// 도레미파솔라시 };

int TRIG = 3, ECHO = 4, speaker = 7;

void setup() {

Serial.begin(9600);

pinMode(TRIG,OUTPUT);

pinMode(ECHO,INPUT);

pinMode(speaker, OUTPUT); }

void loop() {

float distance, duration;

digitalWrite(TRIG, HIGH);

delayMicroseconds(1);

digitalWrite(TRIG,LOW);

duration = pulseIn(ECHO,HIGH);

distance = ((float)(duration*340)/10000)/2;

Serial.println(distance);

int i;

if (distance <= ) {

i=map(distance,0,32,0,7);

tone (speaker, melody[i], 250);

delay (300);

}

else {

noTone(speaker);

}


}