⚙️ استپر نرم با پتانسیومتر
پتانسیومتر مقصد را میگوید و AccelStepper با شتاب نرم به آن میرسد.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو (سهبعدی + کد)
قطعات لازم
کد کامل پروژه
// استپر نرم: پتانسیومتر مقصد را تعیین میکند، 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());
}
}
چطور اجرایش کنم؟
- شبیهساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
- از پنل «نمونهها»، «استپر نرم با پتانسیومتر» را بارگذاری کن — مدار و کد با هم میآیند.
- دکمهی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
- حالا کد را تغییر بده — عددها، پینها، ترتیب — و دوباره اجرا کن!