My first post so let me start by saying hello to everyone on the forum!
So I've read all over the internet that you ABSOLUTELY CANNOT power a motor directly from the Arduino micro-controller. :o
So naturally I hooked a motor up directly to the Arduino io pin. The amp draw is around 75mA. It's been running for hours, no issues (that I can tell)...
Absolute Maximum Ratings - the point where damage will start to happen
DC Current per I/O Pin ........... 40.0 mA
From what I understand there are multiple reasons why one would want to use a motor controller, the biggest being that you don't want to overdraw amps on your board correct?
So I am overdrawing by ~35mA. What component is it that's being damaged or at risk of being damaged exactly?
The other reason I've read that you want to use a motor controller is to isolate the motor so that it doesn't cause electrical interference. Probably over my head but what exactly happens here that causes interference?
I find it hard to follow rules if I don't know why the rules were made! Thanks in advance for any info, and
Eh, not sure what those extra 35mA are burning, but needless to say, absolute maximums are set for a reason.
As to your question: Motor controllers (or H-Bridge drivers) are used for direction and speed control of DC motors. With a motor controller, you can choose to operate the motor to go forwards, or backwards while also controlling the speed (with PWM signals). They also allow you to drive the motors off an external power supply like you mentioned.
Without a motor controller, you can only run a dc motor in one direction.
Power_Broker:
Eh, not sure what those extra 35mA are burning, but needless to say, absolute maximums are set for a reason.
As to your question: Motor controllers (or H-Bridge drivers) are used for direction and speed control of DC motors. With a motor controller, you can choose to operate the motor to go forwards, or backwards while also controlling the speed (with PWM signals). They also allow you to drive the motors off an external power supply like you mentioned.
Without a motor controller, you can only run a dc motor in one direction.
I hope that was a good enough explanation.
Right but my question is why do you NEED a controller (or H-Bridge driver), not what extraneous features you can gain from using one
UnoWatt:
I expected that to be a short video of your motor running so we could see the connections. Not sure why that video was necessary.
I find it humorous, thought others might as well. Not sure why this comment was necessary.
So naturally I hooked a motor up directly to the Arduino io pin. The amp draw is around 75mA. It's been running for hours, no issues (that I can tell)...
That is with the motor under NO LOAD. Not typical conditions.
Apply a load to the motor and monitor the current.,
Atmel says that more than 40 mA from one pin (or close to 40mA for longer time) may be dangerous for the chip used in Arduino. You can bet Arduino will work for years if you stay well below maximum ratings. You are not guaranteed anything when you exceed them - anything can happen. It may work flawlessly for years. It may burn in matter of seconds. But anything between may happen - it may work for days and suddenly stop working. Even worse - it may work for days and then a "strange behavior" may begin. It may work well in this application but when you try it in another it may work erraticly. One chip may work well and other may fail under the same conditions without any apparent reason.
It is similar as bridges - there is maximum weight of car that can go over a bridge. When the limit is 3t it will most likely not fall if you exceed it - 3.5t would be safe. Maybe even 6t. Or 10t. But when such heavy truck goes over the bridge it may be damaged even if nothing can be seen. Then it may one day collapse even when all other cars will by less than 3t.
It's up to you to take the risk but usually it is not easy to get something work even when you respect maximum ratings and do everything as carefully as you can. Debugging failing parts from overstress will soon make you nightmares.
Smajdalf:
Atmel says that more than 40 mA from one pin (or close to 40mA for longer time) may be dangerous for the chip used in Arduino. You can bet Arduino will work for years if you stay well below maximum ratings. You are not guaranteed anything when you exceed them - anything can happen. It may work flawlessly for years. It may burn in matter of seconds. But anything between may happen - it may work for days and suddenly stop working. Even worse - it may work for days and then a "strange behavior" may begin. It may work well in this application but when you try it in another it may work erraticly. One chip may work well and other may fail under the same conditions without any apparent reason.
It is similar as bridges - there is maximum weight of car that can go over a bridge. When the limit is 3t it will most likely not fall if you exceed it - 3.5t would be safe. Maybe even 6t. Or 10t. But when such heavy truck goes over the bridge it may be damaged even if nothing can be seen. Then it may one day collapse even when all other cars will by less than 3t.
It's up to you to take the risk but usually it is not easy to get something work even when you respect maximum ratings and do everything as carefully as you can. Debugging failing parts from overstress will soon make you nightmares.
You are correct. Company issued maxima are conservative for a new part. As the part ages, especially with increased current, atoms get knocked out of place. The thinned channels become vulnerable. Eventually a critical electron channel of the microcircuitry shorts to an adjacent channel, and the circuit fails. Check out thermodynamics. It's the law.
Hi,
I was trying to point out that as you draw more current the output voltage moves away for 0V or 5V, eventually giving a level for HIGH that may be a LOW level to an input and vice versa.