//se definena la variable constante poscionPinX de tipo entero
const int posicionPinX = 0;
//se definena la variable posicionPinY intervalo de tipo entero
const int posicionPinY = 1;
//se define la variable valroX de tipo entero
int valorX;
//se define la variable valorY de tipo entero
int valorY;
//se define la variable x de tipo entero
int x;
//se define la variable y de tipo entero
int y;
//se definena la variable constante intervalo de tipo entero
const int intervalo = 10;
//se definena la variable inte intervaloReposo de tipo entero
const int intervaloReposo = intervalo/2;
//se definena la variable constante numeroDeBotones de tipo entero
const int numeroDeBotones = 4;
//se definena la variable constante butonPinDerecho de tipo entero
const int butonPinDerecho = 3;
//se definena la variable constante butonPinArriba de tipo entero
const int butonPinArriba = 4;
//se definena la variable constante butonPinAbajo de tipo entero
const int butonPinAbajo = 5;
//se definena la variable constante butonPinIzquierdode tipo entero
const int butonPinIzquierdo = 6;
//se definena el variable arreglo botones de tipo entero
int botones[numeroDeBotones] = {butonPinDerecho, butonPinArriba, butonPinAbajo, butonPinIzquierdo};
void setup(){
for(int i = 0; i < numeroDeBotones; i++){
//pines de salida
pinMode(botones[i], INPUT);
//valor alto al pin digital
digitalWrite(botones[i], HIGH);
}
//comunicacion serial a 9600bps
Serial.begin(9600);
}
void loop(){
//valor de tensión en el pin analógico posicionPinX(A0)
valorX = analogRead(posicionPinX);
//se toma el valorX para la direccion x
x = map(valorX,0,1024,0,intervalo);
//valor de tensión en el pin analógico posicionPinY(A1)
valorY = analogRead(posicionPinY);
//se toma el valorY para la direccion y
y = map(valorY,0,1024,0,intervalo);
//si la palanca del Joystick no esta en reposo en la posicion x
if(x > intervaloReposo || x < intervaloReposo){
//escribe el identificador de la coordenada x
Serial.write('x');
//escribe el valor en x
Serial.write(x);
}
//si la palanca del Joystick no esta en reposo en la posicion y
if(y > intervaloReposo || y < intervaloReposo){
//escribe el identificador de la coordenada y
Serial.write('y');
//escribe el valor y
Serial.write(y);
}
for(int i = 0; i < numeroDeBotones; i++){
//si hay evento de un boton del Joystick
if(digitalRead(botones[i]) == 0){
//escribe el identificador del boton
Serial.write('b');
//escribe el boton seleccionado
//Boton derecho : 0
//Boton arriba : 1
//Boton abajo : 2
//Boton izquierdo : 3
Serial.write(i);
delay(10);
}
}
delay(20);
}//se definena la variable constante poscionPinX de tipo entero
const int posicionPinX = 0;
//se definena la variable posicionPinY intervalo de tipo entero
const int posicionPinY = 1;
//se define la variable valroX de tipo entero
int valorX;
//se define la variable valorY de tipo entero
int valorY;
//se define la variable x de tipo entero
int x;
//se define la variable y de tipo entero
int y;
//se definena la variable constante intervalo de tipo entero
const int intervalo = 10;
//se definena la variable inte intervaloReposo de tipo entero
const int intervaloReposo = intervalo/2;
//se definena la variable constante numeroDeBotones de tipo entero
const int numeroDeBotones = 4;
//se definena la variable constante butonPinDerecho de tipo entero
const int butonPinDerecho = 3;
//se definena la variable constante butonPinArriba de tipo entero
const int butonPinArriba = 4;
//se definena la variable constante butonPinAbajo de tipo entero
const int butonPinAbajo = 5;
//se definena la variable constante butonPinIzquierdode tipo entero
const int butonPinIzquierdo = 6;
//se definena el variable arreglo botones de tipo entero
int botones[numeroDeBotones] = {butonPinDerecho, butonPinArriba, butonPinAbajo, butonPinIzquierdo};
void setup(){
for(int i = 0; i < numeroDeBotones; i++){
//pines de salida
pinMode(botones[i], INPUT);
//valor alto al pin digital
digitalWrite(botones[i], HIGH);
}
//comunicacion serial a 9600bps
Serial.begin(9600);
}
void loop(){
//valor de tensión en el pin analógico posicionPinX(A0)
valorX = analogRead(posicionPinX);
//se toma el valorX para la direccion x
x = map(valorX,0,1024,0,intervalo);
//valor de tensión en el pin analógico posicionPinY(A1)
valorY = analogRead(posicionPinY);
//se toma el valorY para la direccion y
y = map(valorY,0,1024,0,intervalo);
//si la palanca del Joystick no esta en reposo en la posicion x
if(x > intervaloReposo || x < intervaloReposo){
//escribe el identificador de la coordenada x
Serial.write('x');
//escribe el valor en x
Serial.write(x);
}
//si la palanca del Joystick no esta en reposo en la posicion y
if(y > intervaloReposo || y < intervaloReposo){
//escribe el identificador de la coordenada y
Serial.write('y');
//escribe el valor y
Serial.write(y);
}
for(int i = 0; i < numeroDeBotones; i++){
//si hay evento de un boton del Joystick
if(digitalRead(botones[i]) == 0){
//escribe el identificador del boton
Serial.write('b');
//escribe el boton seleccionado
//Boton derecho : 0
//Boton arriba : 1
//Boton abajo : 2
//Boton izquierdo : 3
Serial.write(i);
delay(10);
}
}
delay(20);
}