⚙️ ماموریت ۷۱: دو موتور با L293D

L293D: EN1/EN2 به D5/D6 (PWM)، IN1..IN4 به D2، D3، D4، D7. موتور A روی OUT1/OUT2، موتور B روی OUT3/OUT4. جلو، عقب، دور زدن!

سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد

هدف‌ها

قطعه‌های لازم

▶ همین ماموریت را در شبیه‌ساز امتحان کن
💡 گیر کردی؟ داخل شبیه‌ساز راهنما را ببین، و اگر باز هم نشد دکمه‌ی «برام حلش کن» مدار را برایت می‌چیند تا ببینی چطور کار می‌کند.

جواب کامل

اول خودت امتحان کن! بعد جواب را ببین 👀

سیم‌کشی

  1. Arduino Uno (D5) ⟷ L293D Motor Driver (P1)
  2. Arduino Uno (D2) ⟷ L293D Motor Driver (P2)
  3. Arduino Uno (D3) ⟷ L293D Motor Driver (P7)
  4. Arduino Uno (D6) ⟷ L293D Motor Driver (P9)
  5. Arduino Uno (D4) ⟷ L293D Motor Driver (P10)
  6. Arduino Uno (D7) ⟷ L293D Motor Driver (P15)
  7. Arduino Uno (VCC5) ⟷ L293D Motor Driver (P16)
  8. Arduino Uno (VCC5) ⟷ L293D Motor Driver (P8)
  9. L293D Motor Driver (P4) ⟷ Arduino Uno (GND1)
  10. L293D Motor Driver (P3) ⟷ موتور DC (MOTOR_POS)
  11. L293D Motor Driver (P6) ⟷ موتور DC (MOTOR_NEG)
  12. L293D Motor Driver (P11) ⟷ موتور DC (MOTOR_POS)
  13. L293D Motor Driver (P14) ⟷ موتور DC (MOTOR_NEG)

کد

const int ENA = 5, IN1 = 2, IN2 = 3;
const int ENB = 6, IN3 = 4, IN4 = 7;

void motors(int a1, int a2, int b1, int b2, int speed) {
  digitalWrite(IN1, a1); digitalWrite(IN2, a2);
  digitalWrite(IN3, b1); digitalWrite(IN4, b2);
  analogWrite(ENA, speed);
  analogWrite(ENB, speed);
}

void setup() {
  int pins[] = {ENA, IN1, IN2, ENB, IN3, IN4};
  for (int i = 0; i < 6; i++) pinMode(pins[i], OUTPUT);
}

void loop() {
  motors(HIGH, LOW, HIGH, LOW, 200); delay(2000);   // forward
  motors(LOW, HIGH, LOW, HIGH, 200); delay(2000);   // backward
  motors(HIGH, LOW, LOW, HIGH, 150); delay(1000);   // spin
  motors(LOW, LOW, LOW, LOW, 0);     delay(1000);   // stop
}

ماموریت‌های مشابه

🌀

ماموریت ۷۰: پنکه با ماسفت

🔘

ماموریت ۷۳: انتخاب حالت با کلید گردان

🎲

ماموریت ۷۴: تاس الکترونیکی

🔋

ماموریت ۷۵: زمان شارژ خازن

📚 برای یاد گرفتن پایه‌ها سری به دوره‌ی آموزش آردوینو بزن · 🎯 همه‌ی ماموریت‌ها