8
\$\begingroup\$

I am trying to build a suitable pull-switch for my invention. Inside the switch, there is a tiny metal plate. When the user pulls the switch, this metal plate gets close to and makes contact with two metal structures and forms a closed circuit which is connected to a digital pin on an Arduino.

The problem is that I need this to function for up to 10 million cycles or more, and I'm neither a eletrical nor a mechanical engineer so I have no idea if it will hold that long. I have designed the two metal structures so that there should still be plenty of area in proximity to the metal plate (less than 1 millimeter away) after expected bending, wear and tear, but apart from that I have no idea what other problems I might encounter.

My three questions:

Are there any other issues I need to consider for 10 million cycles?

Can the Arduino handle that many cycles?

Suggestions on suitable material for the metal plate and structures?

\$\endgroup\$
6
  • \$\begingroup\$ Can you give us a diagram to illustrate the size of the structure? I am not sure if it is clear at present. Also, is the switch just momentary single pole, or does it toggle in any way? The Arduino will be fine with ten million on/off signals (internally it can probably do that in less than an hour) but presumably your switch won't operate that fast! How often do you expect your device to open or close? \$\endgroup\$
    – halfer
    Commented Mar 5, 2013 at 14:36
  • \$\begingroup\$ Please explain what you mean by a pull switch. Is it a toggle switch, a spring-loaded momentary push-button (or pull-button if you like), or something else? \$\endgroup\$ Commented Mar 5, 2013 at 14:42
  • 1
    \$\begingroup\$ That's a rather extreme requirement - over how many years? How harmful is the environment (dust, moisture, etc)? Why are the existing commercial options not adequate? Is there a size requirement? \$\endgroup\$
    – pjc50
    Commented Mar 5, 2013 at 14:47
  • \$\begingroup\$ 10 million cycles on an Arduino takes approximately 625ms. \$\endgroup\$
    – jippie
    Commented Mar 5, 2013 at 15:33
  • \$\begingroup\$ Perhaps if you told us why an off the shelf switch won't do what you need we could offer better advice. \$\endgroup\$
    – lyndon
    Commented Mar 5, 2013 at 16:57

3 Answers 3

11
\$\begingroup\$

10 million is quite a lot of cycles. Making a switch that can last that long is surprisingly difficult, as you can tell my the number of non-working buttons you can find around the place. I don't recommend trying to make your own switch which relies on making and breaking a contact.

For example, this "Long Lifespan" DF2 switch from Omron is only guaranteed to last for 1M cycles.

Omron DF2 switch

By far the best way to make a switch is to make some kind of non-contacting sensor. For example:

Magnetic: The pull moves a small magnet closer to a Hall effect sensor. The sensor detects the magnet, and sends its output to the Arduino. This has the advantage that it works even when it's wet or dirty.

Hall effect sensor

Optical: The pull moves an opaque object between an optical transmitter and receiver. Old fashioned roller mice used these types of sensors to measure the X and Y movement of the mouse.

Optical slot sensor

Again, these are very reliable, and will easily manage 10 million cycles. However, they are sensitive to environments that are very dirty, or where you have large changes in the amount of ambient light.

\$\endgroup\$
2
  • \$\begingroup\$ You can pretty much factor out ambient light with the optical sensor by turning the emitter on and off and comparing the corresponding detector readings measured through an ADC input on the Arduino. \$\endgroup\$ Commented Mar 5, 2013 at 15:00
  • \$\begingroup\$ +1 For hall effect sensor. If power consumption is not an issue these are cheap and cheerfulness and last forever. Just make sure the magnet and sensor are attached pretty well with steel putty or something and they should last the 10million mark! \$\endgroup\$
    – Piotr Kula
    Commented Mar 8, 2013 at 15:32
7
\$\begingroup\$

The Arduino can handle 10 million input operations, BUT you will find it exceptionally difficult to make a switch that will do the same.

There are two areas of concern.

  • You need the switch to mechanically survive 10^7 repeated operations.

  • You need the electrical connections to remain reliable - they may not wear out, bend excessively, oxidise, fatigue or stop conducting for any reason.

A far easier solution is to use a "Hall Switch" which is an electronic switch which is activated by the proximity of a magnetic pole and which has no electrical moving parts and no need for actual contact. The problem then becomes mainly a mechanical one.

You need to provide more details. Hall switches draw standby power. Whether this matters depends on your application. Then there are issues of force, distance of travel, frequency of operation and more. Tell us more and we can help more.

\$\endgroup\$
2
\$\begingroup\$

You definitely don't want to use a mechanical contact method if it needs to last 10M operations. In addition to Hall effect and opto-interrupter as Rocketmagnet suggested, there is also capacitive sense and other types of magnetic sense.

With capacitive sense, a passive chunk of conductor is moved between two fixed plates. None of these touch. The electrical connections are only to the fixed plates.

Other types of magnetic sense moves a chunk of magnetic material (iron) near a stationary coil, and the rest is electronics effectively measuring the change in inductance. Again, the magnetic material doesn't touch the coil, only get nearer and farther like with the Hall sensor. The electrical connections are only to the fixed coil.

The microcontroller won't be the limting factor. It routinely does M of little things per second. Micros don't wear out with use. Some of the parts may wear out over time, but that has relatively little to do with how many operations it performed as long as specs of temperature and maximum voltage were followed.

\$\endgroup\$

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.