#define MS_Y_Amais 18
#define MS_Y_Amenos 19
#define MS_Y_Bmais 5
#define MS_Y_Bmenos 17
#define Joystick_Y 27
#define MS_X_Amais 4
#define MS_X_Amenos 16
#define MS_X_Bmais 2
#define MS_X_Bmenos 15
#define Joystick_X 26
void MotorPasso_Y( );
void MotorPasso_X( );
const unsigned int timestep = 10000;
int contador_X,contador_Y;
void setup()
{
Serial.begin(115200);
pinMode(MS_Y_Amais, OUTPUT);
pinMode(MS_Y_Amenos, OUTPUT);
pinMode(MS_Y_Bmais, OUTPUT);
pinMode(MS_Y_Bmenos, OUTPUT);
pinMode(MS_X_Amais, OUTPUT);
pinMode(MS_X_Amenos, OUTPUT);
pinMode(MS_X_Bmais, OUTPUT);
pinMode(MS_X_Bmenos, OUTPUT);
analogReadResolution(12);
delay(10);
contador_X =0;
contador_Y =0;
}
void loop()
{
if (analogRead(Joystick_Y)>3000){
if (contador_Y <4){
contador_Y++;
}else{
contador_Y = 0;
}
}else if (analogRead(Joystick_Y)<1000){
if (contador_Y >0){
contador_Y--;
}else{
contador_Y = 3;
}
}
MotorPasso_Y();
if (analogRead(Joystick_X)>3000){
if (contador_X <4){
contador_X++;
}else{
contador_X = 0;
}
}else if (analogRead(Joystick_X)<1000){
if (contador_X >0){
contador_X--;
}else{
contador_X = 3;
}
}
MotorPasso_X();
}
void MotorPasso_Y( ){
switch (contador_Y ){
case 0 : digitalWrite(MS_Y_Amais, HIGH);
digitalWrite(MS_Y_Amenos, LOW);
digitalWrite(MS_Y_Bmais, HIGH);
digitalWrite(MS_Y_Bmenos, LOW);
break;
case 1: digitalWrite(MS_Y_Amais, LOW);
digitalWrite(MS_Y_Amenos, HIGH);
digitalWrite(MS_Y_Bmais, HIGH);
digitalWrite(MS_Y_Bmenos, LOW);
break;
case 2: digitalWrite(MS_Y_Amais, LOW);
digitalWrite(MS_Y_Amenos, HIGH);
digitalWrite(MS_Y_Bmais, LOW);
digitalWrite(MS_Y_Bmenos, HIGH);
break;
case 3: digitalWrite(MS_Y_Amais, HIGH);
digitalWrite(MS_Y_Amenos, LOW);
digitalWrite(MS_Y_Bmais, LOW);
digitalWrite(MS_Y_Bmenos, HIGH);
}
delayMicroseconds(timestep);
}
void MotorPasso_X( ){
switch (contador_X ){
case 0 : digitalWrite(MS_X_Amais, HIGH);
digitalWrite(MS_X_Amenos, LOW);
digitalWrite(MS_X_Bmais, HIGH);
digitalWrite(MS_X_Bmenos, LOW);
break;
case 1: digitalWrite(MS_X_Amais, LOW);
digitalWrite(MS_X_Amenos, HIGH);
digitalWrite(MS_X_Bmais, HIGH);
digitalWrite(MS_X_Bmenos, LOW);
break;
case 2: digitalWrite(MS_X_Amais, LOW);
digitalWrite(MS_X_Amenos, HIGH);
digitalWrite(MS_X_Bmais, LOW);
digitalWrite(MS_X_Bmenos, HIGH);
break;
case 3: digitalWrite(MS_X_Amais, HIGH);
digitalWrite(MS_X_Amenos, LOW);
digitalWrite(MS_X_Bmais, LOW);
digitalWrite(MS_X_Bmenos, HIGH);
}
delayMicroseconds(timestep);
}