#include <Stepper.h>
#include <LiquidCrystal.h>
const int stepsPerRevolution = 200;
Stepper s(stepsPerRevolution, 8, 9, 10, 11);
int VRx = A0;
int VRy = A1;
int xPosition = 0;
int yPosition = 0;
int SW_state = 0;
int mapX = 0;
int SW = 2;
int mapY = 0;
LiquidCrystal lcd(3, 4, 5, 6, 7, 12);
void setup() {
pinMode(7, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
Serial.begin(115200);
s.setSpeed (60);
pinMode(VRx, INPUT);
pinMode(VRy, INPUT);
pinMode(SW, INPUT_PULLUP);
lcd.begin(16, 2);
lcd.setCursor(5,0);
lcd.write("N");
}
void loop() {
Serial.print("Switch: ");
Serial.print(digitalRead(SW));
Serial.print("\n");
Serial.print("X-axis: ");
Serial.print(analogRead(VRx));
Serial.print("\n");
Serial.print("Y-axis: ");
Serial.println(analogRead(VRy));
Serial.print("\n\n");
delay(500);
xPosition = analogRead(VRx);
yPosition = analogRead(VRy);
SW_state = digitalRead(SW);
mapX = map(xPosition, 0, 1023, -512, 512);
mapY = map(yPosition, 0, 1023, -512, 512);
if (analogRead(VRy) == 0 ){
s.step(-stepsPerRevolution);
lcd.setCursor(4, 0);
lcd.write("Unlocked!");
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
}
else if (analogRead (VRy) == 1023){
s.step(stepsPerRevolution);
lcd.setCursor (5,0);
lcd.print("Up");
delay (500);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
}
else if (analogRead (VRy) ==512 ){
s.step (0);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
}