Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Power Op-Amp choices?

Status
Not open for further replies.

czwalga

New Member
I have a PWM signal coming from my microcontroller that is powering my motor. The motor has a stall current of about 9 amps. I have a battery for an external power source. I was going to use an opamp to power the motor, but my choices seem limited. I'm looking for something like the L149 but with a higher current threshold.

Is there a better way to go about doing this?
 

philba

New Member
don't bother with an op-amp. use a MOSFET for unidirectional control. Use an H-Bridge for bidirectional...
 

czwalga

New Member
philba said:
don't bother with an op-amp. use a MOSFET for unidirectional control. Use an H-Bridge for bidirectional...



The PWM voltage will be varying based on the controller I build to reduce overshoot.

If I use a mosfet/hbridge the voltage will have to be fixed. I just need a way to add current to a variable voltage.
 

philba

New Member
Is that really necessary? You should be able to control overshoot via true PWM. You just need a way to measure overshoot (or the precursor to it) and correct your pulse width. Take a look at how some of the Allegro stepper controllers work. There ought be some ideas you can adapt. The advantage of switching is that you have significantly less heat build up. Operating your output transistors in the linear region will see a lot of heat. ...and at 9A, I suspect you will see a LOT of heat.
 

dknguyen

Well-Known Member
Most Helpful Member
You could use areally really big op-amp, but it wastes much more energy than using a switched MOSFET and you have less design considerations to worry about (highly capacitive loads or highly inductive loads like a motor can wreak havoc with the circuits inside an op-amp).
 

czwalga

New Member
You guys are probably right. Never done anything exactly like this.

As of right now I have a pwm signal coming out of a microcontroller i built, the motor has a 0-5v pot for feedback. What exactly should I use to power the motor?


Also the motor has a stall current of about 9 amps; the average drive current is around 2-3amps I believe. Been a while since I tested that.
 

dknguyen

Well-Known Member
Most Helpful Member
Connect the pot to the microcontroller as a variable resistive divider. YOu can then measure the voltage to get motor position. From there you code your processor to send out PWM to the motor depending on current motor position and desired position.

Now about how to actually drive the motor by sending it PWM....Do you need continuous rotation or "elbow rotation"? Do you need to be able to reverse directions? If it's a servo motor you need elbow and to be able to reverse direciton. In which case, you need 4 transistors instead of just one:

CHeck out all 3 sections of this:
https://www.modularcircuits.com/h-bridge_secrets1.htm

You also probably need a gate driver that accepts the PWM from the microcontroller and then outputs it to the gate with increased current capacity (and possibly higher voltage) to drive the gate of the MOSFET on and off fast enough. National has a bunch of simple ones. FOr your scale project you should use PMOS transistors for the high-side rather than NMOS (greatly complicates things if you do use NMOS though you get slightly increased performance). Read the link to find out more.
 
Last edited:

czwalga

New Member
dknguyen said:
Connect the pot to the microcontroller as a variable resistive divider. YOu can then measure the voltage to get motor position. From there you code your processor to send out PWM to the motor depending on current motor position and desired position.

Now about how to actually drive the motor by sending it PWM....Do you need continuous rotation or "elbow rotation"? Do you need to be able to reverse directions? If it's a servo motor you need elbow and to be able to reverse direciton. In which case, you need 4 transistors instead of just one:

CHeck out all 3 sections of this:
https://www.modularcircuits.com/h-bridge_secrets1.htm

You also probably need a gate driver that accepts the PWM from the microcontroller and then outputs it to the gate with increased current capacity (and possibly higher voltage) to drive the gate of the MOSFET on and off fast enough. National has a bunch of simple ones. FOr your scale project you should use PMOS transistors for the high-side rather than NMOS (greatly complicates things if you do use NMOS though you get slightly increased performance). Read the link to find out more.



The motor is a brushed DC motor; however its built into a housing that limits it's rotation. The goal is to make it behave like a servo. It's also spring loaded; because of this i think im going to rely on the spring for reverse rotation, so it will only need to be powered foward.
 

dknguyen

Well-Known Member
Most Helpful Member
Then you only need one MOSFET. Tie one motor terminal to the motor voltage, tie the other terminal to the drain of an NMOS, and tie the source of that NMOS to ground. Connect the uC's PWM through a low-side gate driver to the gate of the MOSFET. The gate driver needs a voltage supply too which may or may not be different from the motor or uC voltage. It depends on the voltage needed to fully turn on the gate of the MOSFET.

Easy as can be. (Don't forget the anti-parallel flyback diode across the MOSFET's source and drain to protect the transistor from the motor's inductive flyback.). And of course, a large cap across the motor power supply terminals helps too, and a small NON-polarized (ie. ceramic) capacitor directly across the motor leads also helps to reduce noise.
 
Last edited:

philba

New Member
Yeah, I think that should work. How fast do you need to move the motor/arm? There are several strategies depending on speed. There are servo designs out there that should be almost directly usable though probably not super high performance (i.e. might be a bit slow). If you want speed and precision, I'd look into using a PID algorithm. PID will allow you to control the ringing (overshoot).

why not use an N-MOSFET on the low side (between the motor and gnd)? If you use a logic level MOSFET then there is no need for a driver. A lot simpler than a P-MOSFET.
 
Last edited:
Status
Not open for further replies.

Latest threads

EE World Online Articles

Loading
Top