/*β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„
β˜„                                                                            β˜„
β˜„      ☘ 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:      esli_castellanos@ucol.mx.                                β˜„
β˜„      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
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
r4:1
r4:2
r1:1
r1:2
r2:1
r2:2
joystick2:VCC
joystick2:VERT
joystick2:HORZ
joystick2:SEL
joystick2:GND
r5:1
r5:2
led5:A
led5:C
r3:1
r3:2