0
\$\begingroup\$

I have already made a diagram using a motor controller.

The details of the actuators are:

  • Input voltage: 12VDC
  • Max Load: 750N(168.607lbs)
  • Stroke Length: 16 inch
  • Travel Speed: 12mm/s
  • Duty Cyle: 25%.

Could you please check if it is ok?

Some of my concerns are:

  • Be sure if the feed of 12 volts for the motors, and 5 volts for Arduino are correct and can live together as shown.

  • Be sure if the wiring for the Arduino, driver and motors is correct since it looks kind of simple.

Diagram1 enter image description here

I want to know if this is the natural approach by doing it with a voltage regulator to feed the Arduino and with 12V 10A power supply to feed the motors, or if there are other, better options to make the circuit feed only using one power supply (12V, 10A).

MDD10 Datasheet Link: https://www.robotshop.com/media/files/content/c/cyt/pdf/cytron-10a-7-30v-dual-channel-dc-motor-driver-shield-datasheet.pdf

UPDATE

I have increased power supply to 13A, also changed the linear voltage regulator (7805) to a switching voltage regulator (OKI-78SR-5), what do you think about this approach?

Diagram2 enter image description here

Or I should try with the 12V DC Vin of Arduino(I understand that it works with a linear voltage regulator)? Being this option, it could be maybe with a voltage pre-regulation stage(from 12V to 9V for example) or maybe connecting directly to the jack.

Diagram3 enter image description here Thanks, Best Regards.

I'm adding a fourth diagram..

Diagram4 enter image description here

The orange color is used to represent a heavy wire which goes from the 12v power supply to the ground of the motor driver, from the ground of the motor driver goes a normal cable to the arduino ground, and from the arduino ground a normal cable to C2 then to the ground of the voltage regulator then to C1.

This is to avoid noise caused by the motor driver to the arduino and the voltage regulator.

\$\endgroup\$
10
  • \$\begingroup\$ You need capacitors on the regulator. See the datasheet. And the MDD10? \$\endgroup\$ Commented Sep 14, 2019 at 16:08
  • \$\begingroup\$ @LeonHeller , MDD10 is the part number of the motor driver. I have edited(eliminated) that part to avoid confusion and be focus on the Circuit feeding, Thanks. \$\endgroup\$
    – punk code
    Commented Sep 14, 2019 at 16:15
  • 4
    \$\begingroup\$ An Arduino UNO has its own regulator better than your attempt, you should not externally regulate to 5v and feed that into what is intended to be a power output, but rather feed the Vin pin. If you want to spread the thermal load you could perhaps externally regulate to 8v or 9v though. \$\endgroup\$ Commented Sep 14, 2019 at 16:45
  • \$\begingroup\$ As for your question - apart from that ot might work, but no one can really say given how few details are provided. Design review questions, especially those not highlighting a specific concern and providing the supporting documentation, are not really encouraged here. \$\endgroup\$ Commented Sep 14, 2019 at 16:47
  • \$\begingroup\$ your low current needs should connect directly at the battery; sharing any wiring (at approximately 1uH/meter) with the high-spikey-motor-demands ----- is a very bad idea. Why? V = L * dI/dT, and 1uH * 1amp/uS = 1 volt of high-speed that linear regulators cannot remove; only LC or RC filters can do that removal. \$\endgroup\$ Commented Sep 14, 2019 at 16:55

2 Answers 2

1
\$\begingroup\$

I suggest you use a 9V linear regulator as a 'pre-regulator' to power the Arduino through the Vin pin or DC input jack. That way any noise on the 12V supply has to get through two stages of regulation before it can affect the Arduino.

The Arduino Uno's DC input jack has a diode in series for reverse voltage protection. This has the advantage that the power input can momentarily drop to zero without discharging the input capacitor. The same technique can be used on the pre-regulator. The circuit would look like this:-

schematic

simulate this circuit – Schematic created using CircuitLab

The voltage regulator ground should be connected directly to the Arduino ground, then to the motor driver ground, with another heavy wire going from the power supply to the motor driver ground. This prevents motor current from flowing through the ground wire between the regulator, Arduino and driver, which could cause glitches or worse.

\$\endgroup\$
14
  • \$\begingroup\$ Hi @Bruce, I understood that it is the same or even better to connect it directly to the 12v jack of arduino than using the handmade pre-regulator shown in the diagram. So could be my option to use the 12V jack of the arduino directly to the power supply 12V/10A? \$\endgroup\$
    – punk code
    Commented Sep 16, 2019 at 22:41
  • \$\begingroup\$ Yes, you could do that. \$\endgroup\$ Commented Sep 16, 2019 at 23:07
  • \$\begingroup\$ Hello @Bruce Abbott. I updated my question because I changed the schematic by adding a switching regulator, instead of the linear regulator. I also added the option you mention of pre regulating to 9v and connect to arduino Vin. Could you please check it, tell me if correct and which option do you believe is better, Thanks \$\endgroup\$
    – punk code
    Commented Sep 18, 2019 at 2:48
  • \$\begingroup\$ The lower circuit looks best. Using a pre-regulator (linear or switching) in series with the Arduino's on-board regulator provides better protection against spikes and dropouts on the power supply. Also the voltage is split between regulators so they run cooler (important if you are drawing significant current from the Arduino). \$\endgroup\$ Commented Sep 18, 2019 at 3:13
  • \$\begingroup\$ Thanks Bruce. I'm a little unclear about this part "The voltage regulator ground should be connected directly to the Arduino ground, then to the motor driver ground, with another heavy wire going from the power supply to the motor driver ground" . Is the wiring on my lower circuit diagram differente from that?. Cheers. \$\endgroup\$
    – punk code
    Commented Sep 19, 2019 at 3:13
0
\$\begingroup\$

Any time you are dealing with Point of load converters always start from the load you will be feeding. Once you understand your load and its requirements you may start working your way back. Load requirements may include Maximum Voltage Ripple, Maximum Tolerance Band, etc. There are more to be considered here but for hobby use this is enough to get you started with good POL design.

Lets look at our requirements

  • Uno max current = 20mA @ Maximum Clock Frequency(Always build in some Cushion if you can! ATMEGA_Datasheet
  • Supply Voltage of 5V (Based on Datasheet)
  • Low Pass Filtered VCC supply for AVCC (This implies a lower Ripple Voltage is asked for for the this)

Alright so now that we understand our requirements we can work backwards.

FIRST remember:

Liner Regulator (LDO)

Pros:

Simple, reliable, Low ripple

Cons:

Inefficient, Can get Hot (Vin-Vout)*Load Current = Power (this number gets big quick

Switcher

Pros:

Efficient, Much Better Load Transient response

Cons:

Can get complicated, Higher Part Count

Alright now that that is understood lets look at your system.

The 12V -> Switcher(5V) ->Uno

  1. You want to smooth out the output of that converter, thus you will need to add some capacitance both on the input and the output. How much? Look Here I personally recommend Ceramics. Do not get discouraged by the math! Just work your way through it. You can do it. The TI APP note does a great job walking you through everything.
  2. Now If you are feeding a Uno Dev Card I would recommend regulating down to 9V. This is echoing everyone else's point to use that which is already provided for you. No need to do more work than is necessary! IF you are feeding an ATMEGA chip straight the 5V should be fine. Just make sure to watch your Voltage Ripple.
  3. Regarding the Linear Regulator This approach would indeed be "cleanest/easiest" BUT lets not forget how Linears operate! (12V-5V)0.02A = 140mW.(Thanks Chris)* Next lets get the temperature rise. 140mW * 65 C/W = 9.1 Degree Temperature Rise, in this case not horrible, but as you can see if your current goes up you can get really hot really fast. Note that 65C/W is the Junction to Ambient of that LDO

Lastly, Motors are EXTREMELY Noisy. I personally would be reluctant to connect the motors to the same ground as your Arduino. I would place a Ferite bead or at the very least a resistor between the Arduino Ground and the motor grounds. Especially if the Motor drive chip and the Uno share the same PCB. Bruce's Answer mentions this as well.

\$\endgroup\$
2
  • \$\begingroup\$ "I personally would be reluctant to connect the motors to the same ground as your Arduino." Im seeing that part, then my last diagram(diagram 3) is not well connected? What do I need to modify? \$\endgroup\$
    – punk code
    Commented Sep 19, 2019 at 17:19
  • \$\begingroup\$ Well im sorry @punkcode i was unable to fund the full schematic of the MDD10, however i bring this up as a concern due to general design guidelines. You anytime that I design a PCB with a power source going to an IC and a motor I always try to isolate the "noisy Motor ground" from the analog ground. I would recommend for this setup that you at least put a 1 ohm resistor or Ferrite Bead between the ground of the IC and the Bus ground if this in on a PCB . If it is not i recommend you follow Bruce Abbots advise. \$\endgroup\$
    – Carlo
    Commented Sep 20, 2019 at 19:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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