🎯 کنترل تناسبی سروو
سروو با گامی متناسب با خطا، نرم به هدفِ پتانسیومتر میرسد.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو (سهبعدی + کد)
قطعات لازم
کد کامل پروژه
// کنترل تناسبی: سروو آرام به سمت هدف (پتانسیومتر) میرود
#include <Servo.h>
Servo arm;
float pos = 90; // where the servo is now
const float Kp = 0.1; // gain: how strongly we react to the error
void setup() {
arm.attach(9);
arm.write(90);
Serial.begin(9600);
}
void loop() {
int target = map(analogRead(A0), 0, 1023, 0, 180);
float error = target - pos; // how far are we from the goal?
pos = pos + Kp * error; // move a PART of the way: big error = big step
arm.write((int)pos);
Serial.print("target:");
Serial.print(target);
Serial.print(" pos:");
Serial.println(pos);
delay(20);
}
چطور اجرایش کنم؟
- شبیهساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
- از پنل «نمونهها»، «کنترل تناسبی سروو» را بارگذاری کن — مدار و کد با هم میآیند.
- دکمهی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
- حالا کد را تغییر بده — عددها، پینها، ترتیب — و دوباره اجرا کن!