Digital pin OUTPUT doesn't power my 9v dc motor

My first project is simply to practice setting a 9v dc motor at variable speeds but I can't even get it running..

I've used a 9v battery wired to Vin and ground to power the Arduino but my understanding is that digital output only delivers 5v? How can I remedy this without getting a smaller motor?

Thanks,

Darren.

You mean one of those square looking batteries like goes in the smoke detector or the multimeter? Those can't deliver the current to run a motor, at least not for more than a few seconds or minutes at best. Go get some AA or AAA batteries so you'll at least have a chance.

Even if the motors were 5V, you can't run them off the arduino pins. They're limited to very low currents. You'll fry your Arduino.

You need a transistor to switch the 9V to the motor.

Don't be afraid to read. It is the single most important skill you can have in this hobby. https://learn.adafruit.com/adafruit-arduino-lesson-13-dc-motors/overview

Hi,
Look at these tutorials.

Tom… :slight_smile:

Thanks guys.

Yes I was hoping to power the motor with a fire alarm-type battery.. It runs the motor if I hook them up directly, only at a very high RPM. More torque and lower speed would be ideal!

I am waiting on the components I've ordered for the Adafruit tutorial on motors. I thought it would be straight forward enough to have the motor running without extra components in the meantime is all.. I will be patient then

More torque and lower speed would be ideal!

Motors do not work like that with electronic control, you can get lower speed with less torque with PWM control but their is not much speed range and you have to have the motor loaded not free spinning. The only way to achieve what you want is to use gears.

It runs the motor if I hook them up directly, only at a very high RPM.

Yes but not for very long, the battery will be quickly exhausted.

Cheers Mike, I'll look into motors with gears. I tried running the motor I have with pwm but I think it was only sending 5v which isn't enough for it :/

I'll have to get a 5v motor with gears I think!

thenamesdaz: I'll have to get a 5v motor with gears I think!

Even if it works from 5v you cannot power it from an Arduino I/O pin or from the Arduino 5v pin.

...R

thenamesdaz: I'll have to get a 5v motor with gears I think!

A better way to do this is to look at what you want the motor for and search for a motor that fits the bill. That may or may not be 5V. Even if it is 5V you can't drive it from the Arduino, so looking or hoping for a suitable 5V motor is neither here nor there. If the best motor for the job happens to be 12V or 9 or 24 or 5, whatever, just find a power supply at that voltage with sufficient current.

Then control that with the Arduino, through a suitable transistor or if you need direction control, a driver module like the good ones Pololu have. They have a huge range, various voltages and currents. (Best not to use old chips like 298s or 293s.)