10 or more switches using a microcontroller

Posted on Feb 7, 2014

There are several ways to read multiple switch inputs using a reduced number of microcontroller-unit (MCU) pins. For example, you can use an analog MCU pin to read multiple switches by assigning a unique voltage to each switch through a resistor network, or you can use a one-wire device, such as the Maxim DS2408 8-channel addressable switch. The f

10 or more switches using a microcontroller
Click here to download the full size of the above Circuit.

irst method has several disadvantages: The MCU has to have an ADC function, debounce wait times reduce the polling rate, and an error results if the switch is opened during the ADC sampling time. The second method also has the drawback of comparatively low speed; it uses 1-wire communication, which requires continuous polling; and each poll generates an 8-bit data sequence relevant to switch positions. This Design Idea describes a method for reading multiple pushbuttons or open/closed switches using only two digital I/O pins and a timer interrupt of the MCU (Figure 1). Optionally, a third I/O pin can be assigned to periodically reset the CD4017 (a cascadable decoded 1-of-10 Johnson counter) for reliable operation should an EMI or ESD event occur that could falsely clock the counter, or you can use the circuit shown in Figure 2 and retain the two-pin feature. The diodes isolate the counter outputs in the event that two or more switches are closed at the same time. You can increase the number of switches connected by cascading multiple CD4017 ICs using a carry-out signal (pin 12) and a clock signal (pin 14). Figure 1 You can easily expand this circuit to many more than 10 switches, yet still use only two MCU I/O pins, by cascading multiple CD4017 counters through their carry-outs to the following enables. Reliable operation following the initial power-up reset depends on the CD4017 counter`s remaining synchronized with the...

Leave Comment

characters left:

Related Circuits

  • New Circuits



    Popular Circuits

    Null Printer Adapter
    Periodic Timer
    Digital Clock Using Microcontroller 89C52/89S52
    Mini Audio Mixer circuit
    Car Anti-Theft Wireless Alarm
    audio tone control 2 transistor circuit
    whistle responder schematics
    Stereo preamplifier with tone control
    Old G.P.O. Telephone
    Mini efficient coil launcher from disposable camera flash
    John C. BEDINI free energy Motor/Generator
    AR-300 DC arc welding machine circuit
    Connection of the stator coils b