Arduino DC Motor Control - Record Player Project

Status
Not open for further replies.

KTSherrod

New Member
Hey guys. Some of my electronics problems are black magic to me, so I'm reverting to posting on here. I"m a mechanical engineer by trade, so excuse any basic EE mistakes you may find. Thanks to anyone who will try and point me in the right direction.

As part of a made-from-scratch, DIY record player project, I'm trying to do speed control of a 12V, 3A DC motor via an Arduino. Being that an Arduino pin can only source about 40 mA of current, I'm having to pull from an external AC-to-DC converter for motor power and use the Arduino with a TIP120 transistor to actually perform the speed control.

This is the basic circuit setup with the exception of pulling power from a source other than the Arduino.

Again, the motor is 12 VDC, 3A.
The flyback diode is a 1N5822
Transistor is a TIP120
The base resistor has been multiple values, none of which seem to work.

The best I've been able to do is get a low humming from the motor that changes pitch as I range the PWM values from 0 to 255.

The only other time I've gotten any response is when I hooked an o-scope probe to measure voltage across the base resistor. The motor would turn on as soon as the probe was connected but would remain at the same speed no matter the PWM value. I assume this anomaly is due to the high impeadance internal to the probe?

I've considered that I'm not providing enough current to the base, I've verified that the transistors I'm using aren't burnt out, I've tried different motors and verified that the motors themselves work, I've tried simply setting the Arduino pin to HIGH and LOW to try and turn the motor on an off, along with I don't know how many other things but I can't seem to get the response that apparently everyone else in the internet seem to be getting.

It feels like I've tried everything I can find online short of using a Motor Shield for the Arduino. So this is where I leave it to you all.
 
I would recommend try using a logic level Mosfet, (a Voltage controlled l device).
Max.
 
Go the Logic FET route. Best design practice say the gate needs a resistor. Something. A few hundred ohms to 10K even.

Datasheet: Vbe is about 1.75 V at 3A
Hfe is about 4000 at 3A; let's use 1000 and lets use 40 mA for the base
The motor will also require much higher starting current than 3A, 2 to 5x

The 1.75 V get's knocked off your power supply. So, Rb would have to be (3.3-1.75)/40e-3 ohms assuming the power supply is 3.3. It could be 5V.
 
The Resistance of a fully-turned on NFET is between 10mΩ and a few hundred mΩ, depending the gate-to-source voltage and specific type, so the motor will get 12V-3*0.01 =11.97V. With an NPN Darlington, the Vcesat at 3A is like 2.4V, so the motor gets 12-2.4 = 9.6V.

The NFET gets barely warm dissipating 3A*0.03V = 90mW; while the NPN Darlington has to be on a large heatsink because it is dissipating 3A*2.4V = 7.2W .
 
Last edited:
Can you briefly explain why as Mosfet would be more appropriate than a BJT in this scenario?

Mostly because the Americans are obsessed with FET's

Although to be fair there are advantages under some circumstances.

While a TIP120 isn't a good choice, the motor should turn - so you're doing something wrong somewhere.

However, I'm rather bemused why you've got a 3A motor for a record player?, and why you want to use an Arduino to control it's speed?.
 
Let me ask some q's.

What supply voltage does the 'duino have?

Have you set the arduino pin to an output?

What is the value of the base resistor?

Have you adjusted the freq of the pwm pin, or is it default?

Try connecting the resistor that goes to the arduino pin to the arduino 5v pin instead, the motor should start, also try connecting a led/1k resistor to the arduino pin to make sure there is pwm there.

A 3a motor would probably be big enough for a jukebox!
 
Mostly because the Americans are obsessed with FET's

.
I am British (origin) and have never been an American or lived there, so I guess I am a renegade!
You seem to have something against Mosfets, or at least recognize their value grudgingly?
Max.
 
3 Amps IS a big motor for a turntable, but I guess you want it to turn a very heavy, extra hi-fi turntable. A bipolar NPN is a good choice, as you can usually find them cheaper than MOSFETS for the same current ratings. Those big-current transistors need a lot of drive current though, so I would use a second smaller transistor to drive the final transistor.

MOSFETs don't have this same problem, but the trade off is that they generally require much higher voltages to turn on completely and not overheat. More voltage than any Arduino can handle. 5V will probably not be enough to turn on a MOSFET hard enough to not get hot. The end result is you may need a large heat sink anyway. And even if it was turned on hard enough, it will have a huge capacitance to drive when switching at PWM frequencies, and that huge capacitance will require a lot of drive current anyways.

If having a good, higher voltage supply wasn't already available, I'd go with a bipolar transistor driver backed up with a smaller transistor. But since you have a higher DC voltage supply for the motor (12V), a MOSFET is practical, but I would use a bipolar transistor to drive the higher currents at PWM frequencies. MOSFET or bipolar I really don't care which - I usually choose the cheapest solution that would get the job done reliably. Bla, bla, that's all the theory. But you want a real-world practical design.

I happened to be working on a motor driver circuit recently, and designed a PCB that was able to be populated with both technologies for experimenting. In the end I went with bipolar transistors. I used several MOSFETs (all cheaper ones), and they all got warm, but the bipolar test worked great even up to a couple of amps - it only reached 80°F or so with no heat sink! This was all being driven with a 50% duty cycle of up to 20KHz. Here is my schematic showing the driver stuff - sorry I didn't put the final, verified resistor values on here but I can look them up and let you know. I'm sure you can find even better transistors for less than $0.50, but not as likely to find good low-ohm MOSFETs for that price. I used these general purpose TO-226 package parts I had on hand. TO-220 would work well too. MOSFETs could work extremely well, but I couldn't find any <1Ω MOSFETS for anywhere near the price of bipolar transistors.
 

Attachments

  • SampleDriver SCH.pdf
    14 KB · Views: 264
You obviously have not looked at the specs on MOSFETs being sold today. That thinking was true twenty years ago...

Lots of modern MOSFETs are turned on hard by a port pin from a uController powered from 3.3V!

Since the PWM frequency from an Arduino is 500Hz, the gate capacitance of any Modern MOSFET is not the slightest problem....
 
MikeMI, you obviously have not bought too many MOSFETs in the past 10 years. That's all true for relatively expensive MOSFETs, the specs of which I've read many.
Sure, anybody can spend a lot of money to get what they want. Good designs are meant to be affordable.

Please find me one continuous 3A MOSFET that can be had for thirty cents, and can be driven with 3 volts. It will change my life.
 
FWIW: Motors for turntables were generally AC synchronous or BLDC. I admire your effort, though.

My last turntable was a Technics SL-1700. Direct drive. Moving the arm was the power switch, It had automatic return when the record was finished playing. Platter was independently suspended. 33 1/3 and 45 rpm. Sroboscope patterns for 50/60 Hz and 2 speeds on platter.

An S-shaped tonearm to minimize tracking errors. A replaceable headshell. And the usual counter weights and tracking adjustments.

I finally changed to a moving coil cartridge. e.g. https://en.wikipedia.org/wiki/Magnetic_cartridge

FWIW: 78 rpm and 16 ish (I think) requires a different needle. I have a few 78's from my father's collection.
 
3 Amps IS a big motor for a turntable, but I guess you want it to turn a very heavy, extra hi-fi turntable.

I can't envisage any turntable that needs such a powerful motor? - even the big heavy ones use pretty small and low power motors.
 
A couple of links,
Not high power but logic 2n7000 1986!
All the T.T. I worked on they were synchronous motors, for US/UK use a drive pulley could be obtained to change the rpm.
Max.
 

Attachments

  • IGBT_Mosfet.pdf
    51.5 KB · Views: 249
  • FET2n7000.pdf
    831 KB · Views: 275
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…