I am building an Arduino-based device to be used outdoors (on a bicycle), and it is expected to work in all weather conditions. The device will have some buttons to turn lights on and off, honk the horn, etc.

Since regular push-buttons would not be water-resistant, I thought about creating some sort of "touch sensing push button" with bare wire ends (either one or two wires), or exposed metal plates. I have already read about single-node capsense, but I don't know if it would work.

Also, I wonder if piezo crystals found in small buzzers could be hacked to work as touch or tap sensors in this same application, thus enabling the use by people using gloves.

  • \$\begingroup\$ Actually there are lots of switches and pushbuttons that are waterproof, starting under $3. My search for "waterproof switches" on Digi-Key turned up over 1300. \$\endgroup\$
    – tcrosley
    Jun 26, 2015 at 18:28
  • \$\begingroup\$ @tcrosley Wow, that is nice to know, really :D But let's suppose that I actually want to make a DIY push-putton (a sort of membrane button would be ideal to glue to some surface and avoid bulky setups), I think the question still holds. \$\endgroup\$ Jun 26, 2015 at 18:34
  • \$\begingroup\$ (also most parts from your link are a bit too expensive and bulky for my intended application). \$\endgroup\$ Jun 26, 2015 at 18:36

2 Answers 2


Membrane switches are probably your best bet. You might be able to salvage them from an existing keyboard - such as the ones on microwave ovens or other kitchen appliances.

Piezo crystals generate analog voltages - more voltage if hit harder. I suspect that interfacing might be a little more complicated than contact switches.

Both are momentary switches (i.e. they make contact during a small period of time). In case of the membrane switch during the activation. Piezo switches only generate a voltage which pressed and released. So you will need some electronics to 'remember' the position (i.e. ON/OFF).

If you feel up to it, small controllers (such as the famous Arduino) can do this easily.

Some suggestions for DIY buttons:

  • Membrane buttons are not difficult to make. I'm not sure if they still exist, but there were some toys that 'clicked' mechanically when squeezed. It's the same principle. It's just difficult to find the suitable materials. You need a conductor which is sufficiently 'springy', without 'memory'.

  • You could make capacitive sensors too. Make a disk - say about 2cm diameter on a PC board, pile a non-conductor - thin mylar or polyester - with a hole about 2.5cm, and then another layer of polyester with a (thin) copper disk. If you connect the disk to a square wave (software!) then you can detect the voltage on the PC board disk - it'll change amplitude if pressed. The larger the disk, the more sensitive.

  • \$\begingroup\$ Nice! Since I will be using Arduino, I would expect to detect the "rise" from the piezo and store the button state in a variable (as I would do with regular push-buttons). Do you think a piezo from a common buzzer should be worth a try? \$\endgroup\$ Jun 26, 2015 at 18:40
  • 1
    \$\begingroup\$ We crossed messages there :) I think a piezo from a buzzer would need a fairly sharp 'tick' to generate enough voltage to trigger the arduino. I had one laying around - only tens of millivolts, I'm afraid. You'd need an (small) amplifier. \$\endgroup\$
    – jcoppens
    Jun 26, 2015 at 18:45
  • \$\begingroup\$ I google-imaged "membrane button" and am pleased with what I saw, specially considering ease of installation at ergonomical (read arbitrary) spots around the handlebar levers. \$\endgroup\$ Jun 26, 2015 at 19:30
  • \$\begingroup\$ As an additional comment, I have not yet given up doing my buttons myself (DIY fanboy here), but instead of a touch sensor, perhaps "membrane button" is the design concept that I was lacking. \$\endgroup\$ Jun 26, 2015 at 19:31
  • \$\begingroup\$ I added a few comments to the answer. It didn't fit here. \$\endgroup\$
    – jcoppens
    Jun 26, 2015 at 20:27

A cap sense button, with a thin layer of plexiglass above it, would work just fine. Cap sense does not require exposed copper, and some times not even direct touch, with some examples having a slight air gap.

  • \$\begingroup\$ I didn't propose that, as I suspect that rain would influence the capacity... Any experience with that? \$\endgroup\$
    – jcoppens
    Jun 26, 2015 at 18:53
  • \$\begingroup\$ Op would need to simple orient it in a way that water isn't directly deposit on the button. \$\endgroup\$
    – Passerby
    Jun 26, 2015 at 18:59

Your Answer

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

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