⚙️ موتور DC (DC Motor)

اسم انگلیسیDC Motor
در ووکوی (Wokwi)نسخه‌ی آماده‌ای سراغ نداریم
دسته⚙️ موتور و حرکت
در شبیه‌ساز فارسیمود ساده (بدون کد) و مود آردوینو · رایگان

موتور DC (DC Motor) ساده‌ترین موتور الکتریکی است: دو سیم دارد، با ولتاژ می‌چرخد و با جابه‌جا شدن قطب‌ها جهتش برعکس می‌شود. پنکه‌ی کوچک، چرخ ماشین اسباب‌بازی و پمپ آکواریوم همه موتور DC دارند. کنار آردوینو، با یک ترانزیستور و PWM سرعتش را کنترل می‌کنی.

موتور DC در ووکوی (Wokwi)

تا جایی که می‌دانیم ووکوی نسخه‌ی آماده‌ی این قطعه را ندارد؛ باتری هم ندارد و تغذیه‌ی همه‌چیز از پایه‌های 5V و 3.3V برد می‌آید. برای تمرین همین کد در ووکوی، یک wokwi-led با مقاومت ۲۲۰ اهم روی پین ۹ و یک wokwi-potentiometer روی A0 بگذار: هرچه PWM بیشتر، نور بیشتر؛ همان چیزی که موتور به شکل دور نشان می‌دهد.

مدار کامل با موتور، ترانزیستور، دیود و جاباتری در تینکرکد فارسی هم در حالت ساده (2D) و هم در حالت آردوینو (3D) رایگان شبیه‌سازی می‌شود. موتور آن‌جا دو پایه‌ی A و B دارد؛ مثال آماده‌ی موتور با ترانزیستور را باز کن و دور موتور را زنده ببین.

سیم‌کشی با آردوینو

آردوینو فقط فرمان می‌دهد و جریان موتور از جاباتری چهارتایی قلمی (۶ ولت) می‌آید. ترانزیستور NPN مثل یک شیر برقی سمت منفی موتور را به زمین وصل می‌کند:

پایه‌ی قطعهوصل به
موتور، سیم Aمثبت جاباتری ۶ ولت
موتور، سیم Bکلکتور ترانزیستور NPN (برای موتور خیلی کوچک 2N2222، برای پرمصرف‌تر TIP120)
امیتر ترانزیستورGND (مشترک با منفی باتری)
بیس ترانزیستورپین 9 از راه مقاومت ۱ کیلواهم
دیود 1N4007موازی با موتور؛ نوار دیود سمت مثبت باتری
پتانسیومتردو سر به 5V و GND، پایه‌ی وسط به A0

زمین باتری و زمین آردوینو باید به هم وصل باشند؛ بدون زمین مشترک، ولتاژ بیس مرجعی ندارد و موتور تکان نمی‌خورد. چرایی دیود را در بخش «دیود هرزگرد» از ۱۵ مدار پایه‌ی الکترونیک توضیح داده‌ایم.

کد نمونه

پتانسیومتر سرعت را تعیین می‌کند، ولی موتور زیر یک حداقل PWM فقط وزوز می‌کند و نمی‌چرخد. این کد آن ناحیه‌ی بی‌فایده را حذف می‌کند:

// DC motor speed from a potentiometer, with a minimum start duty.
// Wiring: pin 9 -> 1k -> NPN base; motor between battery + and collector;
//         emitter -> GND; flyback diode across the motor; pot wiper -> A0
const int MOTOR_PIN = 9;     // PWM pin
const int POT_PIN = A0;
const int MIN_DUTY = 70;     // below this the motor only hums

void setup() {
  pinMode(MOTOR_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int pot = analogRead(POT_PIN);             // 0..1023
  int duty = 0;
  if (pot > 50) {                            // bottom of the knob = stop
    duty = map(pot, 50, 1023, MIN_DUTY, 255);
  }
  analogWrite(MOTOR_PIN, duty);

  Serial.print("duty:");
  Serial.println(duty);
  delay(50);
}

عدد MIN_DUTY به موتور و باتری‌ات بستگی دارد. با سریال مانیتور پیدایش کن: کمترین عددی که موتور با آن از حالت ایستاده راه می‌افتد. برای فهم درصد PWM و ولتاژ میانگین، ماشین‌حساب PWM را ببین.

اشتباه‌های رایج

آموزش‌های مرتبط

سؤال‌های رایج

ووکوی موتور DC دارد؟

تا جایی که می‌دانیم ووکوی قطعه‌ی آماده‌ی موتور DC ندارد. برای تمرین کد PWM یک LED جای موتور بگذار تا شدت نور نشان‌دهنده‌ی سرعت باشد. خود موتور با ترانزیستور، دیود و باتری در تینکرکد فارسی رایگان شبیه‌سازی می‌شود.

چرا موتور با PWM کم نمی‌چرخد و فقط وزوز می‌کند؟

موتور برای غلبه بر اصطکاک یک حداقل ولتاژ لازم دارد. زیر آن، جریان می‌کشد و گرم می‌شود ولی نمی‌چرخد. در کد یک حداقل PWM (مثلاً ۷۰ از ۲۵۵) بگذار و زیر آن موتور را کامل خاموش کن.

چرا نمی‌شود موتور را مستقیم به پین آردوینو وصل کرد؟

موتور کوچک هم معمولاً بیش از ۱۰۰ میلی‌آمپر می‌کشد و در لحظه‌ی شروع چند برابر؛ پایه‌ی آردوینو حدود ۴۰ میلی‌آمپر تحمل دارد. ترانزیستور یا درایور، جریان را از باتری می‌دهد و آردوینو فقط فرمان می‌دهد.

📖 طرز کار، مشخصات فنی و نکته‌های خرید این قطعه در دانشنامه‌ی تینکرکد فارسی: موتور DC آمده است.

آموزش‌هایی که از این قطعه استفاده می‌کنند

🏠

داشبورد خانه‌ی هوشمند روی گوشی با ESP32

قطعه‌های دیگرِ موتور و حرکت

🦾

سروو موتور

Servo Motor (SG90)

📳

موتور لرزشی سکه‌ای (ویبره)

Coin Vibration Motor

🔩

موتور پله‌ای 28BYJ-48 (استپر)

Stepper Motor 28BYJ-48

🖨️

موتور استپر NEMA 17

NEMA 17 Stepper Motor

🌀

موتور DC بزرگ

Large DC Motor (12V)

🚗

موتور گیربکس‌دار (موتور زرد TT)

TT Gear Motor

همه‌ی ۱۰۵ قطعه ← · آموزش مدار

موتور DC را در شبیه‌ساز امتحان کن 🚀