I'm new to circuit design so please forgive any misstatements.

I'm wanting to create a circuit that turns on a device (mini water pump) when a voltage hits 4V or higher and turns off the same device when the voltage hits 3V or lower (then turn it back on at 4V).

I have a 18650 battery connected with a BMS to a mini solar panel that charges just fine. What I'm wanting is for the water pump to only turn on when the 18650 is nearly charged (at 4V) but automatically turn off at 3V so the 18650 can charge to near full again.

Any help in a simple circuit design would be much appreciated.

  • 3
    \$\begingroup\$ Just use a comparator window or a logic circuit with adjustable hysteresis. \$\endgroup\$
    – Antonio51
    May 12, 2022 at 17:15
  • 4
    \$\begingroup\$ Sounds like a classical Schmitt trigger \$\endgroup\$
    – Eugene Sh.
    May 12, 2022 at 17:19
  • \$\begingroup\$ The output is voltage or a LED? \$\endgroup\$
    – Jun Seo-He
    May 12, 2022 at 17:56
  • \$\begingroup\$ Schmitt trigger! Didn't know they existed. Thanks! \$\endgroup\$
    – Stu Goss
    May 12, 2022 at 18:23
  • 1
    \$\begingroup\$ Needs more information. It's fine to say 'Schmitt trigger' or 'window comparator', but those circuits will need a power source. What voltages are available? What does the solar panel output? Are there any other voltages available? What voltage does the pump run on? What BMS are you using? \$\endgroup\$
    – GodJihyo
    May 12, 2022 at 18:24

2 Answers 2


Pump Manager

Try this for a start. It is important that the circuit itself draws low current from the cell. This circuit is cheap and acceptable exact. A diode is used as reference voltage here, this has a temperature drift, but a precise reference is either expensive or draws more current. R02 and R03 together define the switch points, variation in R02 moves both switch points, R03 dominates the voltage difference between the points but they are not completely independent. You can make them variable to play with these parameters. Values in braces are calculated. R01 is also relevant here, but one of the 3 resistors must just be set as a start to calculate the others. The fet MCU30N02 is recommended for pump currents above 1A. The diode at the motor connector just kills inductive voltage spikes at pump turn off. At low voltages the opamp sees 0.43V at E- and an even lower voltage at E+. The output will be low and R03 will lower the voltage at E+ even more. With battery voltage rising E- will stay at nearly the same voltage but E+ will rise and cross the voltage at E- at 4V input. The opamp output will go high, the pump is turned on, and R03 will add a small voltage at E+. So E+ will be above E- on falling battery voltages until 3V is reached. E+ will then fall below E- and the opamp output will be low again. Using a microcontroller (e.g. atTiny) you can make designs, that draw less than 1uA, but to program deep sleep modes is not trivial.


You need a) a comparator with hysteresis b) a switch (if possible isolated).

If you're set on these exact values, you can just use the standard hysteresis comparator opamp circuit (Google/Wikipedia) and select the resistors for your thresholds, otherwise a comparator that is said "Schmidt trigger" will usually have suitable thresholds built-in when powered with 5V.

For the switch, depends on the load. For light ones you can simply use DC Solid State Relays (see standard application circuit in the datasheet or on Google). Otherwise, if your comparator has enough current capability (e.g. beefy opamp) you may be able to drive a 5V mechanical relay directly - but most likely you will need the classic N-MOS transistor+relay+freewheeling diode switch circuit. The MOS could take the load by itself but it is less simple to design, and you may need an optocoupler for safety.


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.