🦾 ماموریت ۴۲: بازوی رباتیک

چند سروو که با هم یه حرکت کامل انجام می‌دن. آرایه‌ای از سروو کار رو ساده می‌کنه.

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

هدف‌ها

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

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

جواب کامل

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

سیم‌کشی

  1. Arduino Uno (VCC5) ⟷ سروو موتور (VCC)
  2. سروو موتور (GND) ⟷ Arduino Uno (GND1)
  3. Arduino Uno (D9) ⟷ سروو موتور (SIG)
  4. Arduino Uno (VCC5) ⟷ سروو موتور (VCC)
  5. سروو موتور (GND) ⟷ Arduino Uno (GND1)
  6. Arduino Uno (D10) ⟷ سروو موتور (SIG)
  7. Arduino Uno (VCC5) ⟷ سروو موتور (VCC)
  8. سروو موتور (GND) ⟷ Arduino Uno (GND1)
  9. Arduino Uno (D11) ⟷ سروو موتور (SIG)
  10. Arduino Uno (VCC5) ⟷ پتانسیومتر (VCC)
  11. پتانسیومتر (GND) ⟷ Arduino Uno (GND2)
  12. پتانسیومتر (WIPER) ⟷ Arduino Uno (A0)
  13. Arduino Uno (VCC5) ⟷ پتانسیومتر (VCC)
  14. پتانسیومتر (GND) ⟷ Arduino Uno (GND2)
  15. پتانسیومتر (WIPER) ⟷ Arduino Uno (A1)
  16. Arduino Uno (VCC5) ⟷ پتانسیومتر (VCC)
  17. پتانسیومتر (GND) ⟷ Arduino Uno (GND2)
  18. پتانسیومتر (WIPER) ⟷ Arduino Uno (A2)

کد

#include <Servo.h>

Servo joints[3];
const int servoPins[3] = {9, 10, 11};
const int knobs[3] = {A0, A1, A2};

const int minAngle[3] = {10, 30, 20};
const int maxAngle[3] = {170, 150, 90};

void setup() {
  for (int i = 0; i < 3; i++) joints[i].attach(servoPins[i]);
  Serial.begin(9600);
}

void loop() {
  for (int i = 0; i < 3; i++) {
    int raw = analogRead(knobs[i]);
    int angle = map(raw, 0, 1023, minAngle[i], maxAngle[i]);
    joints[i].write(angle);
    Serial.print("j");
    Serial.print(i);
    Serial.print(":");
    Serial.print(angle);
    Serial.print(" ");
  }
  Serial.println();
  delay(40);
}

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

🔩

ماموریت ۴۱: چرخش دقیق

🪴

ماموریت ۴۳: آبیاری خودکار

📡

ماموریت ۴۰: رادار چرخان

⌨️

ماموریت ۴۴: فرمان از سریال

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