I am starting a project which will control a small motor, some LED for illumination and read some analog sensors and I need to power it via a solar panel. I am looking for the best option on microcontroller to use but I don't know much about the topic. I need that such microcontroller have 2 analog inputs, 8 digital I/O, at least one interrupt pin, a 16 bit timer would help but an 8 bit timer also would do the job. The speed is not really an issue here but the power consumption is the thing that concerns me the most.

I was watching some ESP32 and I like the fact that they have dual core and are low consumption but I won't use the Wi-Fi module and I just feel that it would be a waste.

For the motor I have a module A4988 Polulu where you just put the pin in low and high. I was thinking about more efficient microcontrollers than Arduino.

I really appreciate suggestions.

  • Anything ATmega328 based, i.e. Arduino Nano/Micro/Mini without the motor control - or an Arduino Uno with Motor driver shield. Seeing as you specific motor control as a requirement, then the Uno and an appropriate shield is the best bet. Jun 3, 2019 at 18:51
  • For the motor I have a module a4988 polulu where you just put the pin in low and high. I was thinking more efficient microcontrollers than arduino but for sure I will give it a try Jun 3, 2019 at 19:50
  • When you say module, do you mean like this? Jun 3, 2019 at 19:53

1 Answer 1


An ATmega328 has three timers, one of which, Timer1, is a 16 bit timer. The Arduino Uno and Nano both use an ATmega328.

As you say that you have a A4988 module,

A4988 module

then an Arduino Uno with a CNC driver shield would be a simple option:

Arduino Uno with CNC shield for A4988 drivers

A smaller option would be an Arduino Nano with a CNC board:

Nano with CNC board

You could power it via a LiPo, using a TP4056 module, which has both Battery (B) and Load (OUT) outputs - there are two types of modules out there, one of which does not not a load output. This is probably what you need

TP4056 modules with load

Your solar panel would connect to the + and - inputs.

Obviously, you would use as many, or few, TP4056 modules as needed, depending on the voltage requirement of the µController. A NodeMCU µController would only need one LiPo and one TP4056, whereas an Arduino Nano/Uno would need two of each. There are the Arduino Pro Micro and Pro Mini that only require 3 V which run at slower clock speeds, which would match your efficiency requirement.

For use with a solar panel, see How to autoregulate a TP4056 for maximum solar power extraction for ideas about that.

  • Out of curiosity: what's the sleep current for the ATmega?
    – jaskij
    Jun 4, 2019 at 6:00

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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.