I have made a USB game controller using the Arduino Micro and Omron microswitches (VX-01-1A3) for the buttons. The switch is wired with one end connected to a digital pin and the other end connected to GND. However, I am experiencing issues such as double-clicking, poor contact, and disconnection while using the microswitch. I have tried implementing debounce code, replacing the switch and cables, but the problem persists and often returns after only a few weeks of normal operation.

In the datasheet for the Omron VX series, I came across a diagram:

Operating range of VX

which prompted me to measure the current through the switch when pressed, which was only about 0.3mA. Since the digital pin voltage of the Arduino Micro is 5V, this state is not within the normal operating range shown in the diagram.

Could this be the reason for the poor contact of my microswitch? If so, how can I increase the current through the switch to bring it within the normal operating range? Would adjusting the pull-up resistor (using an external pull-up resistor instead of the Arduino's built-in pull-up resistor) be a feasible solution?

Thank you for your help.

  • 1
    I'm not sure, if this is really the problem, but yes, using an external pullup resistor with a value small enough will get you a higher current through the switch. Using a 4.7kOhm resistor will give you just above 1mA.
    – chrisl
    Feb 27 at 14:54


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.