Here's a project using one of my tiny arduino boards based on the concept of the capsense library (although I ended up writing my own code) that I did with a linear series of 8 capacitive sensors. They are made from 1"x.5" pieces of copper tape. I stuck them to graph paper so that I could align and space them precisely. I then added a strip and a series of pads across the top so that I could mount an SMD LED for each sensor, and added a backing and border to connect to ground. It works extremely well when I touch the pads directly, and it also works through a sheet of paper or plastic, though I have to press a little harder (so that more skin is pressed up against the pad).


Here's the code I used. The redundant readings are not really necessary, I wrote that to compensate for the unreliability of the more hastily-constructed sensors initially experimented with.
int sensors[] = {11, 12, 14, 15, 16, 17, 18, 19};
int leds[] = {9, 8, 7, 6, 5, 4, 3, 2};
int readings[] = {0, 0, 0, 0, 0, 0, 0, 0};
int controlpin = 10;
bool controlstate = 0;
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, 1);
pinMode(controlpin, OUTPUT);
digitalWrite(controlpin, controlstate);
for (int i = 0; i < 8; i++) pinMode(leds*, OUTPUT);*
- Serial.begin(9600);*
}
void loop() {
- readSensors();*
- for (int i = 0; i < 8; i++) {*
_ padprint(readings*, 4);_
digitalWrite(leds_, (readings > 1));
}
Serial.println();
}
void readSensors () {
for (int i = 0; i < 8; i++) {
readings = 0;
}
for (int k = 0; k < 4; k++) {
controlstate ^= controlstate;
digitalWrite(controlpin, controlstate);
int notfinished;
for (int j = 0; j < 256; j++) {
notfinished = 0;
for (int i = 0; i < 8; i++) {
if (digitalRead(sensors) != controlstate) readings++;
notfinished++;
}
if (!notfinished) break;
}
}
}
void padprint(int number, int chars) {
for (int i = pow(10, chars - 1); number <= i - 1; i /= 10) Serial.print("0");
Serial.print(number);
Serial.print(" ");
}[/quote]*_