6
\$\begingroup\$

How can I prevent or reduce the effects of low voltage causing the Arduino to reset? What would be the best proactive or reactive methods to deal with brown out resets?

Edit: is there a reactive way to programmatically know if there has been a brown out?

\$\endgroup\$
5
\$\begingroup\$

A common cause of supply voltage sag and thus brown-out reset of Arduinos is when additional devices, such as motors, electromagnetic relays, or high power LEDs, are supplied from the same power source as the Arduino. The power supply needs to have the capacity to sustain regulated voltage under such loads, else the voltage drops.

This is exacerbated when the power source is USB: USB ports supply up to 500 mA by default, and unpowered USB hubs can drop to even lower depending on other USB peripherals connected.

The solution to this issue is to source the high current device's power independently of the Arduino (but with the grounds connected together), and use a BJT, MOSFET or low-drive-current relay to switch the device from the Arduino.

The other basic proactive approach, especially when transient current draws (a flashing high power LED, or a stepper motor, for instance) are causing a supply voltage drop, is to use a suitably large capacitor on the supply line (PWRIN on the Arduino schematic), as a reservoir capacitor to tide over these transients. If the current draw is consistently high, this will not solve the issue, though, and a higher rated power source would be needed.

\$\endgroup\$
3
\$\begingroup\$

To be upfront: The best method is to lower the clock frequency. Based on the ATmega's datasheet, it reliably can run at 16MHz down to about 4.5V. (Note that this spec is for a wide temperature range, which is why so many people are successful at getting their 3.3V boards to run at 16MHz.)

However, unless you are doing a custom design this may not be an option.

Otherwise, you will need to do some extra decoupling to prevent the supply voltage from sagging. This will, of course, depend on what other hardware is in the circuit.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy