- Material requerido
- Diagrama de circuito
- Módulo de joystick
- Código y explicación
- Control de LED usando Joystick con Arduino
Lo primero que nos viene a la mente al escuchar la palabra Joystick es el controlador del juego. Sí, es exactamente lo mismo y se puede utilizar para juegos. Además de los juegos, tiene muchas otras aplicaciones en la electrónica de bricolaje. Este joystick no es más que una combinación de dos potenciómetros para el plano X e Y respectivamente. Lee el voltaje a través del potenciómetro y le da un valor analógico al Arduino, y el valor analógico cambia a medida que movemos el eje del joystick (que es simplemente el puntero del potenciómetro).
En este circuito, estamos interconectando Joystick con Arduino simplemente controlando cuatro LED según el movimiento del Joystick. Hemos colocado 4 LED de tal manera que representen la dirección del movimiento del eje del joystick. Este joystick también tiene un botón pulsador que se puede utilizar para otros propósitos o se puede dejar inactivo. Un solo LED también está conectado al interruptor del joystick, ya que el botón del joystick presionado, ese solo LED se encenderá.
Material requerido
- Arduino UNO
- Módulo de joystick
- LEDs-5
- Resistencia: 100ohm-3
- Cables de conexión
- Tablero de circuitos
Diagrama de circuito
Módulo de joystick
Los joysticks están disponibles en diferentes formas y tamaños. En la figura siguiente se muestra un módulo de joystick típico. Este módulo de joystick generalmente proporciona salidas analógicas y los voltajes de salida proporcionados por este módulo siguen cambiando según la dirección en la que lo movemos. Y podemos obtener la dirección del movimiento interpretando estos cambios de voltaje usando algún microcontrolador. Anteriormente, interconectamos Joystick con AVR y Raspberry Pi.
Este módulo de joystick tiene dos ejes como puede ver. Son el eje X y el eje Y. Cada eje de JOYSTICK está montado en un potenciómetro o potenciómetro. Los puntos medios de estas ollas se eliminan como Rx y Ry. Entonces Rx y Ry son puntos variables para estos botes. Cuando el Joystick está en espera, Rx y Ry actúan como divisores de voltaje.
Cuando el joystick se mueve a lo largo del eje horizontal, el voltaje en el pin Rx cambia. De manera similar, cuando se mueve a lo largo del eje vertical, el voltaje en el pin Ry cambia. Entonces tenemos cuatro direcciones de Joystick en dos salidas ADC. Cuando se mueve la palanca, el voltaje en cada pin sube o baja dependiendo de la dirección.
Aquí, estamos conectando este módulo Joystick con el Arduino UNO que viene con un mecanismo ADC (convertidor analógico a digital) incorporado como se muestra en el video al final. Obtenga más información sobre el uso de ADC de Arduino aquí.
Código y explicación
El código completo de Arduino se menciona al final.
En el siguiente código, hemos definido los ejes X e Y del módulo Joystick para el pin analógico A0 y A1 respectivamente.
#define joyX A0 #define joyY A1
Ahora, en el siguiente código, estamos inicializando el PIN 2 de Arduino para el interruptor (botón pulsador) del módulo Joystick y el valor de buttonstate y buttonstate1 será 0 al principio.
botón int = 2; int buttonState = 0; int buttonState1 = 0;
En el siguiente código, estamos configurando la velocidad en baudios en 9600 y definimos el Pin 7 como un pin de salida y el pin del botón como un Pin de entrada. Inicialmente, la clavija del botón permanecerá alta hasta que se presione el interruptor.
configuración vacía () {pinMode (7, SALIDA); pinMode (botón, ENTRADA); digitalWrite (botón, ALTO); Serial.begin (9600); }
Aquí, en este código, estamos leyendo los valores del pin analógico A0 y A1 e imprimiendo en serie.
int xValue = analogRead (joyX); int yValue = analogRead (joyY); Serial.print (xValue); Serial.print ("\ t"); Serial.println (yValue);
Las condiciones para encender y apagar el LED según el movimiento del eje del joystick se definen en el código siguiente. Aquí solo estamos tomando valores analógicos de voltaje en el pin A0 y A1 de Arduino. Estos valores analógicos cambiarán a medida que movamos el joystick y el LED se iluminará según el movimiento del joystick.
Esta condición es para el movimiento del eje de la palanca de mando en la dirección del eje -Y
if (xValue> = 0 && yValue <= 10) {digitalWrite (10, HIGH); } else {digitalWrite (10, LOW);}
Esta condición es para el movimiento del eje de la palanca de mando en la dirección del eje -X
if (xValue <= 10 && yValue> = 500) {digitalWrite (11, HIGH); } else {digitalWrite (11, LOW);}
Esta condición es para el movimiento del eje del joystick en la dirección del eje + X
if (xValue> = 1020 && yValue> = 500) {digitalWrite (9, HIGH); } else {digitalWrite (9, LOW);}
Esta condición es para el movimiento del eje del joystick en la dirección del eje + Y
if (xValue> = 500 && yValue> = 1020) {digitalWrite (8, HIGH); } else {digitalWrite (8, LOW);}
Cuando movemos el eje del joystick en diagonal, entonces llega una posición en la que el valor analógico de X e Y será 1023 y 1023 respectivamente, el LED del Pin 9 y del Pin 8 se iluminará. Porque satisface la condición del LED. Entonces, para eliminar esa falta de coincidencia, hemos dado una condición de que si el valor de (X, Y) es (1023, 1023), ambos LED permanecen apagados.
if (xValue> = 1020 && yValue> = 1020) {digitalWrite (9, LOW); digitalWrite (8, BAJO); }
La siguiente condición se utiliza para operar el LED conectado al interruptor de botón. Al presionar el interruptor del Joystick, el LED se encenderá y se bloqueará hasta que se suelte el botón. Es opcional usar el interruptor de botón en el módulo Joystick.
if (buttonState == LOW) {Serial.println ("Switch = High"); escritura digital (7, ALTA); } else {digitalWrite (7, LOW);}
Control de LED usando Joystick con Arduino
Después de cargar el código al Arduino y conectar los componentes según el diagrama del circuito, ahora podemos controlar los LED con Joystick. Podemos encender los cuatro LED en cada dirección según el movimiento del eje del Joystick. El joystick tiene dos potenciómetros en su interior, uno para el movimiento del eje X y otro para el movimiento del eje Y. Cada potenciómetro recibe 5v del Arduino. Entonces, a medida que movemos el joystick, el valor de voltaje cambiará y el valor analógico en los pines analógicos A0 y A1 también cambiará.
Entonces, desde el Arduino, estamos leyendo el valor analógico para los ejes X e Y y encendimos los LED según el movimiento del eje del Joystick. Se utiliza un interruptor de botón en el módulo de la palanca de mando para controlar el LED único en el circuito, como se muestra en el video a continuación.