[SOLVED] Arduino reboots when motors run , on independent power supply

Hello , first thank you for taking the time to read this ;

i am trying to run 6 brushed DC motors using 3 L293D microchips ; the 3 chips are connected to 2
74HC595 shift-registers ; the shift registers are commanded via Arduino SPI (an Atmega328 with arduino bootloader) ; here is a screenshot of the full schematic :

for the motors ; i am using a 12V power supply (12V , with 5A maximum current output) .
the arduino , 74HC595 chips and the L293D logic are powered with an independent sector isolated 5V input (1Amp maximum output current) . the 12V power supply and the 5V power supply share a common ground as do all of the components of this system .

i can command each of the motors individually ; the motors work perfectly according to their respective datasheets , i can run up to 2 motors this way and they function correctly . i would also like to note that all of the motors are connected to gearboxes and they function under load at all times .

the problems start when i try to get more than 2 motors working at the same time . once i trigger a third motor to run the arduino immediately reboots (i can tell that it reboots because i monitor the functioning via Serial communication , the program prints "boot" when it boots so thats how i tell that it reboots) ; the circuit is otherwise stable and functions correctly and it only reboots when a third motor is triggered .

My trouble-shooting attempts :

    • when i remove the 12V power supply ; and connect the 5V power supply to the motor power supply line (which means i connect the 5V power supply to both the arduino/micro-chip logic and the motor power supply line in the L293D ; which means that the same 5V power supply would power everything) in this case ; i can run all the motors at the same time (all 6 motors) they just run at a very slow speed ; the arduino doesn't reboot in this case the program continues to run . but motor speed is too slow and the motors cannot give enough force for my application

2)- when i remove the load from the motors (i remove the gearbox and all other forms of load) and allow the motors to turn freely ; with the 12V power supply in place . all 6 motors run correctly and the arduino doesn't reboot . when i put the load back on ; the arduino reboots when 3 motors are triggered to run at once

3)- i added a 1000uf electrolytic capacitor in parallel with the 12V line : it didn't solve the problem
i then added a 0.1uf ceramic capacitor in parallel with that : it didn't solve the problem
i then added an additional 100uf electrolytic capacitor in parallel with both of those : it didn't solve the problem
i then removed the 0.1uf capacitor and still problem not solved

4)- i tried all of the elements in attemp3 but with additional decoupling capacitors added in parallel with the 5V line as-well; still didn't solve the problem

5)- i don't have an oscilloscope at home , but i tried measuring things with a voltmeter : when any new motor starts running the voltage on the 5V line (which is a constant 4.95 without any motor running) drops by about 0.15 to 0.25V whenever any motor starts to run ; the motors being powered with the 12V line . i can't explain this .

it seems that when the current draw on the 12V line gets to a certain level (my guess around 1.2A) it causes some sort of interference that i can't understand ; and this interference causes the arduino to reboot . or there might be some sort of current spike happening on the 12V line .
the 12V line and 5V are fully independent and only share a common ground .

at this point i honestly don't know what to do ;
thank you for your attention .

Without actually probing your circuit I can only guess as I have seen similar things in the past. Double check your grounds, all the motor grounds must return to the 12V power supply. All the logic grounds to the 5V power supply then connect the two power supply grounds to each other. At this point all grounds are solid and the current from the motors goes to its supply and does not interfere with the logic ground. Be sure the 12V wiring is heavy enough.

amine2:
5)- i don't have an oscilloscope at home , but i tried measuring things with a voltmeter : when any new motor starts running the voltage on the 5V line (which is a constant 4.95 without any motor running) drops by about 0.15 to 0.25V whenever any motor starts to run ; the motors being powered with the 12V line . i can't explain this .

Your png file is unreadable, and you don't show the motors or power supplies.

Isolate the problem by powering the AtMega with a battery. It's possible that the load on the 12V supply is sending noise through the 5V supply. Have you tried a bypass capacitor on the 5V supply?

[ SOLVED ]
Hello ; thank you very much for the attention guys ;
gil : yes i made sure of all that
steve : yes i tried that ; i documented it in troubleshooting step 3

the problem was solved through adding decoupling capactors on the reset line . i added decoupling capacitors there and
the system now functions correctly .

thank you .

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.