
This circuit uses an ESP32 microcontroller to control a vibration motor through an NPN transistor. The ESP32 is powered by a Li-ion battery, and a resistor and capacitor are used for current limiting and noise filtering, respectively.

A vibrator motor is a small electric motor designed to create vibrations. It achieves this by using an unbalanced weight attached to its shaft, which generates a vibrating motion when the motor rotates. Vibrator motors are widely used in mobile devices, gaming controllers, wearables, and other applications to provide haptic feedback, enhancing user interaction and experience. They are compact, efficient, and easy to integrate into various electronic systems.

This circuit uses an ESP32 microcontroller to control a vibration motor through an NPN transistor. The ESP32 is powered by a Li-ion battery, and a resistor and capacitor are used for current limiting and noise filtering, respectively.

This circuit is a vibrating table control system that uses an Arduino UNO to manage a DC motor via an L298N motor driver, with vibration feedback from an ADXL345 accelerometer and speed control via a potentiometer. The system includes an emergency stop feature and displays vibration and motor speed data on an OLED screen.

This circuit uses an Arduino Nano to control four vibration motors through NPN transistors, with each motor connected to a transistor and a rectifier diode for protection. The Arduino Nano receives power from a 5V battery and controls the transistors via digital pins D9, D10, D11, and D12, enabling the vibration motors to be turned on and off programmatically.

This circuit features a Wemos D1 Mini microcontroller connected to a MX1508 DC Motor Driver for controlling a DC motor, a SW-420 Vibration Sensor for detecting vibrations, and a Type-c Power Bank Module with an 18650 battery holder for power supply. The microcontroller monitors the vibration sensor and controls the motor driver based on the sensor's output, while also measuring the battery voltage through an ADC pin with a connected resistor for voltage scaling. The embedded code enables WiFi connectivity, OTA updates, and integration with Home Assistant for remote monitoring and control.
Below are the general technical specifications for a typical vibrator motor. Note that specific values may vary depending on the manufacturer and model.
Vibrator motors typically have two terminals for electrical connections:
| Pin Name | Description |
|---|---|
| V+ | Positive terminal (connect to power supply) |
| GND | Ground terminal (connect to circuit ground) |
Below is an example of how to control a vibrator motor using an Arduino UNO and an NPN transistor (e.g., 2N2222):
// Vibrator Motor Control with Arduino UNO
// This code demonstrates how to control a vibrator motor using PWM.
const int motorPin = 9; // Pin connected to the transistor base
void setup() {
pinMode(motorPin, OUTPUT); // Set motorPin as an output
}
void loop() {
analogWrite(motorPin, 128); // Set motor speed to 50% (PWM value: 128)
delay(1000); // Run motor for 1 second
analogWrite(motorPin, 0); // Turn off motor
delay(1000); // Wait for 1 second
}
Motor Does Not Vibrate:
Motor Vibrates Weakly:
Excessive Heat in Circuit:
Noise or Unstable Operation:
Q: Can I connect the vibrator motor directly to an Arduino pin?
A: No, the Arduino pins cannot supply enough current to drive the motor directly. Use a transistor or MOSFET as a switch.
Q: How do I adjust the vibration intensity?
A: Use PWM to control the motor's speed, which directly affects the vibration intensity.
Q: Can I use a coin-shaped vibrator motor instead of a cylindrical one?
A: Yes, coin-shaped motors work similarly but may have different mounting and vibration characteristics. Ensure compatibility with your circuit.
Q: What happens if I exceed the motor's voltage rating?
A: Exceeding the voltage rating can damage the motor or reduce its lifespan. Always operate within the specified voltage range.