In this example we connect a vibration motor module to an Arduino Uno. This is the type of motor that you could find in a mobile phone which vibrates when you receive a text message for example, also commonly used in toys. You could also use this in wearables.
This is the module I bought
When the Logic level is HIGH, the motor is ON. When its LOW, the motor is OFF.
Features:
– Rated voltage: 5.0VDC
– Operating voltage: 3.0 – 5.3VDC
– Rated speed: 9000 rpm minimum
– Rated current: up to 60 mA
– Starting current: up to 90 mA
– Starting voltage: DC3.7V
– Insulation resistance: 10Mohm
Connection
I used an Arduino Uno and connected the In of the motor module to D3 – this was so I could show a standard digital out and also potentially a PWM example
Arduino Uno | Vibration motor |
5v | Vcc |
Gnd | Gnd |
D3 | In |
Parts List
Here are the parts I used
Name | Link |
Arduino Uno | UNO R3 CH340G/ATmega328P, compatible for Arduino UNO |
Vibration Motor Module | PWM Vibration Motor Module DC Motor Phone Vibrator for Arduino UNO R3 MEGA2560 Electronic DIY Kit |
Connecting wire | Free shipping Dupont line 120pcs 20cm male to male + male to female and female to female jumper wire |
sensor shield | Expansion IO Board Sensor Shield |
Code
This is a simple example which simply switches the motor on for 1 second and off for 1 second. We use pin 3
[codesyntax lang=”cpp”]
int motorPin = 3; // vibration motor digital pin 3 void setup() { pinMode(motorPin, OUTPUT ); } void loop() { digitalWrite(motorPin, HIGH); delay(1000); digitalWrite(motorPin, LOW); delay(1000); }
[/codesyntax]
This is a PWM example using the same pin, it's based on the Fading example
[codesyntax lang=”cpp”]
int motorPin = 3; // vibration motor digital pin D3 void setup() { } void loop() { // fade in from min to max in increments of 5 points: for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) { // sets the value (range from 0 to 255): analogWrite(motorPin, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); } // fade out from max to min in increments of 5 points: for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) { // sets the value (range from 0 to 255): analogWrite(motorPin, fadeValue); // wait for 30 milliseconds to see the dimming effect delay(30); } }
[/codesyntax]
Links