Why is Arduino resetting while driving motors?












1















I am driving motors for my line-follower project . The circuit schematic is given below Circuit schematic



The power source is a 11.1V 2200mAh 25C Lipo . Practically the cells give 11.5-12V. I used a switching buck regulator to step down the voltage. However , when i run my robot on track after few seconds,the arduino tends to reset and run again. This problem typically arises when i drive the motors at higher PWM(above 180 on analogWrite function). Since i use PID, limiting the PWM means i have to drive at lower speeds which i do not want.



I am providing links for the items i used for my circuit.



1) BUCK CONVERTER - https://www.amazon.in/LM2596S-Converter-Module-Supply-1-23V-30V/dp/B0784PYZ97/ref=sr_1_14_sspa?crid=2XRBYP632OY0B&keywords=buck+converter&qid=1553455574&s=electronics&sprefix=buck+c%2Celectronics%2C298&sr=1-14-spons&psc=1



2) MOTOR DRIVER - https://www.amazon.in/Generic-E_14013096-Tb6612Fng-Arduino-Microcontroller/dp/B01DAA6GMC/ref=sr_1_1?crid=TKGYYCKNQJCK&keywords=tb6612fng+dual+motor+driver&qid=1553455725&s=gateway&sprefix=tb66%2Celectronics%2C812&sr=8-1



3) IR SENSOR MODULE - https://www.amazon.in/Products-Channel-Analogue-Digital-Follower/dp/B07GXL5L7J/ref=sr_1_2?keywords=ir+sensor&qid=1553455761&s=electronics&sr=1-2



4) DC MOTORS - https://www.amazon.in/Invento-Kg-cm-Shaft-Torque-Geared/dp/B07CKMFYDG/ref=sr_1_34?crid=32XN84K8LZ4PJ&keywords=dc+motor+500+rpm&qid=1553455839&s=gateway&sprefix=dc+motor+500%2Caps%2C320&sr=8-34



The sensor array draws 150mA at peak. Any suggestions as to where the problem might lie would be of great help. Thank you .










share|improve this question







New contributor




user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • The buck converter is producing 5.5 V? That may be too low for the VIN input on Arduino, where the voltage regulator needs at least 7 V and is therefore causing brown-out.

    – MichaelT
    3 hours ago
















1















I am driving motors for my line-follower project . The circuit schematic is given below Circuit schematic



The power source is a 11.1V 2200mAh 25C Lipo . Practically the cells give 11.5-12V. I used a switching buck regulator to step down the voltage. However , when i run my robot on track after few seconds,the arduino tends to reset and run again. This problem typically arises when i drive the motors at higher PWM(above 180 on analogWrite function). Since i use PID, limiting the PWM means i have to drive at lower speeds which i do not want.



I am providing links for the items i used for my circuit.



1) BUCK CONVERTER - https://www.amazon.in/LM2596S-Converter-Module-Supply-1-23V-30V/dp/B0784PYZ97/ref=sr_1_14_sspa?crid=2XRBYP632OY0B&keywords=buck+converter&qid=1553455574&s=electronics&sprefix=buck+c%2Celectronics%2C298&sr=1-14-spons&psc=1



2) MOTOR DRIVER - https://www.amazon.in/Generic-E_14013096-Tb6612Fng-Arduino-Microcontroller/dp/B01DAA6GMC/ref=sr_1_1?crid=TKGYYCKNQJCK&keywords=tb6612fng+dual+motor+driver&qid=1553455725&s=gateway&sprefix=tb66%2Celectronics%2C812&sr=8-1



3) IR SENSOR MODULE - https://www.amazon.in/Products-Channel-Analogue-Digital-Follower/dp/B07GXL5L7J/ref=sr_1_2?keywords=ir+sensor&qid=1553455761&s=electronics&sr=1-2



4) DC MOTORS - https://www.amazon.in/Invento-Kg-cm-Shaft-Torque-Geared/dp/B07CKMFYDG/ref=sr_1_34?crid=32XN84K8LZ4PJ&keywords=dc+motor+500+rpm&qid=1553455839&s=gateway&sprefix=dc+motor+500%2Caps%2C320&sr=8-34



The sensor array draws 150mA at peak. Any suggestions as to where the problem might lie would be of great help. Thank you .










share|improve this question







New contributor




user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • The buck converter is producing 5.5 V? That may be too low for the VIN input on Arduino, where the voltage regulator needs at least 7 V and is therefore causing brown-out.

    – MichaelT
    3 hours ago














1












1








1








I am driving motors for my line-follower project . The circuit schematic is given below Circuit schematic



The power source is a 11.1V 2200mAh 25C Lipo . Practically the cells give 11.5-12V. I used a switching buck regulator to step down the voltage. However , when i run my robot on track after few seconds,the arduino tends to reset and run again. This problem typically arises when i drive the motors at higher PWM(above 180 on analogWrite function). Since i use PID, limiting the PWM means i have to drive at lower speeds which i do not want.



I am providing links for the items i used for my circuit.



1) BUCK CONVERTER - https://www.amazon.in/LM2596S-Converter-Module-Supply-1-23V-30V/dp/B0784PYZ97/ref=sr_1_14_sspa?crid=2XRBYP632OY0B&keywords=buck+converter&qid=1553455574&s=electronics&sprefix=buck+c%2Celectronics%2C298&sr=1-14-spons&psc=1



2) MOTOR DRIVER - https://www.amazon.in/Generic-E_14013096-Tb6612Fng-Arduino-Microcontroller/dp/B01DAA6GMC/ref=sr_1_1?crid=TKGYYCKNQJCK&keywords=tb6612fng+dual+motor+driver&qid=1553455725&s=gateway&sprefix=tb66%2Celectronics%2C812&sr=8-1



3) IR SENSOR MODULE - https://www.amazon.in/Products-Channel-Analogue-Digital-Follower/dp/B07GXL5L7J/ref=sr_1_2?keywords=ir+sensor&qid=1553455761&s=electronics&sr=1-2



4) DC MOTORS - https://www.amazon.in/Invento-Kg-cm-Shaft-Torque-Geared/dp/B07CKMFYDG/ref=sr_1_34?crid=32XN84K8LZ4PJ&keywords=dc+motor+500+rpm&qid=1553455839&s=gateway&sprefix=dc+motor+500%2Caps%2C320&sr=8-34



The sensor array draws 150mA at peak. Any suggestions as to where the problem might lie would be of great help. Thank you .










share|improve this question







New contributor




user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I am driving motors for my line-follower project . The circuit schematic is given below Circuit schematic



The power source is a 11.1V 2200mAh 25C Lipo . Practically the cells give 11.5-12V. I used a switching buck regulator to step down the voltage. However , when i run my robot on track after few seconds,the arduino tends to reset and run again. This problem typically arises when i drive the motors at higher PWM(above 180 on analogWrite function). Since i use PID, limiting the PWM means i have to drive at lower speeds which i do not want.



I am providing links for the items i used for my circuit.



1) BUCK CONVERTER - https://www.amazon.in/LM2596S-Converter-Module-Supply-1-23V-30V/dp/B0784PYZ97/ref=sr_1_14_sspa?crid=2XRBYP632OY0B&keywords=buck+converter&qid=1553455574&s=electronics&sprefix=buck+c%2Celectronics%2C298&sr=1-14-spons&psc=1



2) MOTOR DRIVER - https://www.amazon.in/Generic-E_14013096-Tb6612Fng-Arduino-Microcontroller/dp/B01DAA6GMC/ref=sr_1_1?crid=TKGYYCKNQJCK&keywords=tb6612fng+dual+motor+driver&qid=1553455725&s=gateway&sprefix=tb66%2Celectronics%2C812&sr=8-1



3) IR SENSOR MODULE - https://www.amazon.in/Products-Channel-Analogue-Digital-Follower/dp/B07GXL5L7J/ref=sr_1_2?keywords=ir+sensor&qid=1553455761&s=electronics&sr=1-2



4) DC MOTORS - https://www.amazon.in/Invento-Kg-cm-Shaft-Torque-Geared/dp/B07CKMFYDG/ref=sr_1_34?crid=32XN84K8LZ4PJ&keywords=dc+motor+500+rpm&qid=1553455839&s=gateway&sprefix=dc+motor+500%2Caps%2C320&sr=8-34



The sensor array draws 150mA at peak. Any suggestions as to where the problem might lie would be of great help. Thank you .







arduino-mega power motor ir






share|improve this question







New contributor




user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 5 hours ago









user9999114user9999114

61




61




New contributor




user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






user9999114 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • The buck converter is producing 5.5 V? That may be too low for the VIN input on Arduino, where the voltage regulator needs at least 7 V and is therefore causing brown-out.

    – MichaelT
    3 hours ago



















  • The buck converter is producing 5.5 V? That may be too low for the VIN input on Arduino, where the voltage regulator needs at least 7 V and is therefore causing brown-out.

    – MichaelT
    3 hours ago

















The buck converter is producing 5.5 V? That may be too low for the VIN input on Arduino, where the voltage regulator needs at least 7 V and is therefore causing brown-out.

– MichaelT
3 hours ago





The buck converter is producing 5.5 V? That may be too low for the VIN input on Arduino, where the voltage regulator needs at least 7 V and is therefore causing brown-out.

– MichaelT
3 hours ago










3 Answers
3






active

oldest

votes


















3














The VIN pin goes to a 5V voltage regulator on the Arduino and needs at least about 7V minimum to work properly. If you want to supply 5V to an Arduino do it either on the 5V pin or via the USB connector. The VIN pin should receive 7V to 12V.






share|improve this answer
























  • This is the correct answer. VIN a high enough voltage to be regulated down to 5V. I suggest feeding 5V into your USB connector. That way you don't bypass the source switching and protection circuitry on the Arduino.

    – Duncan C
    3 hours ago



















1














Resetting is due either to a software bug or voltage sag, and since it correlates with driving the motors harder, it's almost certainly the latter. You probably suspected as much since you mentioned the current draw of the sensor array. A quick experiment - disconnecting the sensors (and possibly a software patch to keep the robot running straight, without them) might help you discover the reason.



Each chip and each of its pin drivers has a current budget. It would be a good idea to look at the max current spec of the Atmega2560 and its pin drivers, and any other current specs mentioned in the datasheet, and make sure you're not trying to run it out of spec. The buck converter will have a limit, too, so make sure you're within its spec. If the output regulation of the buck converter is good enough, you can regulate it to 5v and bypass the Mega's on board regulator, for another saving.






share|improve this answer































    -1














    One major drawback to working with motors is the large amounts of electrical noise they produce. This noise can interfere with your sensors and can even impair your microcontroller by causing voltage dips on your regulated power line. Large enough voltage dips can corrupt the data in microcontroller registers or cause the microcontroller to reset. You can avoid this problem by soldering capacitors along your motor terminals. Use 1µF ceramic capacitors for example






    share|improve this answer
























    • Why the down-vote? Everything in this answer is good advice. Motors introduce a lot of noise on the power input. Adding filter capacitors is a very good idea. (That said, the biggest problem is likely too low an input voltage to VIN)

      – Duncan C
      3 hours ago











    Your Answer






    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("schematics", function () {
    StackExchange.schematics.init();
    });
    }, "cicuitlab");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "540"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });






    user9999114 is a new contributor. Be nice, and check out our Code of Conduct.










    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2farduino.stackexchange.com%2fquestions%2f62846%2fwhy-is-arduino-resetting-while-driving-motors%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    3














    The VIN pin goes to a 5V voltage regulator on the Arduino and needs at least about 7V minimum to work properly. If you want to supply 5V to an Arduino do it either on the 5V pin or via the USB connector. The VIN pin should receive 7V to 12V.






    share|improve this answer
























    • This is the correct answer. VIN a high enough voltage to be regulated down to 5V. I suggest feeding 5V into your USB connector. That way you don't bypass the source switching and protection circuitry on the Arduino.

      – Duncan C
      3 hours ago
















    3














    The VIN pin goes to a 5V voltage regulator on the Arduino and needs at least about 7V minimum to work properly. If you want to supply 5V to an Arduino do it either on the 5V pin or via the USB connector. The VIN pin should receive 7V to 12V.






    share|improve this answer
























    • This is the correct answer. VIN a high enough voltage to be regulated down to 5V. I suggest feeding 5V into your USB connector. That way you don't bypass the source switching and protection circuitry on the Arduino.

      – Duncan C
      3 hours ago














    3












    3








    3







    The VIN pin goes to a 5V voltage regulator on the Arduino and needs at least about 7V minimum to work properly. If you want to supply 5V to an Arduino do it either on the 5V pin or via the USB connector. The VIN pin should receive 7V to 12V.






    share|improve this answer













    The VIN pin goes to a 5V voltage regulator on the Arduino and needs at least about 7V minimum to work properly. If you want to supply 5V to an Arduino do it either on the 5V pin or via the USB connector. The VIN pin should receive 7V to 12V.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered 5 hours ago









    Jeff WahausJeff Wahaus

    4185




    4185













    • This is the correct answer. VIN a high enough voltage to be regulated down to 5V. I suggest feeding 5V into your USB connector. That way you don't bypass the source switching and protection circuitry on the Arduino.

      – Duncan C
      3 hours ago



















    • This is the correct answer. VIN a high enough voltage to be regulated down to 5V. I suggest feeding 5V into your USB connector. That way you don't bypass the source switching and protection circuitry on the Arduino.

      – Duncan C
      3 hours ago

















    This is the correct answer. VIN a high enough voltage to be regulated down to 5V. I suggest feeding 5V into your USB connector. That way you don't bypass the source switching and protection circuitry on the Arduino.

    – Duncan C
    3 hours ago





    This is the correct answer. VIN a high enough voltage to be regulated down to 5V. I suggest feeding 5V into your USB connector. That way you don't bypass the source switching and protection circuitry on the Arduino.

    – Duncan C
    3 hours ago











    1














    Resetting is due either to a software bug or voltage sag, and since it correlates with driving the motors harder, it's almost certainly the latter. You probably suspected as much since you mentioned the current draw of the sensor array. A quick experiment - disconnecting the sensors (and possibly a software patch to keep the robot running straight, without them) might help you discover the reason.



    Each chip and each of its pin drivers has a current budget. It would be a good idea to look at the max current spec of the Atmega2560 and its pin drivers, and any other current specs mentioned in the datasheet, and make sure you're not trying to run it out of spec. The buck converter will have a limit, too, so make sure you're within its spec. If the output regulation of the buck converter is good enough, you can regulate it to 5v and bypass the Mega's on board regulator, for another saving.






    share|improve this answer




























      1














      Resetting is due either to a software bug or voltage sag, and since it correlates with driving the motors harder, it's almost certainly the latter. You probably suspected as much since you mentioned the current draw of the sensor array. A quick experiment - disconnecting the sensors (and possibly a software patch to keep the robot running straight, without them) might help you discover the reason.



      Each chip and each of its pin drivers has a current budget. It would be a good idea to look at the max current spec of the Atmega2560 and its pin drivers, and any other current specs mentioned in the datasheet, and make sure you're not trying to run it out of spec. The buck converter will have a limit, too, so make sure you're within its spec. If the output regulation of the buck converter is good enough, you can regulate it to 5v and bypass the Mega's on board regulator, for another saving.






      share|improve this answer


























        1












        1








        1







        Resetting is due either to a software bug or voltage sag, and since it correlates with driving the motors harder, it's almost certainly the latter. You probably suspected as much since you mentioned the current draw of the sensor array. A quick experiment - disconnecting the sensors (and possibly a software patch to keep the robot running straight, without them) might help you discover the reason.



        Each chip and each of its pin drivers has a current budget. It would be a good idea to look at the max current spec of the Atmega2560 and its pin drivers, and any other current specs mentioned in the datasheet, and make sure you're not trying to run it out of spec. The buck converter will have a limit, too, so make sure you're within its spec. If the output regulation of the buck converter is good enough, you can regulate it to 5v and bypass the Mega's on board regulator, for another saving.






        share|improve this answer













        Resetting is due either to a software bug or voltage sag, and since it correlates with driving the motors harder, it's almost certainly the latter. You probably suspected as much since you mentioned the current draw of the sensor array. A quick experiment - disconnecting the sensors (and possibly a software patch to keep the robot running straight, without them) might help you discover the reason.



        Each chip and each of its pin drivers has a current budget. It would be a good idea to look at the max current spec of the Atmega2560 and its pin drivers, and any other current specs mentioned in the datasheet, and make sure you're not trying to run it out of spec. The buck converter will have a limit, too, so make sure you're within its spec. If the output regulation of the buck converter is good enough, you can regulate it to 5v and bypass the Mega's on board regulator, for another saving.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 5 hours ago









        JRobertJRobert

        10.2k21136




        10.2k21136























            -1














            One major drawback to working with motors is the large amounts of electrical noise they produce. This noise can interfere with your sensors and can even impair your microcontroller by causing voltage dips on your regulated power line. Large enough voltage dips can corrupt the data in microcontroller registers or cause the microcontroller to reset. You can avoid this problem by soldering capacitors along your motor terminals. Use 1µF ceramic capacitors for example






            share|improve this answer
























            • Why the down-vote? Everything in this answer is good advice. Motors introduce a lot of noise on the power input. Adding filter capacitors is a very good idea. (That said, the biggest problem is likely too low an input voltage to VIN)

              – Duncan C
              3 hours ago
















            -1














            One major drawback to working with motors is the large amounts of electrical noise they produce. This noise can interfere with your sensors and can even impair your microcontroller by causing voltage dips on your regulated power line. Large enough voltage dips can corrupt the data in microcontroller registers or cause the microcontroller to reset. You can avoid this problem by soldering capacitors along your motor terminals. Use 1µF ceramic capacitors for example






            share|improve this answer
























            • Why the down-vote? Everything in this answer is good advice. Motors introduce a lot of noise on the power input. Adding filter capacitors is a very good idea. (That said, the biggest problem is likely too low an input voltage to VIN)

              – Duncan C
              3 hours ago














            -1












            -1








            -1







            One major drawback to working with motors is the large amounts of electrical noise they produce. This noise can interfere with your sensors and can even impair your microcontroller by causing voltage dips on your regulated power line. Large enough voltage dips can corrupt the data in microcontroller registers or cause the microcontroller to reset. You can avoid this problem by soldering capacitors along your motor terminals. Use 1µF ceramic capacitors for example






            share|improve this answer













            One major drawback to working with motors is the large amounts of electrical noise they produce. This noise can interfere with your sensors and can even impair your microcontroller by causing voltage dips on your regulated power line. Large enough voltage dips can corrupt the data in microcontroller registers or cause the microcontroller to reset. You can avoid this problem by soldering capacitors along your motor terminals. Use 1µF ceramic capacitors for example







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 4 hours ago









            Zunzulla alagatyZunzulla alagaty

            9111




            9111













            • Why the down-vote? Everything in this answer is good advice. Motors introduce a lot of noise on the power input. Adding filter capacitors is a very good idea. (That said, the biggest problem is likely too low an input voltage to VIN)

              – Duncan C
              3 hours ago



















            • Why the down-vote? Everything in this answer is good advice. Motors introduce a lot of noise on the power input. Adding filter capacitors is a very good idea. (That said, the biggest problem is likely too low an input voltage to VIN)

              – Duncan C
              3 hours ago

















            Why the down-vote? Everything in this answer is good advice. Motors introduce a lot of noise on the power input. Adding filter capacitors is a very good idea. (That said, the biggest problem is likely too low an input voltage to VIN)

            – Duncan C
            3 hours ago





            Why the down-vote? Everything in this answer is good advice. Motors introduce a lot of noise on the power input. Adding filter capacitors is a very good idea. (That said, the biggest problem is likely too low an input voltage to VIN)

            – Duncan C
            3 hours ago










            user9999114 is a new contributor. Be nice, and check out our Code of Conduct.










            draft saved

            draft discarded


















            user9999114 is a new contributor. Be nice, and check out our Code of Conduct.













            user9999114 is a new contributor. Be nice, and check out our Code of Conduct.












            user9999114 is a new contributor. Be nice, and check out our Code of Conduct.
















            Thanks for contributing an answer to Arduino Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2farduino.stackexchange.com%2fquestions%2f62846%2fwhy-is-arduino-resetting-while-driving-motors%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            GameSpot

            connect to host localhost port 22: Connection refused

            Getting a Wifi WPA2 wifi connection