🦾 ماموریت ۴۲: بازوی رباتیک
چند سروو که با هم یه حرکت کامل انجام میدن. آرایهای از سروو کار رو ساده میکنه.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه آردوینو روی صحنه باشه
- ☐ حداقل دو سروو
- ☐ کد از Servo استفاده کنه
- ☐ کد از حلقهی for استفاده کنه
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- Arduino Uno
- سروو موتور × ۳
- پتانسیومتر × ۳
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- Arduino Uno (VCC5) ⟷ سروو موتور (VCC)
- سروو موتور (GND) ⟷ Arduino Uno (GND1)
- Arduino Uno (D9) ⟷ سروو موتور (SIG)
- Arduino Uno (VCC5) ⟷ سروو موتور (VCC)
- سروو موتور (GND) ⟷ Arduino Uno (GND1)
- Arduino Uno (D10) ⟷ سروو موتور (SIG)
- Arduino Uno (VCC5) ⟷ سروو موتور (VCC)
- سروو موتور (GND) ⟷ Arduino Uno (GND1)
- Arduino Uno (D11) ⟷ سروو موتور (SIG)
- Arduino Uno (VCC5) ⟷ پتانسیومتر (VCC)
- پتانسیومتر (GND) ⟷ Arduino Uno (GND2)
- پتانسیومتر (WIPER) ⟷ Arduino Uno (A0)
- Arduino Uno (VCC5) ⟷ پتانسیومتر (VCC)
- پتانسیومتر (GND) ⟷ Arduino Uno (GND2)
- پتانسیومتر (WIPER) ⟷ Arduino Uno (A1)
- Arduino Uno (VCC5) ⟷ پتانسیومتر (VCC)
- پتانسیومتر (GND) ⟷ Arduino Uno (GND2)
- پتانسیومتر (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);
}
ماموریتهای مشابه
🔩
ماموریت ۴۱: چرخش دقیق
🪴
ماموریت ۴۳: آبیاری خودکار
📡
ماموریت ۴۰: رادار چرخان
⌨️
ماموریت ۴۴: فرمان از سریال
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها