📳 موتور لرزشی سکهای (ویبره) (Coin Vibration Motor)
| اسم انگلیسی | Coin Vibration Motor |
|---|---|
| در ووکوی (Wokwi) | نسخهی آمادهای سراغ نداریم |
| دسته | ⚙️ موتور و حرکت |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
موتور لرزشی سکهای یا ویبره (Coin Vibration Motor) یک موتور DC تخت و کوچک است که وزنهای نامتعادل روی محورش دارد؛ وقتی میچرخد، همهچیز را میلرزاند. همان چیزی است که گوشی را در حالت بیصدا میلرزاند. با آن هشدار بیصدا، دستبند یادآور، عصای هوشمندی که نزدیک مانع میلرزد یا دستهی بازی لرزان میسازی.
موتور لرزشی در ووکوی (Wokwi)
تا جایی که میدانیم ووکوی نسخهی آمادهی این قطعه را ندارد. نزدیکترین جایگزین برای تمرین کد، یک wokwi-led با مقاومت ۲۲۰ اهم روی همان پین ۹ است: هر وقت LED روشن است موتور واقعی میلرزد و با PWM شدت نور مثل شدت لرزش عوض میشود. خود موتور لرزشی با پایههای POS و NEG در تینکرکد فارسی هم در حالت ساده (2D) و هم در حالت آردوینو (3D) رایگان شبیهسازی میشود؛ مثال بدون کد موتور لرزشی با دکمه را ببین.
سیمکشی با آردوینو
| پایهی قطعه | وصل به |
|---|---|
| سیم قرمز (+) | 5V آردوینو |
| سیم آبی یا مشکی (−) | کلکتور ترانزیستور NPN (مثلاً 2N2222) |
| امیتر ترانزیستور | GND |
| بیس ترانزیستور | پین 9 از راه مقاومت ۱ کیلواهم |
| دیود 1N4148 | موازی با موتور؛ نوار دیود سمت 5V |
بیشتر موتورهای سکهای برای حدود ۳ ولت ساخته شدهاند. چون موتور را روی ۵ ولت گذاشتهایم، در کد حداکثر PWM را حدود ۱۷۰ از ۲۵۵ نگه میداریم تا ولتاژ میانگین نزدیک ۳٫۳ ولت بماند؛ این همان کاری است که PWM با سرعت موتور میکند. توضیح کلید ترانزیستوری و دیود محافظ در ۱۵ مدار پایهی الکترونیک آمده است.
کد نمونه
الگوی لرزش «تماس ورودی»: دو لرزش محکم، مکث، یک لرزش آرام. تابع buzz شدت را به درصد میگیرد و خودش سقف ولتاژ را رعایت میکند:
// Coin vibration motor: phone-style "incoming call" pattern.
// Wiring: pin 9 -> 1k -> NPN base; motor + -> 5V, motor - -> collector;
// emitter -> GND; diode across the motor (stripe to 5V)
const int VIB = 9; // PWM pin
const int MAX_DUTY = 170; // about 3.3 V average for a 3 V motor on 5 V
void buzz(int percent, int ms) {
analogWrite(VIB, map(percent, 0, 100, 0, MAX_DUTY));
delay(ms);
analogWrite(VIB, 0);
}
void setup() {
pinMode(VIB, OUTPUT);
}
void loop() {
buzz(100, 300); // strong
delay(150);
buzz(100, 300);
delay(900);
buzz(60, 150); // a softer tick
delay(1500);
}
اگر لرزش ۶۰ درصد را حس نکردی، عدد را بالاتر ببر؛ هر موتور حداقل شروع خودش را دارد. در پروژهی واقعی معمولاً الگو را به یک رویداد وصل میکنی: وقتی سنسور حرکت چیزی دید، وقتی تایمر تمام شد یا وقتی فاصله از مانع کم شد. برای اینکه برنامه در طول لرزش قفل نشود، در پروژههای بزرگتر بهجای delay زمان را با millis بشمار.
اشتباههای رایج
- موتور مستقیم روی پین: جریان موتور از حد امن پایه بیشتر است و در لحظهی شروع چند برابر هم میشود.
- فراموش کردن دیود: ولتاژ برگشتی سیمپیچ در طول زمان ترانزیستور را خراب میکند.
- ۵ ولت کامل روی موتور ۳ ولتی: موتور داغتر کار میکند و زودتر از بین میرود؛ سقف PWM را رعایت کن.
- چسباندن روی سطح نرم: فوم و پارچه لرزش را میخورند. موتور را روی سطح سفت بچسبان تا لرزش به کل وسیله برسد.
آموزشهای مرتبط
- موتور لرزشی استوانهای، با لرزش قویتر
- ترانزیستور NPN، کلید راهانداز موتور
- موتور DC، همان اصول با موتور بزرگتر
- فاصلهسنج HC-SR04، برای ساختن عصای لرزشی
سؤالهای رایج
ووکوی موتور ویبره دارد؟
تا جایی که میدانیم نه. برای تمرین الگوی لرزش در ووکوی یک LED جای موتور بگذار؛ هر بار LED روشن است، موتور واقعی میلرزد. خود موتور لرزشی در تینکرکد فارسی رایگان شبیهسازی میشود.
موتور لرزشی را میشود مستقیم به پین آردوینو وصل کرد؟
بهتر است نه. این موتورها حدود ۶۰ تا ۹۰ میلیآمپر میکشند، بیشتر از حد امن یک پایه. یک ترانزیستور NPN با مقاومت بیس ۱ کیلواهم و یک دیود محافظ کار را امن میکند.
شدت لرزش را میشود کم و زیاد کرد؟
بله، با analogWrite روی پایهای که ترانزیستور را میراند. فقط زیر یک حداقل موتور راه نمیافتد و بالای یک حد هم برای موتور ۳ ولتی روی ۵ ولت زیاد است.