Como hacer un piano sin MIDI con arduino uno y un sensor sr04

Hola, soy nueva con arduino y como proyecto de la facultad tengo que hacer un producto electronico, quiero saber si es posible hacer que un sensor ultrasonico tenga programado distintas notas (12 si es posible) dependiendo de la distancia pero que suene como un piano sin usar MIDI.

yo creo de se podria se podria , pero no lo veo muy viable, porque estarias generando sonido lo que podria pertubar al sensor.

yo estaba por hacer uno, pero con sensores hall, pasate por mi blog , ahi un poquito de info.
Suerte.

Sensitive-Piano-88-keys-Bluetooth-MIDI

Saludos....

Prueba con esta función

void playTone(long duration, int freq) {
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(buzzerPin,HIGH);
delayMicroseconds(period / 2);
digitalWrite(buzzerPin, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
}

Luego, durante el programa la invocas de la siguiente manera

playTone(1000, 550);

Donde el primer número es la duración en milisegundos y el segundo el tono.

Para hacer una comprobación como funciona conecta un buzzer al pin 10 y carga el siguiente programa

const int buzzerPin= 10;
void setup() {
pinMode(buzzerPin, OUTPUT);

}

void loop() {
playTone(1000, 550);
playTone(1000, 600);
playTone(1000, 650);
}
void playTone(long duration, int freq) {
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(buzzerPin,HIGH);
delayMicroseconds(period / 2);
digitalWrite(buzzerPin, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
}

Espero que te sirva

Saludos