Project tutorial
Nano Light theremin

Nano Light theremin © GPL3+

This is a variation of the Light Theremin project from the starter kit and features components soldered onto a PCB.

  • 1,701 views
  • 0 comments
  • 4 respects

Components and supplies

Necessary tools and machines

09507 01
Soldering iron (generic)

Apps and online services

About this project

Nano theremin on breadboard

The nano light theremin is a variation of the light theremin project described in the starter kit. I liked the project so much, I decided to build a more permanent variation. I soldered a piezo buzzer, resistor and photocell onto a PCB and added wires.

If you use a PCB: one leg of the 10 kOhm resistor is connected to one of the photocell's legs. A wire connects the other leg of the photocell with the ground pin of the piezo buzzer.

The project uses the same code as the light theremin project in the starter kit. Once you have uploaded the code, you might want to wave a hand over the photocell and notice any variations in sound.

The prototype features jumper wires. If you are using a solderless breadboard, you can place the Nano in the middle of the board itself. Add the lead from the resistor to A0 and the power (+) lead from the buzzer to pin 8.

As another variation, you might consider soldering the leads for A0 and pin 8 directly onto the Nano itself, as I have done. If you would rather preserve the Nano for other projects, perhaps using a solderless bread board is the best option.

Code

Light thereminArduino
This code is from the Arduino starter kit. Once you upload it, the buzzer will start making sounds. Wave a hand over the photocell for sound variations.
/*
  Arduino Starter Kit example
 Project 6  - Light Theremin

 This sketch is written to accompany Project 6 in the
 Arduino Starter Kit

 Parts required:
 photoresistor
 10 kilohm resistor
 piezo

 Created 13 September 2012
 by Scott Fitzgerald

 http://www.arduino.cc/starterKit

 This example code is part of the public domain
*/

// variable to hold sensor value
int sensorValue;
// variable to calibrate low value
int sensorLow = 1023;
// variable to calibrate high value
int sensorHigh = 0;
// LED pin
const int ledPin = 13;

void setup() {
  // Make the LED pin an output and turn it on
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, HIGH);

  // calibrate for the first five seconds after program runs
  while (millis() < 5000) {
    // record the maximum sensor value
    sensorValue = analogRead(A0);
    if (sensorValue > sensorHigh) {
      sensorHigh = sensorValue;
    }
    // record the minimum sensor value
    if (sensorValue < sensorLow) {
      sensorLow = sensorValue;
    }
  }
  // turn the LED off, signaling the end of the calibration period
  digitalWrite(ledPin, LOW);
}

void loop() {
  //read the input from A0 and store it in a variable
  sensorValue = analogRead(A0);

  // map the sensor values to a wide range of pitches
  int pitch = map(sensorValue, sensorLow, sensorHigh, 50, 4000);

  // play the tone for 20 ms on pin 8
  tone(8, pitch, 20);

  // wait for a moment
  delay(10);
}

Schematics

Schematic for Nano light theremin
Hopefully this can help you setting up the board. If you can find the light theremin project in the book accompanying the starter kit, the diagram and instructions there might help as well. The only difference, once again, is the board: a Nano substituting in for the Uno.
Nano light theremin bb qnk3znmkow

Comments

Similar projects you might like

Hand Glove Light Theremin

by Hamlet

  • 2,608 views
  • 0 comments
  • 10 respects

Arduino Audio Reactive Desk Light

Project tutorial by Haziq Azri

  • 18,447 views
  • 6 comments
  • 42 respects

Light Intensity and Solar Panel Energy Detector

Project tutorial by Kutluhan Aktar

  • 3,085 views
  • 3 comments
  • 14 respects

Light Sensitive Theremin

Project tutorial by 3 developers

  • 2,271 views
  • 0 comments
  • 3 respects

Arduboy Clone with Arduino Nano and I2C OLED display

Project tutorial by Mirko Pavleski

  • 2,099 views
  • 1 comment
  • 11 respects
Add projectSign up / Login