Electronic – arduino – Triggering a capacitive sensor electronically

arduinocapacitivecapsense

I'm working on a little project I call my "Green Box". Basically, I'm trying to drop my electric usage as low as possible, without losing the convenience of my gadgetry.

So far, I'm incorporating a passive IR sensor for motion detection, an ambient light sensor, and using [hopefully] a small SNMP subset to an ethernet shield to determine the state of activity. Based on these factors, I want to turn on/off various devices (PWM for fans speed of laptop cooler, IR to power on/off a few components, wireless X-10 for controlling lights), etc. I'll admit, I'm lazy; I could just do all of this myself, but with 6 kids running around, it's easy to forget to hit a power switch (let alone 5 or 6).

I have 2 Samsung monitors which have capacitive touch controls on the front. I would like to trigger these with the Arduino in the box to turn the monitors on/off, without having to rip them apart and hack them. I'm a perpetual upgrader, and I'd like to sell them in "like new" condition when I decide to.

So, from googling, I've found a few people mention that I could put a small metal plate over the sensor, and use a transistor to ground that plate to trigger the touch. I know nothing but theory of how capacitive touch works so:

This seems plausible to me; is it?

If so, can it be ANY gound (the one from the Arduino), or does it have to be the ground from the monitor?

Based on answers from the previous questions; could I run a single lead to a PNP transistors base and collector, and connect the emitter to the plate? Would this work?

Best Answer

On how capacitative touch "works", have you had a chance to read through the CapSense library page on the Arduino Playground? It's a decent overview. The technique is typical - measure how long it takes to "charge" a metal plate up to some voltage through a known resistance and infer the capacitance from that time interval. There's also a very instructive lab exercise at Cornell's microcontrollers course website.

What are the physics going on here? When you bring your hand closer to the plate you are increasing capacitance (by narrowing the distance between "the plates") - see also wikipedia entry on capacitance. You kind of serve as the plate of the capacitor connected to GND. So yes in principle driving an actual plate to GND through a transistor could work. Furthermore, if your Arduino is plugged into the wall, you most likely don't need to worry about whether you're at "the same" GND, it will be close enough. You might have a slight issue if you're Arduino is battery or USB powered though.

As for the actual circuit. I would actually try just connecting an actual digital pin to the plate. When you want to simulate "no touch", turn the pin to an input (without internal pullups enabled). When you want to simulate "touch" turn the pin to an output set to LOW. The only reason for using a transistor is if you have a current demand that exceeds the rating of the pin (about 40mA I believe), and this case really doesn't qualify.