I was just working with some air pump motors.
I was trying to control them with a digital pin but that did not work. But when I connected the motor to the 5V pin it worked. Could anybody explain why this is happening.
Digital pins on Arduino have a maximum current draw of 40mA which is not going to be enough to drive a pump. The 5V pin can provide more, but you really need to provide separate power for the motor and just control it from the arduino via relay or mosfet.
I was just working with some air pump motors.
I was trying to control them with a digital pin but that did not work. But when I connected the motor to the 5V pin it worked. Could anybody explain why this is happening.
Thank you so much.
Jeff
You need to understand the difference between a signal and conveying power. Signals convey
information and are deliberately designed to use little power (for instance a microcontroller or
microprocessor internally has hundreds of thousands to millions of signal connections internally,
so if they uses lots of power the chip would vaporize.
The outputs of a microcontroller are often designed to be able to drive a small load, like an LED
or two, and thus have a bit more power capability than a simple logic signal. However even small
motors take hundreds to thousands of times more power than logic signals convey - so you need
power electronics to convert a signal to something capable of running a motor.
So anything taking more power than a small LED, you'll need some sort of driver chip or module.
Drivers turn logic and analog signals into something powerful enough to do the work required,
and often require a suitable power voltage and supply to go with it.