Arduino Photocell Theremin Synth (glitchamin)

You know theremins, right?  Those cool-looking boxes with antennae that produce noise without being touched?  They are played by the likes of Jimmy Page of Led Zeppelin, and present in the soundtracks of countless films.  Well, with this instructable, I will show you how to build an approximation of a theremin (in principle, at least) using some basic electronics built on top of an Arduino, which I call a glitchamin.  This circuit features adjustable parameters and an optional kill switch, and information on hooking it up to an amplifier for the full-on concert glitchamin experience.

Photocell Theremin

Attach the potentiometers

Take the two potentiometers, and insert them into the breadboard in some convenient location.  Then, take some wire, attaching the left lead on each to 5v, the right to gnd, and the middle (wiper) pin to Analog inputs 1 and 2.  The pot attached to a1 controls to some extent the pitch by trimming the sample time.  The pot attached to a2 controls the decay of the sample by mapping the number of cycles the sample lasts.

Wire in the CdS photoresistor

Next comes the CdS photoresistor.  This cool part has a higher resistance when it’s in a dark environment, and a lower resistance when there is light.  CdS photoresistors are not polarized, so you can’t put them in wrong, however, they do need an additional resistor to complete the voltage divider.
So, take your CdS cell, and insert it into your breadboard, connecting one lead to 5v, and one to a 10kOhm resistor, connected to gnd.  Then connect the middle pin (where the CdS cell and the resistor meet) to Analog input 0 on the Arduino.

Insert the kill switch (optional)

This step is optional.  Only follow this step if you want to have a kill switch in your circuit, which cuts off the sound output to the piezo (or mono jack) while it’s pressed.  I like to include these in all of my instruments and synths, because I like to do sudden changes and the stutter effect that having a kill switch allows.
If you wish to install a kill switch, insert your push button into your breadboard, minding orientation to ensure that you don’t short the kill pin.  You want to attach it so that attached leads are in the same rail, and unattached leads are in separate rails.  Attach one lead to Digital pin 10, and the attached lead to gnd through a 10kOhm resistor.  Attach one of the other leads to 5v.  This button will read LOW while open, and HIGH while pressed.

[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14 ” radius=”20 ” border=”#985D12″ float=”right” head=”Major Components in Project” headbg=”#FFEB70″ headcolor=”#985D00″]1x Arduino (I used a Duemilanove with a 328, but the circuit and code are light enough that any Arduino board should work)
1x half breadboard (the circuit could easily be replicated on perfboard)
1x momentary pushbutton (optional, for kill switch)
2x potentiometer (I used 1kOhm and 10kOhm, but similar values should be acceptable)
1x CdS Photocell resistor (the heart of the glitchamin)
2x 10kOhm resistors (brown-black-orange-gold, 1 is optional, for the kill switch)
1x piezo buzzer
1x 1/4″ mono audio jack (optional, for attaching to amplifier)

Everything you need, with the exception of the piezo buzzer and the mono jack, is in the kit “Arduino Budget Pack” from Adafruit Industries.  I used Radio Shack to get the piezo and the mono jack.[/box]

For more detail: Arduino Photocell Theremin Synth (glitchamin)

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top