const int hor_pin = A0,
ver_pin = A1,
step_hor = 3,
dir_hor = 2,
step_ver = 5,
dir_ver = 4,
hor_ms1 = 6,
hor_ms2 = 7,
hor_ms3 = 8,
ver_ms1 = 9,
ver_ms2 = 10,
ver_ms3 = 11;
int prev_time = millis();
void setup() {
Serial.begin(9600);
pinMode(hor_pin, INPUT);
pinMode(ver_pin, INPUT);
pinMode(step_hor, OUTPUT);
pinMode(dir_hor, OUTPUT);
pinMode(step_ver, OUTPUT);
pinMode(dir_ver, OUTPUT);
}
void loop() {
// reading data from joystick and storing data in hor & ver variables
int hor = map(analogRead(hor_pin), 0, 1023, 1, -1);
int ver = map(analogRead(ver_pin), 0, 1023, -1, 1);
// printing the hor and ver values on serial monitor
int current_time = millis();
if(current_time - prev_time >= 500){
prev_time = current_time;
char buffer[40];
sprintf(buffer, "hor = %d, ver = %d", hor, ver);
Serial.println(buffer);
}
// vertical movement
if(ver != 0){
if(ver < 0){
digitalWrite(dir_ver, HIGH);
}
else{
digitalWrite(dir_ver, LOW);
}
digitalWrite(step_ver, HIGH);
delay(50);
digitalWrite(step_ver, LOW);
}
// horizontal movement
if(hor != 0){
if(hor > 0){
digitalWrite(dir_hor, HIGH);
}
else{
digitalWrite(dir_hor, LOW);
}
digitalWrite(step_hor, HIGH);
delay(50);
digitalWrite(step_hor, LOW);
}
}