🛠 Control de GPIO y Pantalla LCD en ToughC5
Objetivos
Este tutorial tiene como objetivo dominar la interacción física con el kit M5Stack ToughC5. Aprenderás a configurar los pines GPIO para leer entradas digitales y controlar la pantalla LCD táctil capacitiva ILI9342C de 2,0 pulgadas. El objetivo es crear una interfaz básica que muestre el estado de un sensor o botón, aprovechando la potencia del procesador RISC-V y la memoria PSRAM.
Hardware Necesario
- Kit M5Stack ToughC5 (ESP32-C5HR8)
- Cable USB Tipo-C para alimentación y programación
- IDE de Arduino con soporte M5Stack instalado
- Un botón pulsador (o usar la pantalla táctil como entrada)
- Resistencias de pull-up/down si es necesario (generalmente internas)
Pasos
- Configuración del Entorno: En el IDE de Arduino, selecciona la placa "M5Stack ToughC5". Asegúrate de que el puerto serie sea detectado. El ToughC5 usa una arquitectura RISC-V; verifica que el compilador esté configurado para este objetivo.
- Inicialización de la Pantalla: Incluye la librería
M5GFX.h. Ensetup(), llama aM5.Display.begin(). La pantalla IPS de 320x240 píxeles requiere una inicialización específica para manejar el brillo (853 nits) y la orientación. UsaM5.Display.setRotation(1)para modo horizontal adecuado para la carcasa resistente. - Definición de Pines GPIO: Identifica los conectores HY2.0-4P. Para este tutorial, usaremos un pin GPIO accesible a través de estos conectores para simular una entrada externa. Define el pin como
INPUT_PULLUPpara evitar estados flotantes. - Bucle Principal: En
loop(), lee el estado del pin condigitalRead(). Si el estado cambia, actualiza la pantalla. UsaM5.Display.fillRect()para dibujar rectángulos de color que indiquen el estado (verde para activo, rojo para inactivo). - Optimización Táctil: Si usas la pantalla táctil capacitiva, integra
M5.Touchpara detectar presiones. Compara las coordenadas (x,y) con las zonas dibujadas para interactuar con la interfaz sin botones físicos externos.
Verificación
Alimenta el ToughC5 vía USB. La pantalla debe encenderse con un fondo o color sólido. Al simular una entrada (o pulsación táctil), la pantalla debe cambiar instantáneamente de color o texto. Verifica que la respuesta sea fluida gracias a los 8 MB de PSRAM, que permiten almacenar búferes gráficos sin ralentizar el procesador.
Para Ir Más Allá
Explora la integración del RTC RX8130CE para mostrar la hora en tiempo real en la pantalla. También puedes combinar datos GPIO con conectividad Wi-Fi 6 para enviar estados de entrada a un servidor remoto, convirtiendo el ToughC5 en un nodo IoT completo con interfaz local.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
toughc5_gpio_button_buzzer.inoC++ (Arduino)toughc5_wifi6_scanner.inoC++ (Arduino)toughc5_rtc_battery_log.inoC++ (Arduino)toughc5_ili9342c_touch_ui.inoC++ (Arduino)toughc5_rs485_modbus_master.inoC++ (Arduino)toughc5-rs485-modbus-master.inoArduino C++