⚙️ درس 99: استپر نرم با AccelStepper

شتاب، moveTo و run — و چرا شتاب جلوی گم شدن پله را می‌گیرد.

سطح: پیشرفته · زمان: حدود 18 دقیقه · مفاهیم: استپر، شتاب، AccelStepper

قدم‌های این درس

  1. چرا؟ هیچ ماشینی از صفر به صد نمی‌پرد
  2. قدم ۱ — مدار
  3. قدم ۲ — moveTo و run
  4. قدم ۳ — مقایسه: بدون شتاب
  5. چالش: دکمه‌ی برگشت به خانه

نمونه‌ای از کد این درس

// استپر نرم: پتانسیومتر مقصد را تعیین می‌کند، AccelStepper با شتاب می‌رود
#include <AccelStepper.h>

// 28BYJ-48 + ULN2003 on IN1..IN4 = 8, 9, 10, 11 (note the 8, 10, 9, 11 order)
AccelStepper stepper(AccelStepper::FULL4WIRE, 8, 10, 9, 11);
unsigned long lastPrint = 0;

void setup() {
  stepper.setMaxSpeed(600);       // steps per second at most
  stepper.setAcceleration(300);   // steps per second, per second
  Serial.begin(9600);
}

void loop() {
  long goal = map(analogRead(A0), 0, 1023, 0, 2048);   // 0..one full turn
  stepper.moveTo(goal);           // just sets the target, never waits
  stepper.run();                  // does at most ONE step; call it very often

  if (millis() - lastPrint > 300) {   // print without blocking run()
    lastPrint = millis();
    Serial.print("goal:");
    Serial.print(goal);
    Serial.print(" pos:");
    Serial.println(stepper.currentPosition());
  }
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

💾

درس 98: ثبت داده روی کارت حافظه

🤖

درس 100: پروژه‌ی پایانی: ربات هوشمند