Vibration motor
The coin in a phone. 75 mA and a start voltage, so it wants a transistor.
- 2 pins
- 6 settings
- In 2 projects
The Vibration motor in brief
What it is, and every setting the properties panel gives it.
A coin vibration motor is the 10 mm disc inside phones and game pads: a tiny brushed motor with a half-moon weight on its shaft, two thin leads (red and blue) that work either way around, and a rated 3 V. It draws about 75 mA, four times what a pin should give, so it goes on a transistor such as a 2N2222 with a 1 k base resistor and a 1N4007 across it, fed from the Uno’s 3.3 V pin; on an ESP32 the same circuit runs from a 3.3 V GPIO and the 3.3 V rail. Mokxi uses its DC motor model with a coin motor’s numbers: a 35 ohm winding, back EMF only an eighth of the supply at full speed, 12000 rpm at 3 V, which is 200 Hz of shaking, and a 40 ms spin-up. Below 2.3 V a stopped motor does not start, though a turning one keeps going down to about two thirds of that, so a PWM duty too low to start it is the classic haptics bug. Inductance (the diode only matters on the bench), the strength of the vibration are not modeled.
- Family
- Outputs
- Pins
- 2
- voltage
- 3
- rated voltage, 3 V.
- rpm
- 12000
- speed at that voltage, 12000.
- resistance
- 35
- winding resistance, 35 ohms.
- back_emf
- 0.125
- the fraction of the supply the spinning motor gives back, 0.125.
- start
- 2.3
- the least voltage that starts it from rest, 2.3 V.
- inertia
- 40
- how quickly it spins up, 40 ms.
2 pins
Named as the editor names them, so a wire lands where you expect it.
How to use a coin vibration motor with an Arduino
A coin motor draws about 75 mA, four times what a pin should give, so it goes on a transistor. Here the red lead goes to the Uno’s 3.3 V, near its rated 3 V, and the blue lead to a 2N2222’s collector; pin 6 drives the base through 1 k, and a 1N4007 across the motor catches the kick when the current stops.
digitalWrite(6, HIGH) buzzes it, and the music box does that on the first beat of every bar. For a softer buzz use analogWrite on a PWM pin, but keep the duty up: below 2.3 V a stopped motor does not start at all, though one already turning keeps going down to about two thirds of that.
On an ESP32 the same 2N2222 and 1 k work from a 3.3 V GPIO, with the motor on the board’s 3.3 V pin.
What is true about the Vibration motor, here
In its help article’s own words: what the simulation gets right, and where it stops.
Modeled
It is the DC motor model with a coin motor's numbers, and the numbers are the lesson. The weight and the tiny bearings take nearly all the torque, so it runs at almost its stall current: about 75 mA running against 85 mA stalled. That is four times what a board pin should give, so it goes on a transistor like any other motor. And it has to be started: under 2.3 V a stopped motor does not turn at all, though a turning one keeps going down to about two thirds of that. A PWM duty too low to start it is the first thing a haptics sketch gets wrong.
The probe is the speed in rpm; the part shows the shaking in hertz, the speed over sixty, which is 200 Hz at 3 V.
Not modeled
Inductance, so the diode across it is there for the bench rather than for the simulator. How hard it shakes (about 1 g at its rated voltage, rising with the square of the speed), and anything it is glued to.
From Vibration motor, in full.
See the Vibration motor in a project
2 built-in projects use it. Each opens in the editor, already wired.
The boards it is shown on
This board has a built-in project with the Vibration motor in it.
The rest of the bench
Every one of these is drawn and simulated the same way.
Wire up the Vibration motor
Open the editor and push it into the breadboard. It is free, and it runs on your own machine.