When I got my Arduino protoshield from sparkfun, I wanted to make something cool with it. And since I had seen a few Theremin projects before, and already thought about making some, I finally made one, using the Parallax PING sonar sensor. Here are some informations about how I made it. You can see all the pictures here
First, the schematics:
Here’s the commented code for the Arduino:
int pingPin = 7; int buzzPin = 10; int btnPin = 1; int val; void setup() { pinMode(buzzPin, OUTPUT); //set speaker pin to output pinMode(btnPin, INPUT); //set pushbutton pin to input } int getPing() { //send a 10us pulse to wake up the sonar pinMode(pingPin, OUTPUT); digitalWrite(pingPin, HIGH); delayMicroseconds(10); digitalWrite(pingPin, LOW); //get the raw value from the sonar, corresponding to the //actual time of travel of the ultrasound waves pinMode(pingPin, INPUT); return pulseIn(pingPin, HIGH); //return this value } void loop() { if (digitalRead(btnPin) == HIGH) //only play when the button is pressed { val = getPing() / 5; //you can tune the pitch by dividing by a different number //generate the pulse digitalWrite(buzzPin, HIGH); delayMicroseconds(val); digitalWrite(buzzPin, LOW); delayMicroseconds(val); } }
And that’s about it! Now you should start to learn how to play it… Kinda hard at the beginning, but that’s where the fun begins!
For more detail: Arduino theremin like musical instrument