Friday, January 28, 2011

Capacitive Touch Sensor on Arduino

If you ever wanted to integrate touch sensitivity into your project, this board could just do the trick. It's a capacitive touch sensor. These sensors are used in our everyday consumer electronics like notebook trackpads, video game consoles, touchscreens...just to name a few.

They work on the principle of alteration of the electrostatic field. The sensor builds up an electrostatic field which will be altered if conductive objects get in contact with the field. In this case your finger is the conductive object which triggers the change in the field. For detailed information about capacitive sensing have a look here.

The board works in I2C mode and needs pull-up resistors for the SDA and SCL pins. The operating voltage range is from 2.7V to 5.25V, so you can use either the 3.3V or 5V socket of the Arduino.

The setup is pretty easy. I attached two LEDs to indicate if the sensor plate was touched.

Figuring out the communication with the device is a little bit tricky. I found a really good blog post from Marcus Nowotny who provides a sample code, so you don't have to get a headache while trying to understand the datasheet.

If you hooked up everything correctly, you can enjoy capacitive sensing in your project.


  1. Hi, just curious did you try this method, using just 2 IO pins ?

  2. I have read about this already, but I didn't try it yet. Let me know if it is accurate enough to be used in projects.


  3. I actually tried on a beagleboard and it was not precise enough so I used a QT100 instead. But then the beagleboard had a linux kernel running and other stuff so it makes a big overhead and makes it difficult to measure such small delays (~30microseconds). I was wondering if the arduino could be any more precise.