Capacitive Touch and implementation with BeagleBone Black

beaglebone blackcapsense

How might I make a basic capacitive touch sensor for the Beaglebone Black that is capable of sitting behind an insulating material? I would like to make it as basic as possible, and without any sort of "breakout board", or specialized IC, using only the Beaglebone to interpret data received as might the specialized IC would.
The Beaglebone has digital IO pins, a 12-bit ADC, and PWMs (for reference), and is very similar to the Raspberry Pi. Is it do-able? (With only the Beaglebone, breadboard, jumper cables, copper tape, and resistors of any value)

Answer to that: It is doable. Same as in the circuit schematic, it would seem! Can be done with the digital pins. You put a large-value resistor between the send pin and the receive pin, set the send pin to high, and time how long it takes for the receive pin to be brought up. The sensor acts as a capacitor, storing charge, so that the receive pin takes a longer amount of time to be brought up.

Other questions

How does such a sensor operate, and how does the sensor itself affect this circuit? (shown below, representing a touch sensor)

There is only one source of charge, through the resistor. So if you increase the room for storage of charge by adding the capacitance of the finger it will take longer to fill.

(and thus the differences in time indicate whether or not the finger is there)

schematic

simulate this circuit – Schematic created using CircuitLab

Thanks!

Best Answer

It will take longer for the receive to charge up if the finger is close. You say that you imagine it would take longer then you state it would be shorter!

The 40K resistor and the sensor form a time constant that dictates how fast the receive line charges up, if the capacitance is higher it will take longer.

The actual amount of capacitance depends upon the sensor size but will typically be a few pF (not 1uF as you show) when a finger is in close proximity to a sensor.

Without the finger there will be parasitic capacitance that depends upon how the sensor is constructed and the length of wire etc but it could easily be 10-20pF even if you minimize those things. This would give time constant without touching the sensor of 40*10^3*10^-11. This is about 400s. With the finger adding 1pF this will increase by about 5% to about 420ns. This is very fast and not much of a change.

As the linked article states you can get higher sensitivity by increasing the value of the resistor to many megohms, this will give 100s of microseconds time constant with larger changes when in proximity, which is easier to distinguish You also get higher sensitivity by increasing the size of the sensor so you can sense the entire hand rather than just a finger.