#define DIR_PIN 3 #define STEP_PIN 2 #define EN_PIN 4 #define RIGHT_PIN 8 #define LEFT_PIN 7 #define stepsPerRevolution 5000 String data; char d1; void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(EN_PIN, OUTPUT); digitalWrite(EN_PIN, HIGH); // Deactivate driver (LOW active) pinMode(DIR_PIN, OUTPUT); digitalWrite(DIR_PIN, LOW); // LOW or HIGH pinMode(STEP_PIN, OUTPUT); digitalWrite(STEP_PIN, LOW); digitalWrite(EN_PIN, LOW); // Activate driver // Inch ka chka Maria pinMode(RIGHT_PIN, INPUT_PULLUP); pinMode(LEFT_PIN, INPUT_PULLUP); } void loop() { int botton_Left = digitalRead(LEFT_PIN); int botton_Right = digitalRead(RIGHT_PIN); // put your main code here, to run repeatedly: if (Serial.available()){ data = Serial.readString(); d1 = data.charAt(0); if(d1 == 'p'){ digitalWrite(DIR_PIN, HIGH); for (int i =1; i <= 1000000; i++) { digitalWrite(STEP_PIN, HIGH); delayMicroseconds(500000/stepsPerRevolution); digitalWrite(STEP_PIN, LOW); delayMicroseconds(500000/stepsPerRevolution); botton_Left = digitalRead(LEFT_PIN); botton_Right = digitalRead(RIGHT_PIN); if (botton_Left == 0){ digitalWrite(DIR_PIN,LOW); // break; } if (botton_Right == 0) { digitalWrite(DIR_PIN, HIGH); // break; } if (Serial.available()){ data = Serial.readString(); d1 = data.charAt(0); if(d1 == 's'){ break; } } } } else if (d1 == 'a') { digitalWrite(DIR_PIN, HIGH); for (int i =1; i <= 1000000; i++) { digitalWrite(STEP_PIN, HIGH); delayMicroseconds(500000/stepsPerRevolution); digitalWrite(STEP_PIN, LOW); delayMicroseconds(500000/stepsPerRevolution); botton_Left = digitalRead(LEFT_PIN); // int botton_Right = digitalRead(RIGHT_PIN); if (botton_Left == 0){ break; } } } } }