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.
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.