Electronic – arduino power problem when using boost converter

arduinomicrocontrollermotorpower supplyswitching-regulator

I am making a bot capable of solving a maze.

I will explain the setup first. There is a 18650 3.7V battery, using a XL6009 DC-DC boost switching regulator, like this one:

enter image description here

Picture Source

I boost the voltages up to 9.5V. Then I make 2 parallel lines. One goes to the Motor Driver voltage (motors work fine at 10-12V). The other end goes to the Vin of the Arduino.

When I attempt to test the motors, the Arduino sort of resets everytime although it works fine if I test some other peripherals and disconnect the motor driver and hence the motors.

Again the motors work fine, if I power the Arduino separately like from a 9V battery keeping the rest of the circuot as it is.

What am I doing wrong?

Will connecting a linear regulator like 7809 / 7805 in series before powering up the Arduino help ?

enter image description here

Best Answer

I agree with @vtolentino's assessment that the DC motor's startup current is so large that the motor overwhelms the XL6009 DC/DC converter. The converter's output voltage has a momentary but significant voltage droop (a.k.a., a voltage brownout) that causes the microcontroller to reset itself. This can be confirmed by monitoring the DC/DC converter's output voltage with an oscilloscope and observing what happens to the voltage amplitude when the DC motor starts up. (NB: And I would not be surprised if the 9.5 VDC power rail has significant noise on it when the DC motor is running. This noise can easily cause the microcontroller to reset itself, and can cause erratic data when performing analog-to-digital conversions, etc.)

As a general rule, one should not power both a digital load (like a microcontroller) and a motor load from the same power rail. A far better approach is to create/use separate, independent power sources for the digital load and the DC motor. For example, connect two XL6009 DC/DC converters to your battery. Use one XL6009 to supply power the microcontroller, and use the second XL6009 to supply power the DC motor. Connect together the grounds at the outputs of the two XL6009 boards so that they share a common ground potential.