Controlling Mini Vibration Motors with arduino

I have project in mind involving 10 - 14 Mini Vibration Motors that will be controlled via music software called MaxMSP. Arduino should be the bridge between the Max (that will timing the events of triggering) and between the motors.

the current rate of those motors is 85mA so I guess I will not be able to drive them directly from the arduino pin. I will need to build a driver for those motors, right?

Will I be able to use bjt transistors such as the 2N3904 or Is better using MOSFET?
Is it possible to PWM those motors? - controlling the speed of vibration between zero and full vibration? or those are only have two state of ON and OFF?

Here is my basic schematic for the motors driver:
Is this circuit enough for driving those motors ?
Would you change anything? better to use MOSFET?

Is there any recommendation for 3v3 voltage regulator?
The one I've seen - LD1117V33 can produced output current of 800mA so if I will use 12 motors each rated @85mA is total current of ~1A so the voltage regulator is not capable of producing the needed current right?
Any other 3v3 voltage regulator recommended that can produced 1A of current?

Thanks for any advice!

Using as many as 14 there are two options. Either use I/O expanders or a Mega. The Mega feels like the easiest to use.

Using logic level N-channel MOSFET wastes less energy but due to the low current silicon transistors will do the job. NPN switching the low side as in Your schematics ought to be fine.

Using PWM... Why? For what reason? The link goes to a sales site that doesn't tell me about PWM being okey or not.

Correct. Too much current.
Powering. As far as I know You can use standard 5 volt supplied to Vin, or 3.3 volt to the 3.3 volt pin.

Thanks for a well prepared post! It looks all okey and the power supply could be a standard phone charger, or maybe a power bank.

I've seen some schematics adding capacitor in parallel with the diode. Would you recommend of adding? if so - what value?

the gate resistor value is fine or I should go with different value?

for having the option to make the vibration of the motor at speed that is not full speed rather half the speed or less. Maybe is not even possible with those type of motors?

So I was looking at this and that 3v3 voltage regulators . both output current is 800mA (the first one says "1300mA max") so in case I could like to drive all 14 motors together the total current will be 85mA * 14 = 1190mA (~1.2A). This is more then what the volatge regulator can deliver. What can I do in that case?

  1. use less motors - max of 9 motors.
  2. use different voltage regulator that can deliver much more current (is there any 3v3 regulator that can deliver more then 800mA?)
  3. use two voltage regulator and connect the output of one regulator to 7 of the motors and the output of the second voltage regulator to the other 7 motors?
    in that case each group of 7 motors will need ~600mA of current so the voltage regulator will be able to supply that. (?)

Remember, if go the other way, from full to some lesser vibration, you must give the motor time to slow to the new speed.

Yes, but not with 12volt input.
A linear regulator converts voltage difference times current into heat.
12volt to 3.3volt at 0.8Amp would be (12 - 3.3) * 0.8 = 7Watt, sending a small smd 1117 to silicon-heaven in a matter of seconds. A larger 1117 (TO-220) would need at least a matchbox sized heatsink.

Why a 12volt supply for 3.3volt motors.
Isn't it easier to use a common 5volt cellphone/tablet charger, with two diodes in series to drop it to ~3.5volt.

If... you think of PWM-ing the motors, then a (16-channel) PCA9685 board could work.
Leo..

And I will also need to connect it to the PWM pin right?
so sending 0 is fully off and sending 255 is fully turned on and between will change the speed of the motor.
When you say "you must give the motor time to slow to the new speed. " What do you mean?

I guess no need for 12V supply.

Is doing as you suggested - dropping the voltage down from a 5V phone charger to a ~3.5V using diodes (which diodes? 1N4001?) is good as using a 3v3 voltage regulator?
it might be even better because some phone charger could deliver even 2A so then I will be able to deliver enough current for all 15 motor, right?

is my schematic for powering the circuit from a phone charger is right?

  1. what happen if the output voltage is above 3V3 - can it damage the motors?
  2. do I need (for some reason) to buffer the output 3V3 with a opamp in a voltage follower configuration?

Thanks!

No, but good enough for a motor supply.
The 1N540x is the larger 3Amp version of the 1N400x.
Three diodes drop about 2volt.
Leo..

Good enough also for powering 14 motors?
What will be a good choice? assuming needing more then 800mA of current in the circuit for the motors.

Is it better using voltage divider with resistors?

Another option is to use a resistor in series with each motor.
You can calculate it's value with ohms law (2volt drop, 85mA).

You can't draw a varying current from a voltage divider.
If you do, voltage won't be stable.
Leo..

I'm not sure I understand that option. Could you please try to explain me again?

And if I buffer the voltage using LM358 opamp as follow? :

ok so I read that most opamp can source more then few mA of current so this is not a good option!

I thinking that using two 3v3 voltage regulator is the best option?? :roll_eyes:

(the micro usb breakout module will be get is power from a 5V 2A phone charger)

What is the difference between that voltage regulator module AMS1117-3.3 and this regulator LD1117V33

Can I go with either?

They are both electrically the same, only the package is different.
The module has the required components to make the regulator work, the TO-220 package has not. Leo..

So no problem using two of those and driving 7 motors with each. best solution ? or good enough solution ?

how one can explain the difference in price? the package module that have all the parts needed (capacitor I guess) is costing almost half the price and you get almost double the amount.

Do you remember "inertia" from school? Your motor turning at maximum rotation cannot immediately go to zero rpm. Even an intermediate speed cannot be instantly achieved. Experiment with a small time delay after changing motor rotation.
Too short of a delay will let you hear the ramp up/down in speed of vibration.

Meh. Two or three diodes also do the job.

Mass production, marketing, Chinese fakes, who knows.
Leo..

I'm sorry for constantly asking -
What will be the difference between using two diodes in series verses using resistor in series with motors?
I mean - the diodes solution is much less part count so why to decide and choose the resistors?
I guess there is more then one solution for particular design - in that case how do you know what to choose (in general and in that particular case) ?

Any of those solutions will work, and give the same results.
Pick one, and be done with it.
Leo..

ok. Will go with the two (or three) diodes in series with the power supply.
One last (hopefully) question - shall I add a 100nF capacitor in parallel with each motor and the flyback diode?