The main idea is to create trigger which can be switched on by touching 2 plates on opposite walls. And these should be performed by few peoples holding each other hands.

Obviously human body has big resistance so I couldn't just connect these plates to ground and to one of Arduino pins.

There is a toy that do almost what I what (see it there). But I haven't found any information about how to create it by myself. Do you have any ideas how to create it?

  • Interesting idea... I think it would be difficult to detect two people though. What if one person touches one plate by hand, and reaches for the other plate with a long metal rod?
    – Andy
    Commented Sep 17, 2015 at 15:39
  • 1
    Yeah, there are many ways to cheat but for office Halloween quest it should work just fine (it would be easier to find a few people than long metal rod). Also I've already found another project on amplifier + transistor. But firstly i'm going to check solution by @A3ruz as it looks like the simplest one.
    – Alexander
    Commented Sep 17, 2015 at 15:50
  • The human body certainly has a measurable resistance. I measure around 1.5 MΩ holding the multimeter probes. Trying with two people holding hands still only gave 1.5 MΩ, so it seems the problem point might have been the contact with the probes.
    – Nick Gammon
    Commented Sep 17, 2015 at 21:01
  • Here's a DIY for the toy in the link you posted. It's not arduino but I hope it helps. en.vmaker.tw/archives/work/the-energy-stick
    – seth b
    Commented Oct 23, 2017 at 19:18

3 Answers 3


I just tried it (using my own method), and I got it working with very good sensitivity (should be fine for two people) using a TIP102 Darlington transistor and some resistors. Here is what I did: enter image description here

R1, the 1M pulldown resistor on the first pin of the Darlington is necessary to keep the light off when nobody is touching the wires. Without this, the light will turn on and off frantically.

R2, the 1k resistor keeps the Arduino from draining too much current (since that would be bad for the pin) in the case that your A0 is in OUTPUT mode and set to LOW.

R3 keeps the LED (or in my case, an AC relay connected to an actual light) from draining too much current from the Arduino. Note: The LED leads may be backward (reverse polarity) in the provided diagram.

Here is the code:

// I release this code under the standard MIT licence;
// (in addition to whatever StackExchange implies);

const short triggerThreshold = 10;// Lower is more sensitive;

void setup() {
  pinMode(A0, INPUT);
  pinMode(A5, OUTPUT);
  digitalWrite(A5, LOW);

void loop() {
  short value = analogRead(A0);
  digitalWrite(A5, (value > triggerThreshold) ? HIGH : LOW);
  delayMicroseconds(10000);// 10ms;

Note the triggerThreshold setting in the code. If you want more sensitivity, try changing the 10 to a 5. I just tried it, and it becomes extremely sensitive, yet it still appears to reliably stay off when I don't touch it. Naturally if you use large plates for touching, electrostatic in the air could set it off, so you may need to change this number to be higher to make it less sensitive, depending on your setup.

  • I had a lot of noise, so added a debounce function: ~~~ // The input is noisy and flips high and low frequently. bool debouncedInput() { static uint16_t state = 0; // Get a simple 1 or 0 for input. short value = (analogRead(A0) > triggerThreshold) ? 1 : 0; // Bit shift state left, or against the new value and mask out high byte. state = (state<<1) | value | 0xfe00; return (state == 0xffff) ? HIGH : LOW; } void loop() { digitalWrite(A5, debouncedInput()); delayMicroseconds(10000);// 10ms; } ~~~ Commented Sep 17, 2022 at 19:07

You can do it with an Arduino ! Use any of the ADC pins There will be change in the ADC i/p when there is some resistance b/w the pins ! Try both +ve > (people) > ADC -ve > (people) > ADC Just do some trials and probably will notice the change in ADC pin outputs . If you want to make it more sensitive Add a high resistance to the ADC pin if you are giving +ve to touch plates add a resistance from ground to that ADC pin

  • Just make sure your power supply isn't earth referenced, so no current can flow thought the floor back to the arduino. But depending on the kind of floor and other factors this might not be a big issue.
    – Gerben
    Commented Sep 17, 2015 at 16:35
  • No. The ADC converter has too low of an input impedance to work with megaohm paths. It is quite probable that detection can be accomplished, but by using either the dedicated comparator or possibly the ordinary digital input mode with an opposing resistor of several magaohms, not the ADC input mode. If you really want to use the ADC, you will need to precede it with a high-impedance buffer amplifier Commented Dec 17, 2015 at 1:34

The idea is intriguing, but you are not limited to use electricity. You could experiment with some other type of signal. Sound, for example. That would be safer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.