/*β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„
β˜„                                                                            β˜„
β˜„      ☘ DATOS GENERALES:                                                    β˜„
β˜„      NOMBRE:      Uso bΓ‘sico del Joystick.                                 β˜„
β˜„      FECHA:       10 de noviembre de 2024.                                 β˜„
β˜„      VERSIΓ“N:     1.0.                                                     β˜„
β˜„                                                                            β˜„
β˜„      AUTOR:       M. en C. Esli Castellanos BerjΓ‘n.                        β˜„
β˜„      E-MAIL:      [email protected].                                β˜„
β˜„      COMPAÑÍA:    Universidad de Colima - Facultad de TelemΓ‘tica.          β˜„
β˜„                                                                            β˜„
β˜„      uC:          ATMEGA - 328p.                                           β˜„
β˜„      Nombre:      Arduino UNO.                                             β˜„
β˜„                                                                            β˜„
β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„
β˜„                                                                            β˜„
β˜„      ☘ DESCRIPCIΓ“N DEL PROGRAMA:                                           β˜„
β˜„      Arquitectura de software que ejemplifica el uso del Joystick.         β˜„
β˜„      Voltaje de operaciΓ³n del joystick: 5V.                                β˜„
β˜„                                                                            β˜„
β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„
β˜„                                                                            β˜„
β˜„      ☘ NOTAS:                                                              β˜„
β˜„                                                                            β˜„
β˜„                                                                            β˜„
β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„*/

#define VERT_PIN A0
#define HORZ_PIN A1
#define SEL_PIN  2

#define VALOR_INICIAL 512
#define VALOR_TOPE 1023
#define PWM_MIN 0
#define PWM_MAX 255

#define LED_ARRIBA 10
#define LED_ABAJO 5
#define LED_DERECHA 3
#define LED_IZQUIERDA 9
#define LED_PRESIONAR 4

#define INCREMENTO( a ) a > VALOR_INICIAL ? map ( a, VALOR_INICIAL, VALOR_TOPE, PWM_MIN, PWM_MAX ) : 0
#define DECREMENTO( a ) a < VALOR_INICIAL ? map ( a, VALOR_INICIAL, VALOR_TOPE, PWM_MAX, PWM_MIN ) : 0

void setup ( void ) {

  Serial.begin(115200);
  pinMode(VERT_PIN, INPUT);
  pinMode(HORZ_PIN, INPUT);
  pinMode(SEL_PIN, INPUT_PULLUP); 
  pinMode(LED_ARRIBA, OUTPUT);
  pinMode(LED_ABAJO, OUTPUT);
  pinMode(LED_IZQUIERDA, OUTPUT);
  pinMode(LED_DERECHA, OUTPUT);
  pinMode(LED_PRESIONAR, OUTPUT);

}

void loop ( void ) {

  analogWrite ( LED_ARRIBA, INCREMENTO ( analogRead ( VERT_PIN ) ) );
  analogWrite ( LED_IZQUIERDA, INCREMENTO ( analogRead ( HORZ_PIN ) ) );
  analogWrite ( LED_ABAJO, DECREMENTO ( analogRead ( VERT_PIN ) ) );
  analogWrite ( LED_DERECHA, DECREMENTO ( analogRead ( HORZ_PIN ) ) );
  digitalWrite( LED_PRESIONAR, digitalRead(SEL_PIN) ? LOW:HIGH );
 
   
  int vert = analogRead(VERT_PIN);
  int horz = analogRead(HORZ_PIN);

  Serial.print("Eje Y: ");
  Serial.println(vert);
  Serial.print("Eje X: ");
  Serial.println(horz);
  Serial.print("BotΓ³n: ");
  Serial.println(digitalRead(SEL_PIN));
  delay(150);
 
}
$abcdeabcde151015202530354045505560fghijfghij