🛠 Controlar GPIO y sensores con UEXT-CH390
Objetivos
Este tutorial tiene como objetivo comprender cómo interactuar con periféricos externos (LEDs, botones, sensores) conectados a través de la interfaz UEXT, mientras se utiliza la funcionalidad Ethernet del módulo CH390. Configuraremos un GPIO para encender un LED y leer el estado de un botón, ilustrando la coexistencia entre recursos locales (GPIO) y de red (SPI/Ethernet). El objetivo es mostrar que el módulo CH390, aunque es un controlador de red, se integra en un sistema donde los microcontroladores gestionan las E/S locales de forma independiente del bus SPI dedicado a la comunicación de red.
Material Necesario
- Placa de desarrollo compatible (ej. Raspberry Pi Pico o ESP32)
- Módulo Olimex UEXT-CH390
- Cable UEXT (10 pines)
- Protoboard y cables de conexión
- Un LED y una resistencia (220-330 Ω)
- Un botón pulsador
- Fuente de alimentación USB
Pasos
- Conexión de Hardware: Inserte el módulo UEXT-CH390 en el conector UEXT de su placa anfitriona. Asegúrese de que la alimentación sea de 3.3V. El módulo utiliza los pines SPI para la comunicación de red, dejando otros GPIOs libres para sus proyectos.
- Configuración de Software: En su entorno (Arduino IDE o MicroPython), inicialice primero la biblioteca Ethernet para el CH390. Luego, configure los GPIOs locales. Por ejemplo, defina el pin GPIO 15 como salida para el LED y GPIO 16 como entrada para el botón.
- Bucle Principal: En el
loop(), verifique el estado del botón. Si el botón está presionado, establezca el LED enHIGH. De lo contrario, establezcaLOW. Esta lógica local no depende de la conexión de red. - Integración de Red (Opcional): Para demostrar la integración, agregue una variable que cuente las pulsaciones del botón. Muestre este contador en una página web local alojada por el CH390 mediante una simple solicitud HTTP, mostrando que los datos locales pueden exponerse en la red.
Verificación
Observe el LED: debe encenderse solo cuando se presiona el botón. Si implementó la parte de red, abra un navegador web y navegue a la dirección IP asignada por DHCP al módulo CH390. Debería ver la página web actualizándose con el número de pulsaciones. Si el LED no se enciende, verifique las soldaduras y la polaridad del LED. Si la página web no carga, verifique que el cable Ethernet esté correctamente conectado y que el DHCP haya tenido éxito.
Para Ir Más Allá
Explore el uso de entradas analógicas (ADC) para leer un potenciómetro conectado a través de UEXT, y envíe este valor por la red. También puede explorar las interrupciones GPIO para reaccionar más rápidamente a los cambios de estado de los botones sin sondear continuamente el pin, optimizando así los recursos del microcontrolador.
Otros tutoriales para esta placa
- Primer enlace y puesta en marcha del UEXT-CH390
- Caso de uso completo: Conectividad Ethernet para Raspberry Pi Pico
- Primera conexión y puesta en marcha del UEXT-CH390
- Integración de GPIO con Ethernet UEXT-CH390
- Conecta un RP2040 a la red con UEXT-CH390 y ESPHome
- Inicio avanzado: UEXT-CH390 y Raspberry Pi Pico
Ejemplos de código para esta placa
esp32-ch390-lwip-station.inoC++rp2040-pico-ch390-micropython.pyPythonesp32-ch390-udp-sensor-gateway.inoC++esp32-ch390-web-server-local.inoC++rp2040-ch390-iot-home-assistant.inoYAMLrp2040-lwip-ethernet-ping-6.inoC/C++ (Raspberry Pi Pico SDK)