#include <Stepper.h>
//#include <L293D.h>
// Σταθερές
const int stepsPerRevolution = 200; // Αριθμός βημάτων ανά περιστροφή του μοτέρ
const int topRPM = 200; // Μέγιστες στροφές ανά λεπτό (RPM)
const int analogPin = A0; // Ακίδα του ποτενσιόμετρου (αναλογική είσοδος)
// Ρύθμιση του stepper motor στις ακίδες 8, 9, 10, 11
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
// Έναρξη της σειριακής επικοινωνίας για την εμφάνιση δεδομένων στο Serial Monitor
Serial.begin(115200);
}
void loop() {
// Ανάγνωση της τιμής του ποτενσιόμετρου (0-1023 από την αναλογική είσοδο)
int sensorValue = analogRead(analogPin);
// Μετατροπή της τιμής του ποτενσιόμετρου σε στροφές ανά λεπτό (RPM)
// Το arduino Uno έχει ADC 10bit δλδ 1024 τιμές, σε εναν 8bit θα είχαμε 0-255
int targetRPM = map(sensorValue, 0, 1023, 0, topRPM);
// Ρύθμιση της ταχύτητας του stepper motor με βάση τις υπολογισμένες RPM
myStepper.setSpeed(targetRPM);
// Εντολή στο μοτέρ να εκτελέσει ένα βήμα
myStepper.step(1);
// Εμφάνιση πληροφοριών στο Serial Monitor
Serial.print("RPM: "); // Εμφάνιση της ετικέτας "RPM"
Serial.println(targetRPM); // Εμφάνιση της τρέχουσας ταχύτητας του μοτέρ σε RPM
}