Part

Vibration motor

The coin in a phone. 75 mA and a start voltage, so it wants a transistor.

See every part
  • 2 pins
  • 6 settings
  • In 2 projects
coin vibration motorstill
Drawn live by the editor's own code, at the size you see it.
At a glance

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.
Pins

2 pins

Named as the editor names them, so a wire lands where you expect it.

Pin
What it does
1
Red lead.
2
Blue lead. It runs either way around.
How to use 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.

Part pin
Board pin
1 (red)
3.3 V
2 (blue)
Transistor collector
Transistor base, through 1 k
Pin 6

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.

Arduino Uno: music boxlive0.000 s 0.00x
Click to open it in the editor
This is the simulator itself, running here. Click anything to open it in the editor.
How it is modeled

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.

Projects

See the Vibration motor in a project

2 built-in projects use it. Each opens in the editor, already wired.

Boards

The boards it is shown on

This board has a built-in project with the Vibration motor in it.

Wire up the Vibration motor

Open the editor and push it into the breadboard. It is free, and it runs on your own machine.