Continue to Site

Welcome to

Welcome to our site! 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 controller problem

Not open for further replies.


Junior Member level 3
Jul 9, 2011
Reaction score
Trophy points
Activity points
I used this circuit to control my dc motor using mcu (pic18f45k20),
but when i soldered it to the board and started program from chip which set port1 to high nothing happened
(when i measured it with voltmeter everything seemed to be alright but motor was not rotating)...

Any solutions, ideas or anything else is welcome.

What is the voltage applied to the bridge circuit? Is the motor designed to work at that motor? Connect the motor between the +v and gnd and see if it rotates. Check the voltage at the base of the transistors. It should read 0.6 or 0.7v for the top left and bottom right transistors.

Hope this helps.

---------- Post added at 00:13 ---------- Previous post was at 00:07 ----------

Also, I suggest you connect a diode across each transistor.
Like here:


Well voltage that comes from chip is 3V and voltage for motor is 6V, when connect motor to the battery is rotates just great.
And voltage at top left transistor base is 1.65V and at bottom right one's base is 1.14V.

And what is diodes' function? How does they work in here?

If you turn on the two upper circuits, the motor resists turning, so you effectively have a breaking mechanism. The same is true if you turn on both of the lower circuits. This is because the motor is a generator and when it turns it generates a voltage. If the terminals of the motor are connected (shorted), then the voltage generated counteracts the motors freedom to turn. It is as if you are applying a similar but opposite voltage to the one generated by the motor being turned. Vis-ã-vis, it acts like a brake.

To be nice to your transistors, you should add diodes to catch the back voltage that is generated by the motor's coil when the power is switched on and off. This flyback voltage can be many times higher than the supply voltage! If you don't use diodes, you could burn out your transistors.

Which transistors are you using?

I think I know what the problem is. So, if there is 3v coming from chip and say 1.1v drop, the motor gets only 1.9v. You might use a "pre-driver" stage that shifts the voltage up to 6v. You can implement this with a transistor. You might think of using a PNP high side and an NPN pre-driver stage.

Hope this helps.

Your high side transistors are connected as emitter followers so the output voltage is Vbase -Vbe, in your case you drive the base with 3v and the transistor Vbe is about 0.7v (or 0.7+0.7 if you use a darlington) so the emitter output voltage will be 3v-0.7v=2.3v , if you also calculate the Vce saturation of the lower side transistors you will get an additional voltage drop so the the result is less than 2v on the motor (or 1.5v with darlington)


Not open for further replies.

Part and Inventory Search

Welcome to