1
\$\begingroup\$

I would like to have a circuit that could control an existing DC motor driver (without any datasheet) from a single push button. A long press would activate the driver, and short presses would switch between preselected speed.

The driver will works like this: (I want to replace the button and the potentiometer)

The driver will works like this

Is there already a component of this kind, or does anyone have any ideas on how to proceed? I can't use any microcontroller, I can only use digital logic.

\$\endgroup\$
3
  • 2
    \$\begingroup\$ Even if you don't have a datasheet of your motor driver, you will hopefully know how it is working. Please describe that. Without knowing this, we can't help you. That said, the task screams for a microcontroller. Any digital circuit will be immensely complex. Are you sure you can't use one? Why? \$\endgroup\$ Commented Oct 8 at 13:48
  • 1
    \$\begingroup\$ From a high level without knowing more, this seems like a job for a small microcontroller and possibly a digital potentiometer. The devil may be in the details. \$\endgroup\$ Commented Oct 8 at 14:07
  • \$\begingroup\$ I could imagine using something like a 14017 decade counter with a bunch of voltage dividers to implement the variable voltage - assuming that the pot is connected (via the controller) between the rails with the wiper providing a speed input. A few 555s could do most of the rest: distinguish between long and short presses, and provide the on/off. But while it could be an interesting exercise in retro-electronics, I'm not sure why you'd want to spend the extra money and effort compared to going down the arduino (or even digispark) route. Homework problem? \$\endgroup\$ Commented Oct 8 at 14:21

1 Answer 1

1
\$\begingroup\$

The idea is to build a small circuit that interprets the push button press: a long press toggles the driver ON or OFF, and short presses step through predefined speed levels.

The button first goes through a debounce circuit (usually an RC filter plus a Schmitt trigger inverter like the 74HC14) to clean up switch bounce. Then you need a way to tell the difference between a short and a long press, and that can be done with a monostable, such as the 74HC123, or a simple RC network tuned for about one second. If the button is held longer than that threshold, a flip-flop (like a CD4013) toggles state and drives your ESC’s "power button" through an optocoupler or a small MOSFET.

If the button is released before the threshold time, that edge triggers a pulse that advances a counter (for instance, a CD40193 or 74HC161). The counter outputs drive an analog multiplexer (like CD4051), which selects one resistor from a ladder network connected between Vcc and GND. This way you’re emulating the original potentiometer: each resistor corresponds to a specific speed setting, and the multiplexer chooses the right one according to how many short presses you’ve made.

So you end up with:

  • one long press: turn driver ON/OFF
  • short presses: cycle through speed presets

In this way, you don't have to use a microcontroller. The circuit runs on 5 V (or 3.3 V if your ESC uses a 3.3 V pot). You can easily tune the timing and resistance values depending on the pot you’re replacing. Before wiring it, measure the original potentiometer to check whether it’s used as a voltage divider or a rheostat, and note its supply voltage.

\$\endgroup\$

Your Answer

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.