Pages: [1]   Go Down
Author Topic: controlling speed of simple vibration motor  (Read 2223 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi  i am new to arduino and the forums.
i want to drive a small Shaftless Vibration Motor(10x2.0mm) but I want to make it vibrate faster or slower based on input.
What is the best way to achieve this?
Should I buy a motor driver shield or is there any other way to control the motor?

Thanks
Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 627
Posts: 34213
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Use a driver transistor if the motor's current is over 30mA and feed it with a PWM signal to control the speed.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Other details about this motor are more important than its dimensions.
How much voltage and current does it take?  That will determine how you can control it from Arduino.
Also, knowing what kind of motor is it?  Is it actually a rotating motor with an offset weight?

Or is it some sort of "buzzer" kind of device?  Some of the "buzzer" devices have built-in drivers
and/or they achieve maximum movement by being resonant at some particular frequency.

If your gadget has a built-in driver or it is resonant, then you cannot control the frequency.

But without knowing more about your "Shaftless Vibration Motor" we would be shooting in the dark.

Oh I apologize, I am new to this and didn't realize that those specifications affected the way you control the motor.

"Free-run speed @ 3V:    14500 rpm
Free-run current @ 3V:    60 mA2
Voltage:    3 V
Vibration amplitude:    0.75 g"

That is all the specification that is listed. How do I figure out if it is resonant or if it has a built in driver?
Perhaps you have a suggestion for a vibration motor that has a controllable frequency? My only requirement would be that it can't be outlandishly huge.
Logged

Montreal
Offline Offline
Faraday Member
**
Karma: 29
Posts: 2591
Per aspera ad astra.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sorry for interrupting, RPM is per minutes, 14500 / 60 = 241.6 Hz
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The vibration motor I am looking at this:
 http://www.pololu.com/catalog/product/1638/specs

I do not want the vibration to be audible but something that the user can feel. So it should vibrate faster or slower based on input from other sensors.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes it appears that you can probably control it with Arduino PWM and a transistor (because of the current). I wouldn't expect a wide range of frequencies.

Thanks a lot.
I still haven't looked too much into the functions of the Arduino PWM but along with the spec sheet of the motor I found this(RPM vs Current vs Voltage):
http://www.pololu.com/picture/view/0J2187

So would the arduino PWM really be able to control the current and/or voltage going to the motor or is speed controlled through other means?

As in, if another sensor gave a certain input I would want the motor to get - for example - 2.6v with 53 amp of current(~13260 RPM) but a different input should max out the motor at 3.4v 67 amps(~15900 RPM).

Also, do you have any suggestions on how to obtain a wider range of frequencies from a vibration motor?
« Last Edit: June 15, 2011, 01:13:51 am by swish123 » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Okay I appreciate the help. I decided to do some more research before I posted anything else but I am unable to find any online resource pertaining to motor control through Arduino PWM.
Can anyone suggest a link with sample code as to how to use PWM to control a motor?
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

PWM will variable rpm, model aircraft electric motor speed controls do that all the time.  This will give you open loop speed control of a brush motor.

Here is a Microchip  smiley-eek app note that explains concepts: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en012017

If you wanted more precise speed control independent of input voltage there are back-emf sense schemes that measure back-emf during the 'coast' portions of the PWM cycle to close a velocity loop.  Likely more than you are looking for here.

If it matters, remember that the vibratory force is a square function of RPM, (e.g. if you reduce the RPM in half, you will cut the vibratory force generated to 1/4 of the full RPM value).
« Last Edit: June 19, 2011, 08:41:47 am by MGeo » Logged

Pages: [1]   Go Up
Jump to: