Picture of Just Veggin with an Arduino Beetbox
Bring Touch Control to the Arduino. Use interesting touch sensors like Carrots or Beets to make a "Beetbox".

In this instructable you will learn:

* How to use the Cap Sense library to make Arduino responsive to touch
* How adding a Wave Shield (and some root vegetables), you can make a "Beetbox"

Remove these adsRemove these ads by Signing Up

Step 1: You Will Need

For the Touch Sensor part you will need:
* Arduino UNO
* A 4.7M Ohm resistor  (or a value similar to that) (one for each sense channel)
* Breadboard for wiring up e.g. (http://goo.gl/1E1iI)
* Some Wires

For an initial experiment to show how touch sensing works:
* An LED
* a 560 Ohm resistor

For the "Beetbox" part:
* Some Root Vegetables (such as a Beet)
* An Adafruit Wave Shield as shown  http://goo.gl/KUUZz
* The WaveHC library for Arduino (http://www.ladyada.net/make/waveshield/download.html)

Adafruit Wave Shield for Arduino Kit

Step 2: The Principles of Capacitive Touch Sensing

Picture of The Principles of Capacitive Touch Sensing
Cap Sense_schem.png
For the Beetbox we use three sense channels.

To start we'll implement one touch sense channel and activate an LED when Arduino senses touch.

Wire up the circuit as shown in the Fritzing diagrams and photo's.

Get and Install the Capacitive Sense library for Arduino from here: http://goo.gl/EpSX0

Step 3: Here's How the Capacitor Sense Works

Picture of Here's How the Capacitor Sense Works
The Cap Sense circuit is made by the resistor between Arduino pins 6 and 9, and also the capacitance to ground on the Touch Sensor. When the CapacitiveSensor arduino library is asked to read the sensor value, pulses are Output on Pin 9 and Input into pin 6. The library routine measures the delay between when the pulses are transmitted and when they are received.

The measured delay is proportional  to the Resistor value R and the Capacitance C. i.e.   Delay = R*C
(strictly speaking there's a scaling factor too depending on the voltage level you're measuring from, but that's just a detail for us).

The Capacitance on the sensor varies as you bring your finger close to the sensor and as you touch it. Touching the sensor gives you the largest capacitance and the longest delay. In order to make the delay large enough to be detected by Arduino you need a large resistor e.g. 4.7Meg Ohms.
DemmyM2 months ago

I am trying to make it, but i don't understand which parts of the code i have to change to make it work for me. Further more, my sounds play only shortly and start over the entire time and don't finish playing.

akellyirl (author)  DemmyM2 months ago

Step 7 contains all of the code you need.

The repeatedly playing is probably because the capacitive touch is not calibrated. The calibration procedure is in Step 6.

Also if you uncomment the line:

//#define DEBUG

you will get some debug comments printed to the screen that may help you debug.