#include <LiquidCrystal.h>
#include <Stepper.h>
#include <Servo.h>
int VRx = A0;
int VRy = A1;
int SW = 2;
int servo = A2;
Servo J;
int position;
const int stepsPerRevolution = 200;
Stepper s(stepsPerRevolution, 8, 9, 10, 11);
int xPosition = 0;
int yPosition = 0;
int SW_state = 0;
int mapX = 0;
int mapY = 0;
int ledd1 = 5;
int ledd2 = 6;
int ledd3 = 7;
int ledu1 = 11;
int ledu2 = 12;
int ledu3 = 13;
void setup() {
s.setSpeed(60);
Serial.begin(115200);
pinMode (ledu1, OUTPUT);
pinMode (ledu2, OUTPUT);
pinMode (ledu3, OUTPUT);
pinMode (ledd1, OUTPUT);
pinMode (ledd2, OUTPUT);
pinMode (ledd3, OUTPUT);
pinMode(VRx, INPUT);
pinMode(VRy, INPUT);
pinMode(SW, INPUT_PULLUP);
J.attach(A2);
J.write(position = 90);
}
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(VRx) == 0 ){
for (position=90;position>=30;position--)
J.write(position);
delay (1);
digitalWrite(ledd1, HIGH);
delay(10);
digitalWrite(ledd1, LOW);
delay(10);
digitalWrite(ledd2, HIGH);
delay(10);
digitalWrite(ledd2, LOW);
delay(10);
digitalWrite(ledd3, HIGH);
delay(10);
digitalWrite(ledd3, LOW);
delay(10);
}else
if (analogRead(VRy) == 0){
s.step(-stepsPerRevolution);
}
if (analogRead(VRy) == 1023){
s.step(stepsPerRevolution);
}
if (analogRead(VRx) == 1023){
for (position=90;position<=150;position++)
J.write(position);
delay (1);
digitalWrite(ledu1, HIGH);
delay(10);
digitalWrite(ledu1, LOW);
delay(10);
digitalWrite(ledu2, HIGH);
delay(10);
digitalWrite(ledu2, LOW);
delay(10);
digitalWrite(ledu3, HIGH);
delay(10);
digitalWrite(ledu3, LOW);
delay(10);
}
else if (analogRead (VRx) == 512){
J.write (position =90 );
}
}