// Pin təyinatları
#define STEP_PIN 18
#define DIR_PIN 19
#define BUTTON_PIN 4
int butstat = 0;
int buttonState = 0;
bool motorDirection = true;
void setup() {
Serial.begin(115200);
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP); // Buton GND-yə bağlandığı üçün PULLUP istifadə edirik
digitalWrite(DIR_PIN, motorDirection); // İlk olaraq sağa dövr edir
}
void loop() {
delay(10);
// Butonun vəziyyətini oxuyuruq
buttonState = digitalRead(BUTTON_PIN);
butstat = digitalRead(BUTTON_PIN);
Serial.println(butstat);
// Butona basılıbsa (yəni LOW-a düşübsə)
if (buttonState == LOW) {
motorDirection = !motorDirection; // İstiqaməti dəyişirik
digitalWrite(DIR_PIN, motorDirection); // Motorun istiqamətini təyin edirik
delay(500); // Butona bir dəfə basılmasını təmin etmək üçün qısa gecikmə
}
// STEP pininə impuls göndəririk
digitalWrite(STEP_PIN, HIGH);
delayMicroseconds(500); // Motorun sürəti
digitalWrite(STEP_PIN, LOW);
delayMicroseconds(500); // Motorun sürəti
}