#define stp 3
#define dir 2
#define btn1 5
#define btn2 6
#define btn3 4
#define btn4 7
#define pot A0
bool motorOn = false;
void setup() {
pinMode(stp, OUTPUT);
pinMode(dir, OUTPUT);
pinMode(btn1, INPUT_PULLUP);
pinMode(btn2, INPUT_PULLUP);
pinMode(btn3, INPUT_PULLUP);
pinMode(btn4, INPUT_PULLUP);
}
void loop() {
// запуск двигателя
if (digitalRead(btn3) == LOW) {
motorOn = true;
}
// остановка двигателя
if (digitalRead(btn4) == LOW) {
motorOn = false;
}
// установка направления
if (digitalRead(btn1) == LOW) {
digitalWrite(dir, HIGH);
}
if (digitalRead(btn2) == LOW) {
digitalWrite(dir, LOW);
}
if (motorOn) {
int potValue = analogRead(pot);
int speedDelay = map(potValue, 0, 1095, 500, 3000);
digitalWrite(stp, HIGH);
delayMicroseconds(speedDelay);
digitalWrite(stp, LOW);
delayMicroseconds(speedDelay);
}
}