title: Arduino: Pin time inactivity/activity
body: <p>The purpose of the following Arduino code is to interface with the high and low signals sent from a Raspberry Pi; the full explanation is rather complex so I'll spare you the waste in time. The signals sent from the Pi (pins 10 and 11) turn a stepper motor connected to an A4988 driver clockwise or counterclockwise. The pins that dictate this out of the Arduino are the step and direction pins (9 and 8). What I am trying to accomplish is to enable the <strong>sleepPin</strong> after 60 seconds of pin 10 and 11 inactivity. </p>
  
  <p>Likewise, in the same fashion, I want to stop accepting input from pin 10 and 11 if they both read the same input signal for more than 3 seconds. I've looked up methods on how to incorporate time into Arduino script but do not know how to incorporate it in this instance.</p>
  
  <pre><code>byte directionPin = 9;
  byte stepPin = 8;
  byte sleepPin = 12;
  
  byte buttonCWpin = 10;
  byte buttonCCWpin = 11;
  
  
  boolean buttonCWpressed = false;
  boolean buttonCCWpressed = false;
  long previousMillis = 0;
  long interval = 1000;
  
  
  void setup() { 
  //determines length of stepper movement
  pinMode(directionPin, OUTPUT);
  pinMode(stepPin, OUTPUT);
  //moves motors clockwise or counterclockwise
  pinMode(buttonCWpin, INPUT_PULLUP);
  pinMode(buttonCCWpin, INPUT_PULLUP);
  
  }
  
  void loop() { 
  
   readButtons();
   actOnButtons();
  
  }
  
  void readButtons() {
  
   buttonCCWpressed = false;
   buttonCWpressed = false;
  
  
   if (digitalRead(buttonCWpin) == LOW) {
   buttonCWpressed = true;
   }
   if (digitalRead(buttonCCWpin) == LOW) {
   buttonCCWpressed = true;
   }
  
  
  }
  
  void actOnButtons() {
  
    if (buttonCWpressed == true) {
   digitalWrite(directionPin, LOW);
     for(int x = 0; x &lt; 1; x++) {
      digitalWrite(stepPin,HIGH); 
      delayMicroseconds(515); 
      digitalWrite(stepPin,LOW); 
      delayMicroseconds(515); 
     }
   }
  
   if (buttonCCWpressed == true) {
   digitalWrite(directionPin, HIGH);
     for(int x = 0; x &lt; 1; x++) {
      digitalWrite(stepPin,HIGH); 
      delayMicroseconds(515); 
      digitalWrite(stepPin,LOW); 
      delayMicroseconds(515); 
     }
   }
  
  
  
  
  
  
  }
  </code></pre>
  
  <p>Any help would be greatly appreciated along with any tips or concerns.</p>
  
  <p>Thank You.</p>