Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

DC Motor PWM Circuit Doesn't Work When Controller And Motor Share Voltage Source?

silloprice

Newbie level 4
Joined
Jun 4, 2021
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
42
I've been experimenting with DC motor control using PWM from an Arduino Nano. Something I've noticed is that the circuit only works when the motor and controller use different voltage sources (see circuit 2). e.g. when the Arduino is powered by its USB port, and the motor is powered by my bench power supply. I understand the need for a common ground between the two parts of the circuit, but why can't they also share the same +5V source? (as shown in circuit 1).

View attachment 170086

I've also found this to be the case when using a MOS module as shown in the image below. If VCC and VIN are from the same supply, it doesn't work :/

View attachment 170087

Thank you in advance for any responses!

Charlie
 
Last edited by a moderator:

c_mitra

Advanced Member level 5
Joined
Nov 13, 2012
Messages
3,644
Helped
909
Reputation
1,820
Reaction score
883
Trophy points
1,393
Activity points
28,517
It should not be a problem but the attachments are not opening. Did you try to extensively decouple the motor from the power supply?

Common ground is also not strictly needed (if you use an opto coupler, for example), but just a small resistor, a small inductor and a decent filter capacitor should be sufficient to uncouple the arduino.
 

KlausST

Super Moderator
Staff member
Joined
Apr 17, 2014
Messages
19,722
Helped
4,343
Reputation
8,695
Reaction score
4,304
Trophy points
1,393
Activity points
130,544
Hi,

Attachments: There is a timeout from uploading file to sending the post.
Please generate a new post with new attachments.

***
The described problem seems to be caused by current overload. But we have no specification about currents.

Klaus
 

silloprice

Newbie level 4
Joined
Jun 4, 2021
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
42
Thank you for your responses. I have attached the images to this message.

The motor in question is a Syma X5C DC quadcopter motor which draws 1.5-2A with props attached.

It should not be a problem but the attachments are not opening. Did you try to extensively decouple the motor from the power supply?

Common ground is also not strictly needed (if you use an opto coupler, for example), but just a small resistor, a small inductor and a decent filter capacitor should be sufficient to uncouple the arduino.

In the DC motor circuits I've looked at, I've never seen people go to such efforts to decouple components from each other. I'm a first year undergrad in electromechanical engineering and I thought DC motor control would be the easiest thing to get started with! :LOL:
 

Attachments

  • diagrams.png
    diagrams.png
    45.3 KB · Views: 11
  • irf520-mosfet-driver-module.jpg
    irf520-mosfet-driver-module.jpg
    63.4 KB · Views: 10

KlausST

Super Moderator
Staff member
Joined
Apr 17, 2014
Messages
19,722
Helped
4,343
Reputation
8,695
Reaction score
4,304
Trophy points
1,393
Activity points
130,544
Hi,

it could be easy. But it may fail.
It´s nothing mystic. One can calculate it.

A USB port is able to supply 0.5A. If your circuit draws more than this - even for microseconds - then it may fail.

But without knowing the motor current ... it makes no sense to discuss...

Klaus
 

silloprice

Newbie level 4
Joined
Jun 4, 2021
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
42
Hi,

it could be easy. But it may fail.
It´s nothing mystic. One can calculate it.

A USB port is able to supply 0.5A. If your circuit draws more than this - even for microseconds - then it may fail.

But without knowing the motor current ... it makes no sense to discuss...

Klaus
Thanks for your response. I'm not powering the motor by USB or from a pin on the Arduino. The motor is powered by my 10A bench power supply. When I try powering the microcontroller from this same power supply it doesn't work, but when I power the microcontroller separately (by USB), it does work.
 

KlausST

Super Moderator
Staff member
Joined
Apr 17, 2014
Messages
19,722
Helped
4,343
Reputation
8,695
Reaction score
4,304
Trophy points
1,393
Activity points
130,544
Hi,

I can only help, if you tell me about the motor current.
Also please post a photo (filesize of 100kByte should be sufficient) of the complete wiring.

Klaus
 

dick_freebird

Advanced Member level 5
Joined
Mar 4, 2008
Messages
7,292
Helped
2,128
Reputation
4,261
Reaction score
1,988
Trophy points
1,393
Location
USA
Activity points
58,486
It might be less about current than its "chopping". The motor -drive- might be what needs a separation of signal / data supply and ground from electromechanical. Have you put a 'scope to the supply to see how filthy?
 

silloprice

Newbie level 4
Joined
Jun 4, 2021
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
42
Regarding motor current:
The motor in question is a Syma X5C DC quadcopter motor which draws 1.5-2A

Here is my wiring:

Snapchat-704446715-min-min.jpg


Snapchat-1248118408-min-min.jpg


Thanks,

Charlie
 

KlausST

Super Moderator
Staff member
Joined
Apr 17, 2014
Messages
19,722
Helped
4,343
Reputation
8,695
Reaction score
4,304
Trophy points
1,393
Activity points
130,544
Hi,

I missed the motor current information, sorry.

now you I see four of them... do you want all of them connected?
So we talk about 8A...and even more at startup and even more at the pulses?

Confusing: the schematic and the PCB is totally different in wiring and part values. Show the truth only! Otherwise you risk to confuse us and yourself.

****
Issues of your wiring:
* breadboard --> is not suitable for high current and pulsed current
* thin cables
* no bulk capacitor
* current flow (wiring order)
* GND loop

So it´s no surprise that it fails.

*****
Wiring, just one motor:
* disconnect everything except the motor.

* power supply: red and blue directly to the screw terminal of the driver PCB. In parallel install a 1000uF capacitor (short wires) to the screw terminal.
If by hand: install a 1uF ceramics in parallel to the 1000uF capacitor. Best directly soldered on the PCB.

* if not wired a t the motor: you need a fast recovery diode in parallel to the motor as shown in your schematic.

* you don´t need the 10k series resistor as shown in your schematic.

* Arduino: Use three wires from the 3 pin terminal of the driver PCB and wire them to the arduino.
(No other wires, no additional GND, don´t use the breadboard bus) Install a 100uF bulk low ESR capacitor at VCC and GND of the arduino.

Klaus
 

silloprice

Newbie level 4
Joined
Jun 4, 2021
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
42
Hi,

I missed the motor current information, sorry.

now you I see four of them... do you want all of them connected?
So we talk about 8A...and even more at startup and even more at the pulses?

Confusing: the schematic and the PCB is totally different in wiring and part values. Show the truth only! Otherwise you risk to confuse us and yourself.

****
Issues of your wiring:
* breadboard --> is not suitable for high current and pulsed current
* thin cables
* no bulk capacitor
* current flow (wiring order)
* GND loop

So it´s no surprise that it fails.

*****
Wiring, just one motor:
* disconnect everything except the motor.

* power supply: red and blue directly to the screw terminal of the driver PCB. In parallel install a 1000uF capacitor (short wires) to the screw terminal.
If by hand: install a 1uF ceramics in parallel to the 1000uF capacitor. Best directly soldered on the PCB.

* if not wired a t the motor: you need a fast recovery diode in parallel to the motor as shown in your schematic.

* you don´t need the 10k series resistor as shown in your schematic.

* Arduino: Use three wires from the 3 pin terminal of the driver PCB and wire them to the arduino.
(No other wires, no additional GND, don´t use the breadboard bus) Install a 100uF bulk low ESR capacitor at VCC and GND of the arduino.

Klaus
This is a great help. I've got it working now. Thank you for your suggestions.

Charlie
 

LaTeX Commands Quick-Menu:

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top