//ควบคุมด้วยสวิต stepper Motor
#include <Stepper.h>
const int stepsPerRevolution = 200;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
// กำหนดปุ่ม
const int btnUp = 2; // ปุ่มเพิ่มความเร็ว
const int btnDown = 3; // ปุ่มลดความเร็ว
int motorSpeed = 20; // ค่าเริ่มต้น (RPM)
void setup() {
Serial.begin(9600);
pinMode(btnUp, INPUT_PULLUP); // ใช้ Pull-up ภายใน
pinMode(btnDown, INPUT_PULLUP);
myStepper.setSpeed(motorSpeed);
Serial.println("กดปุ่มเพื่อปรับความเร็ว Stepper");
}
void loop() {
// อ่านปุ่มเพิ่มความเร็ว
if (digitalRead(btnUp) == LOW) {
motorSpeed += 10; // เพิ่มทีละ 10 RPM
if (motorSpeed > 200) motorSpeed = 200; // จำกัดสูงสุด
myStepper.setSpeed(motorSpeed);
Serial.print("Speed = ");
Serial.print(motorSpeed);
Serial.println(" RPM");
delay(300); // กันเด้งปุ่ม
}
// อ่านปุ่มลดความเร็ว
if (digitalRead(btnDown) == LOW) {
motorSpeed -= 10; // ลดทีละ 10 RPM
if (motorSpeed < 1) motorSpeed = 1; // จำกัดต่ำสุด
myStepper.setSpeed(motorSpeed);
Serial.print("Speed = ");
Serial.print(motorSpeed);
Serial.println(" RPM");
delay(300); // กันเด้งปุ่ม
}
// หมุนตามเข็ม 1 รอบ
myStepper.step(stepsPerRevolution);
// หมุนทวนเข็ม 1 รอบ
myStepper.step(-stepsPerRevolution);
}