2026 ME Project: Arduino Theremin
by YouWish_K7Z6 in Circuits > Arduino
79 Views, 1 Favorites, 0 Comments
2026 ME Project: Arduino Theremin
An underrated instrument that many people are unaware of its existed is the Theremin. Created around the 1910s in Russia, this instrument was one of the very first electronic instruments and was also one of the first instruments you can played without even touching it. For this project, this theremin will function very relative to how a normal one would with it also involving no contact. While normal theremins use electricity, this theremin uses two Ultrasonic Distance sensors to graph out where someone's hand is. This project could have also just have been done with one sensor but instead, this project has a sensor that relates to pitch and another sensor that relates to volume. For anyone wanting to give it a shot, here's a step-by-step instructions on how to build a theremin.
Supplies
Supplies:
- Cardboard
- 8 5x15 inches
- 5 5x5 inches
- (Small 1 inch cubes if wanting to assemble folding rectangular prism [look at steps 3 & 4 for more information])
- Arduino KIT
- 1 Arduino Uno Board
- 3 Breadboard
- 2 Ultrasonic Distance Sensors
- 1 Piezo Buzzer
- 1 Switch
- 19 Jumper Wires
- 1 Battery Pack
- 4 AA Batteries
- Tape
Crafting Supplies:
- Sharpie
- Meter Stick (with inches on one side)
- Hot Glue
- Box Cutting / knife
Groundwork
In order to make the effect of a real theremin, two Ultrasonic Distance Sensors are needed. One of the sensors will be designated as pitch while the other designated as volume. While original theremins have only one area to move with your hand to create the note, Ultrasonic Distance Sensors aren't as sophisticated as the theremin's electronic field and will require to areas of hand movement. Inspired by the metal rod, there will be a card center piece sticking out that will hold the two distance sensors. By moving your two hands closer to the center piece or further from it, the sound should change creating the theremin effect of changing both pitch and volume.
The picture you see above is the basic Arduino setup in Tinkercad. Along with the Ultrasonic Distance Sensors, you'll also need to program the Piezo Buzzer, where the sound will come from, and a switch, to control system being on and off. Note that the total wire count isn't feature in the Tinkercad setup and that it because the structure of the project requires the sensors, Arduino board, and breadboard to be spread out. To account for this note that there will be additional wires to run to further out breadboards and that you may need longer wires to connect everything together. For this project, we had to use object around the room to raise the Arduino board inside the bottom base since we ran out of wires. To make a better version, you would need the right amount of wires but longer ones.
Coding
The code as to how the whole system works, here's the final product. Note that there was AI assistance on creating code that would allow for the sound to be more stable. The theremin can now have stable and clear notes playing when you hold your hands still. This function only works if it's throughout the code so you'll see a sprinkle of notes of where AI had assisted the code.
Downloads
Cutting Everything Out
After the rudimentary outline breadboard in Tinkercad, the assembling process of the shells begins. In order to have the proper size of cardboard, a big piece of cardboard was used. After measuring with the meter stick and making markings with the sharpie of all of the pieces needed, the next step was to cut all of the material out (the finer the cuts, the more accurate it can be assembled together).
Crafting the Shells
For creating the shells, you will be using all your pieces except one 5x5 piece. Set said piece aside for later.
The goal is to assemble 2 5x5x15 in prism with the help of hot glue. For the more optimal, effective, and recommended way of assembling the rectangular prism shells, using the extra leftovers cardboard, cut out and use 1 inch small squares. These squares will be used as connectors. That way, you'll have two foldable prisms which can then easily be opened up and be able to make changes.
For the more descriptive way of and example of making this work, listen to this description:
Craft two squares. Put two boards that will be used as wall later right next to each other. Using the hot glue, about a third of the way, hot glue both ends on top and quickly put a square on top. Let it dry. On the next third, repeat the process with a different square. After drying for about a minute, you can now bend the pieces together to form an "L" shape.
Look at the photos for a visual representation. When gluing the prisms together, DON'T GLUE THEM ALL TOGETHER YET. Be careful when putting the two together. By the end of this step, your work should look like the photo provided above. You're only gluing the shells like this so you're able to fold them together like a prism, but not glued together as a prism.
For the last part of assembling the shells, mark as to which piece will be the base and which piece will be the vertical holder of the sensor. Ignore the hole in one of them for now.
Building the Boards
The layout will work like this: the base shell will hold the Arduino, the speaker, and the switch while the vertical piece will hold the distance sensors. Because of the dimensions of the shells, two of the breadboards will be used to hold one individual distance sensor facing one way and the other with the other distance sensor facing the opposite way. The breadboard that comes with the Arduino board will hold the speaker and the switch. As for this step, consider the distance sensor boards as one piece and the Arduino board as another piece. Later you will connect the power, ground, trig, and echo pins to the distance sensors, but for now, connecting the power and ground between the two distance sensor breadboards is enough.
Wire the 5V and ground pin to the Arduino breadboard. For the Arduino breadboard, finish the wiring for the speaker and switch. Look at code for where there pins are located.
It should look like the photos above.
Finalizing the Base Shell
For the one was labeled the base piece, along one of the 5x15 inch rectangles, place the Arduino connected breadboard down in the center. This will be its final place. From here, fold the pieces to assemble the square together except the 5x15 inch piece closest to you. This will be used as the flap where you can open to turn on and off the system. Hot glue them all together to finalize the structure (again, not the one 5x15 inch piece)
For the 5x15 inch piece that is right above the Arduino board, cut a 2x2 inch hole dead center. This will be where the wires will run down thorough.
Finalizing the Vertical Shell Structure
For the vertical piece, be more careful when making cuts and gluing pieces together.
First, just like the bottom shell, fold all the pieces together except one 5x15 inch piece. After everything is glued, stand your shell up vertically (on the 5x5 inch side). Whatever end you have on the table or bottom, cut a 2x2 inch hole. This will be where wires will run through and the side that will be glued down to base shell.
Once everything has been glued and cut, grab your spare 5x5 inch square.
For this part, you be building the shelf as to where the sensors will be placed. It's up to you as to how high you want your shelf to be. Something to note about the position of the shelf though: take note how long your wires are. If your wires are short, you'll want your shelf to be closer to your bottom end. If you have the wire length for it, raise the shelf. Up to the user. For this piece, the theremin placed the shelf about a quarter up from the bottom. Before placement though, cut a 1x1 inch hole in the center. This is where the wires will run through. After cut, hot glue the shelf in.
For this step, gather one distance sensor and breadboard for reference. As already known, the distance sensors will be facing away from each other. Insert a distance sensor on the edge of the breadboard, which should be facing away from the board, and place the breadboard on the shelf. Have the sensor touching one of the 5x15 in walls and, with the sharpie, trace around the sensor pieces touching the wall. After marked, do the same thing but flip the board 180 degrees. The sensor should be pressed against the opposite wall and traced as well. After traced, remove the board and take out the distance sensor. From here, make cuts as to where the sensor were marked so that, in the final product, the sensors can stick out without revealing the wiring and circuit.
Your final product should look like the image above.
Assembling Vertical Shell With Arduino
After everything is dried, set your designated distance breadboards in. Make sure the distance sensors fit in their cutout hole and confirm nothing is interfering their line of sight (nothing in front of sensors).
Once the sensors are in place, gather echo wires, trig wires, power wire, and ground wire. Before connecting them in, mark the end of the wires as to which wire goes where. You will have two echo wires and two trig wires and they need to go in their designated spots. You can use a sharpie to draw dots, line, or any other type of marking to indicate what the wire represents. Carefully wire the breadboard and thread the six wires through the shelf hole and the bottom hole.
Should look like the image.
Putting Everything Together
Now comes the easier part. Grab the vertical shell and place it on top of the base shell. Confirm that the holes connect between the two shells and that the wires can run through them. Make sure that both shell's openings face the same direction (look at photo for more clarity as to how final product should look). You can now glue the vertical shell to the base shell. Make sure the glue dries before moving the theremin. After glued together, connect the wires from the vertical shell into their correction positions. Look at the ints and pinModes of the code as to where everything should go. For the power and ground wire, wire them to the Arduino breadboard instead of a pin.
Something to note about this theremin, the wires didn't reach and so items around the room were used elevate the board.
Finally, grab your batteries, place them in the battery pack, and set it inside the base. Whenever you want the theremin to run, plug the cord into the Arduino board to run. After upload the code, everything should work and you have yourself a theremin.
Final Touches
For this step, the only necessary requirement is to use tape for the open flaps. While hot gluing would would result in no tape showing, this tape is temporary and allows for quick fix for any items that could have shift or access features like the power switch.
To make the theremin more special, you can also design the outside so that it looks more presentable. For this theremin, the design choice was a simple music theme.
Video
Demonstration of the theremin in action.
Link in case video doesn't work:
https://drive.google.com/file/d/1jRYHj-BUSFAqUUVK0hUEQJfpG0vFKwcV/view?t=1
Downloads
Presentation Board
Here's the final and screenshot of the presentation board for this project.