int enablePin = A5; int dirPin = A3; int clkPin = A4; int received; int timeToSwitch = 1000; int wait = 1000; int waitWhileSwitch = 1000; int counter; bool dirStatus; void setup() { Serial.begin(115200); pinMode(enablePin,OUTPUT); pinMode(dirPin,OUTPUT); pinMode(clkPin,OUTPUT); digitalWrite(enablePin,LOW); digitalWrite(dirPin,LOW); counter = 0; dirStatus = false; } void loop() { while(Serial.available() > 0){ received = Serial.parseInt(); if(received != 0){ wait = received; Serial.println(wait); } } ++counter; if(counter > timeToSwitch){ counter = 0; if(!dirStatus){ dirStatus = true; delay(waitWhileSwitch); digitalWrite(dirPin,HIGH); } else{ dirStatus = false; delay(waitWhileSwitch); digitalWrite(dirPin,LOW); } } digitalWrite(clkPin,LOW); delayMicroseconds(wait); digitalWrite(clkPin,HIGH); delayMicroseconds(wait); digitalWrite(clkPin,LOW); delayMicroseconds(wait); digitalWrite(clkPin,HIGH); delayMicroseconds(wait); }