Algunas partes de este sitio web aún no están disponibles en su idioma. Estamos trabajando para solucionar esto y nos disculpamos por cualquier inconveniente.
Tutorial ESP32 26/55 - Usando Joystick con Arduino Tomando Acción | Kit IoT ESP32 de SunFounder
En este tutorial, aprenderemos cómo interfazar un joystick XY con el microcontrolador ESP32 de SunFounder, lo que nos permitirá detectar su posición y tomar medidas en función de su entrada. También integraremos un zumbador que se activa cuando el joystick se mueve a una posición específica. Esta combinación nos permitirá crear proyectos interactivos que respondan a la entrada del usuario en tiempo real.
ESP32-26-xy-joystick-principal
El joystick XY proporciona dos salidas analógicas correspondientes a las posiciones X e Y y un interruptor que se puede presionar para activar una acción. Al leer los valores del joystick, podemos controlar varios elementos en nuestro proyecto, como activar un zumbador o mostrar valores en la pantalla. Para comprender completamente el proceso, asegúrate de ver el video para obtener información adicional (en el video a las 00:00).
Hardware Explicado
Los componentes principales de este proyecto incluyen el microcontrolador ESP32, el joystick XY y un zumbador. El ESP32 es una placa versátil que admite Wi-Fi y Bluetooth, lo que la hace ideal para proyectos de IoT. El joystick XY consta de dos resistencias variables para los ejes X e Y, y un interruptor de botón para entrada adicional.
El joystick emite señales analógicas correspondientes a su posición, las cuales son leídas por los pines analógicos del ESP32. El botón pulsador proporciona una señal digital cuando se presiona. El zumbador está conectado a un pin de salida digital en el ESP32, lo que permite activarlo o desactivarlo según la posición del joystick.
Detalles de la hoja de datos
Fabricante
SunFounder
Número de parte
Módulo de Joystick XY
Voltaje de operación
3.3 V - 5 V
Valor del resistor
10 kΩ (cada eje)
Corriente máxima
20 mA
Tipo de Interruptor
Botón pulsador momentáneo
Dimensiones
Aproximadamente 50 mm x 50 mm
Asegúrate de que el joystick esté alimentado con 3.3 V para la compatibilidad con el ESP32.
Utiliza resistencias de pull-up para el interruptor para evitar entradas flotantes.
Conecta las salidas analógicas a los pines ADC del ESP32 (34 para X, 35 para Y).
Utiliza un mecanismo de debounce para el interruptor para evitar activaciones falsas.
Supervise los niveles de voltaje para asegurarse de que permanezcan dentro de los límites de operación seguros.
Instrucciones de cableado
ESP32-26-xy-joystick-wiring
Para conectar el joystick al ESP32, comienza conectando el pin de tierra del joystick a un pin de tierra en el ESP32. A continuación, conecta el pin VCC del joystick al pin de 3.3 V en el ESP32. El joystick tiene dos pines de salida analógica: conecta la salida del eje X (etiquetada comoVRX) para fijar34en el ESP32 y la salida del eje Y (etiquetada comoVRY) para fijar35.
Para la salida del interruptor, conecta el pin del interruptor al pin33en el ESP32. Este pin leerá la pulsación del botón como una entrada digital. Asegúrate de que las conexiones estén seguras para evitar problemas intermitentes. Si tu cableado difiere del video (en el video a las 02:30), adáptalo en consecuencia mientras sigues los mismos principios para las conexiones analógicas y digitales.
Ejemplos de código y guía paso a paso
En el código, comenzamos definiendo constantes para los pines del joystick. Los identificadoresxAxis,yAxis, ybtnestán configurados para34,35, y33, respectivamente. Esto hace que sea fácil hacer referencia a estos pines a lo largo del programa.
#define xAxis 34
#define yAxis 35
#define btn 33
En elsetup()en la función, inicializamos la comunicación serial y configuramos el modo del pin del botón como entrada. Esto prepara el ESP32 para leer datos del joystick y enviarlos al monitor serial.
Dentro delloop()leemos los valores analógicos para los ejes X e Y del joystick usandoanalogRead()y almacenarlos enxValueyyValueEl estado del botón se lee utilizandodigitalRead()y almacenado enbtnValueFinalmente, imprimimos estos valores en el monitor serial.
void loop() {
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
int btnValue = digitalRead(btn);
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
Este bucle actualiza continuamente los valores, proporcionando retroalimentación en tiempo real sobre el movimiento del joystick y las pulsaciones de los botones. Para el código completo, consulte el código completo cargado debajo del artículo.
Demostración / Qué Esperar
Cuando la configuración esté completa y el código esté cargado, el monitor serial deberá mostrar los valores de X y Y junto con el estado del botón. A medida que mueves el joystick, los valores cambiarán en consecuencia, reflejando su posición. Presionar el botón alternará su estado entre alto y bajo.
Los errores comunes incluyen cableado incorrecto, lo que puede llevar a entradas flotantes o a la falta de respuesta del joystick. Asegúrate de que se utilizan los pines correctos y de que se implementan las resistencias pull-up para el interruptor. Mira el video para demostraciones prácticas de estos comportamientos (en el video a las 13:00).
Marcas de tiempo en video
00:00 Inicio
1:47 Introducción al Joystick XY
7:32 Midiendo los valores del Joystick
8:40 Explicación del cableado
11:06 Código Arduino para Joystick con ESP32 explicado
14:43 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE
16:24 Demostración del uso simple del Joystick
19:20 Detectando la posición del código del joystick con zumbador
21:16 Demostración de detección de posición
Imágenes
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick