So, I'm working on a somewhat strange project. I've made a button panel for various games using a pro micro Arduino and I've recently decided to add some "haptic feedback" when a button is pressed. I've...obtained some motors from old playstation and Xbox controllers and i've gotten the code working at a fairly basic level, but it seems like the arduino can't push enough power to both motors at the same time. If I only have it run one motor, it does alright, still a little slow, but it will spin. I would like it to spin both motors with some button presses. Does anyone have any ideas on how I can do this? My first thought was to use a capacitor, but I feel like that will probably blow something up...
any help is appreciated, I'm still a little bit of a noob to some of this stuff.
You need to post your circuit diagram so we can see how you have everything connected.
Motors should not be powered from the Arduino 5v pin or (even more so) from any of the I/O pins.
...R
See the second paragraph in Reply #1
...R
Hi,
Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?
It might be better if you got pen and paper out and drew your circuit and labeled pins.
It looks like you are powering the motors from the arduino outputs, that is a no no.. the pins cannot supply the current required and you may damage your Micro.
Tom.... ![]()
Motors are inductive loads, and inductive loads without any freewheel diodes or snubber circuit can
push back large voltage spikes and destroy semiconductors instantly.
Alrighty, so as of right now I have the motors off completely. I appreciate the help and I understand why I shouldn't be powering them the way I am, but I'm still stuck on what I should be doing to power theses motors and have them based off of a button input. So let's forget about my abomination of a circuit for now. How should I go about this? Preferably cheaply.
Use a transistor - for such small motors a cheap BC547 or equivalent small signal transistor should work fine.
If you're powering over USB you should be able to power them from the 5V pin of your Arduino.
Note: this can only work for a few low powered motors like vibration motors, which take no more than 50 mA or so each. For any more power you have to use a separate power supply. Motors in general can NOT be powered from the Arduino, this is one of the very few exceptions. And you still have to add this flyback diode of course (preferably Schottky type, but just about any will do just fine).
wvmarle:
And you still have to add this flyback diode of course (preferably Schottky type, but just about any will do just fine).
There are only two motors, so a TPIC6B595 or similar would be overkill and we still do not know the specification of the motor.
Why do you think a Schottky might be appropriate?
For flyback - they're faster than regular diodes. That's the main reason. But even the slow 1N400x series should do the job quite well.
wvmarle:
For flyback - they're faster than regular diodes.
Can you explain what you mean by "faster", and why it would be relevant?
Reverse recovery is much faster.
So the reverse voltage peak gets less time to build up before the diode actually starts to conduct.
wvmarle:
So the reverse voltage peak gets less time to build up before the diode actually starts to conduct.
I think you got this backwards.
A common diode starts to conduct as fast as a schottky diode.
But a schottky could stop conducting (recovery time) faster.
Could be bad if the diode is still conducting when the transistor switches 'on' again.
That could happen with high PWM values, even at a low-ish PWM frequency.
Leo..
