Tuesday, February 14, 2017

Lego Switch Sketch


// Type f, b or s on the serial monitor to turn the switch forward or backward.



#include <Stepper.h>
int Pin0 = 8;
int Pin1 = 9;
int Pin2 = 10;
int Pin3 = 11;
#define delaytime 4
int m =80;
int i=0;   //512
const int x = 1000; //512
Stepper xStepper(x, 11, 10, 9, 8);

void setup() {
  Serial.begin(9600);                 
  pinMode(Pin0,OUTPUT);
  pinMode(Pin1, OUTPUT);
  pinMode(Pin2, OUTPUT);
  pinMode(Pin3, OUTPUT);
 xStepper.setSpeed(2000);  //560
}

void loop() {
  if (Serial.available()>0) {            
    int data = Serial.read();              

  if(data == 'f'){
    Serial.println("Motion forward!");    
  for(i=0;i<150;i++){
    digitalWrite(Pin0, HIGH);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, HIGH);
    delay(delaytime);
    digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, HIGH);
    delay(delaytime);
     digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, HIGH);
    digitalWrite(Pin3, HIGH);
    delay(delaytime);
     digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, HIGH);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
  digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, HIGH);
    digitalWrite(Pin2, HIGH);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
    digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, HIGH);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
   digitalWrite(Pin0, HIGH);
    digitalWrite(Pin1, HIGH);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
   digitalWrite(Pin0, HIGH);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
    }
    delay(1000);
   
}   else if(data == 'b') {    
       Serial.println("Motion backward!"); 
      
     for(i=0;i<150;i++){
     digitalWrite(Pin0, HIGH);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
   delay(delaytime);
  digitalWrite(Pin0, HIGH);
    digitalWrite(Pin1, HIGH);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
     digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, HIGH);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
    digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, HIGH);
    digitalWrite(Pin2, HIGH);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
    digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, HIGH);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
     digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, HIGH);
    digitalWrite(Pin3, HIGH);
    delay(delaytime);
  digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, HIGH);
    delay(delaytime);
    digitalWrite(Pin0, HIGH);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, HIGH);
    delay(delaytime);
    }
    delay(1000);
   

}  else if(data == 's'){
    for(i=0;i<50;i++){
 digitalWrite(Pin0, HIGH);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
   delay(delaytime);
  digitalWrite(Pin0, HIGH);
    digitalWrite(Pin1, HIGH);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
    delay(delaytime);
     digitalWrite(Pin0, LOW);
    digitalWrite(Pin1, LOW);
    digitalWrite(Pin2, LOW);
    digitalWrite(Pin3, LOW);
    delay(delaytime);

}
delay(1000);

}  }  }

No comments:

Post a Comment