📳 موتور لرزشی استوانهای (Cylindrical Vibration Motor)
| اسم انگلیسی | Cylindrical Vibration Motor |
|---|---|
| در ووکوی (Wokwi) | نسخهی آمادهای سراغ نداریم |
| دسته | ⚙️ موتور و حرکت |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
موتور لرزشی استوانهای (Cylindrical Vibration Motor) یک موتور DC باریک است که سر محورش یک وزنهی نیمدایره بیرون زده؛ به این نوع ERM یا «جرم چرخان نامتعادل» هم میگویند. لرزشش از مدل سکهای قویتر است و در دستهی بازی، ربات مسواکی (Bristlebot) و هشدارهایی که باید حتماً حس شوند به کار میرود.
موتور لرزشی در ووکوی (Wokwi)
تا جایی که میدانیم ووکوی نسخهی آمادهی این قطعه را ندارد. برای تمرین کد پایین، یک wokwi-led با مقاومت ۲۲۰ اهم روی پین ۶ جای موتور بگذار و سنسور wokwi-hc-sr04 را با TRIG روی پین ۳ و ECHO روی پین ۴ وصل کن: هرچه مانع را در شبیهسازی نزدیکتر کنی، نور، یعنی لرزش، قویتر میشود.
خود موتور لرزشی استوانهای با پایههای POS و NEG در تینکرکد فارسی هم در حالت ساده (2D) و هم در حالت آردوینو (3D) رایگان شبیهسازی میشود؛ مثال بدون کد موتور لرزاننده را ببین.
سیمکشی با آردوینو
| پایهی قطعه | وصل به |
|---|---|
| سیم + موتور | 5V آردوینو |
| سیم − موتور | کلکتور ترانزیستور NPN (مثلاً 2N2222) |
| امیتر ترانزیستور | GND |
| بیس ترانزیستور | پین 6 از راه مقاومت ۱ کیلواهم |
| دیود 1N4148 | موازی با موتور؛ نوار سمت 5V |
| HC-SR04: VCC، GND، TRIG، ECHO | 5V، GND، پین 3، پین 4 |
این موتورها معمولاً برای ۱٫۵ تا ۳ ولت ساخته شدهاند؛ چون از ۵ ولت تغذیه میشوند، در کد بیشترین PWM را حدود ۱۵۰ از ۲۵۵ نگه میداریم تا ولتاژ میانگین زیر ۳ ولت بماند.
کد نمونه
یک «عصای لرزشی» ساده: هرچه مانع نزدیکتر باشد، موتور محکمتر میلرزد و بالای یک متر ساکت است.
// Cylindrical vibration motor: buzzes harder as an obstacle gets closer.
// Wiring: pin 6 -> 1k -> NPN base, motor between 5V and collector,
// emitter -> GND, diode across the motor;
// HC-SR04: VCC -> 5V, GND -> GND, TRIG -> 3, ECHO -> 4
const int VIB = 6; // PWM pin
const int TRIG = 3;
const int ECHO = 4;
const int MAX_DUTY = 150; // about 2.9 V average for a 3 V motor on 5 V
long readCm() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long us = pulseIn(ECHO, HIGH, 30000); // 0 if no echo
return us / 58;
}
void setup() {
pinMode(VIB, OUTPUT);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
Serial.begin(9600);
}
void loop() {
long cm = readCm();
int strength = 0;
if (cm > 0 && cm < 100) {
strength = map(cm, 0, 100, MAX_DUTY, 60); // closer = stronger
}
analogWrite(VIB, strength);
Serial.print("cm:");
Serial.print(cm);
Serial.print(" vib:");
Serial.println(strength);
delay(100);
}
خروجی سریال به قالب name:value است و در نمودار سریال دو خط جدا میشود؛ بالا و پایین رفتن لرزش را کنار فاصله میبینی.
برای ربات مسواکی اصلاً آردوینو لازم نیست: موتور را با چسب دوطرفه روی پشت سر یک مسواک کهنه بچسبان، یک باتری سکهای کنارش بگذار و دو سیم موتور را به دو طرف باتری بزن. اگر ربات بهجای جلو رفتن دور خودش میچرخد، وزنه را به وسط مسواک نزدیکتر کن یا پرزها را کمی به یک سمت خم کن.
اشتباههای رایج
- گیر کردن وزنه: وزنهی چرخان بیرون از بدنه است و به سیم یا قاب میخورد و موتور میایستد. دورش را باز بگذار.
- موتور مستقیم روی پین: جریان لحظهی شروع از حد امن پایه بیشتر است؛ همیشه با ترانزیستور.
- ۵ ولت کامل: موتور ۱٫۵ تا ۳ ولتی زود خراب میشود؛ سقف PWM را رعایت کن.
- نویز روی تغذیه: موتور لرزان روی خط 5V نویز میاندازد و ممکن است خواندن سنسور را به هم بزند؛ یک خازن ۱۰ میکروفاراد نزدیک موتور بین 5V و GND بگذار.
آموزشهای مرتبط
- موتور لرزشی سکهای، نسخهی تخت و بسته
- سنسور اولتراسونیک HC-SR04
- فاصلهسنج اولتراسونیک با آردوینو
- ترانزیستور NPN
سؤالهای رایج
موتور لرزشی استوانهای بهتر است یا سکهای؟
استوانهای معمولاً لرزش قویتری دارد و برای دستهی بازی و ربات لرزشی خوب است، ولی وزنهاش بیرون است و جای چرخیدن میخواهد. سکهای تخت و بسته است و راحت زیر دستبند یا داخل جعبه چسبانده میشود.
ربات مسواکی (Bristlebot) چطور کار میکند؟
موتور لرزشی روی سر یک مسواک چسبانده میشود. لرزش، پرزهای کج مسواک را خم و رها میکند و هر بار ربات کمی جلو میرود. فقط موتور، یک باتری کوچک و سر مسواک لازم است.
در ووکوی چطور تمرینش کنم؟
ووکوی، تا جایی که میدانیم، موتور لرزشی ندارد. یک LED را جای موتور بگذار و شدت نور را مثل شدت لرزش تماشا کن. خود موتور در تینکرکد فارسی رایگان شبیهسازی میشود.