• En este espacio, encontrarás una amplia gama de contenido relacionado con los campos de la ingeniería electrónica, telecomunicaciones, programación y temas afines.
  • Si eres un estudiante, encontrarás una gran cantidad de recursos educativos para fortalecer tus conocimientos y habilidades.
  • Sigueme en mi redes sociales. ¡Únete a nuestra comunidad de entusiastas de la ingeniería y la tecnología! Estamos emocionados de compartir nuestro conocimiento y experiencia contigo..
Mostrando entradas con la etiqueta NodeMcu ESP8266. Mostrar todas las entradas
Mostrando entradas con la etiqueta NodeMcu ESP8266. Mostrar todas las entradas

martes, 23 de julio de 2024

¿Cómo obtener una señal de corriente de 4-20mA de un ESP32?

Supongamos que tienes un sistema de control de velocidad de un motor hidráulico. La señal de control de 4-20 mA, generada por un controlador, se envía a la válvula proporcional. Si el controlador envía una señal de 4 mA, la válvula está casi cerrada, permitiendo solo un flujo mínimo de fluido y, por lo tanto, una velocidad baja del motor. Si la señal es de 20 mA, la válvula está completamente abierta, permitiendo el flujo máximo y una velocidad alta del motor. Las señales intermedias ajustan la posición de la válvula proporcionalmente, permitiendo un control preciso de la velocidad del motor. Existen muchos dispositivos que realizan esta función, pero su costo es alto. Aquí te voy a mostrar un circuito muy sencillo que permitirá controlar este tipo de válvulas con dispositivos de bajo costo.


El circuito de la figura constituye un bucle de corriente que permite controlar desde un  ESP32 la apertura de una válvula proporcional, en especifico desde el pin del convertidor digital a análogo (DAC), el cual se encuentra en el pin 9 (GPIO25) o el pin 10 (GPIO26), como se muestra en el diagrama de pines del ESP32. Como la salida máxima de este dispositivo son 3V, se puede controlar este voltaje desde los 0V que corresponderían a 4mA hasta los 3V que correspondería a 20 mA.


El transistor Q2 controla la corriente de origen en el terminal I-OUT. Este a su vez está controlado por el transistor Q1, que a su vez está controlada por la amplificador operacional . Este amplificador operacional ajusta la corriente a través de Q2 a lo que sea necesario para que el voltaje V0 aparezca a través de R3, la resistencia R1 retroalimenta los valores de salida, que se miden en el terminal I-IN, para mantener la corriente a un valor fijo cuando se conecte la carga, eso regula la actual a R3.

Las diversas resistencias alrededor de Q1 y Q2 son para proporcionar un rango de ajuste de voltaje razonablemente lineal e independiente de las ganancias de Q1 y Q1. C1 añade estabilidad.

Entre los terminales I-OUT e I-IN, estarían conectados los terminales del motor que controla la apertura de la válvula. En la siguiente figura se modela la carga con una resistencia, con una resistencia de 800 Ohmios, debido a que la norma internacional ISA-50 especifica 3 clases L, H y U con U siendo el más genérico y especifica que el bucle de corriente necesita ser capaz de obtener 20mA en hasta 800 ohmios con tensión de alimentación de hasta 32,7V. Otros estándares (NAMUR NE 43) tendrán valores ligeramente diferentes. En la simulación la circuitería análoga (transistores y opam) se alimenta con una fuente análoga de 24V, que es la más comúnmente usada para alimentar el motor de la válvula proporcional.

Este circuito también se puede utilizar con tarjetas Arduino, como se muestra en la siguiente figura, las cuales no tienen convertidor análogo a digital, pero utilizando las salidas PWM y un filtro pasabajos RC se puede obtener un voltaje análogo que depende del ciclo ON de la señal PWM. El valor de R y C del filtro depende de la frecuencia de la señal PWM generada, generalmente con una frecuencia de corte mínimo de 50 veces por debajo de la frecuencia configurada en el PWM. Si se usa un Arduino tener en cuenta que el voltaje del PWM debe tener un máximo de 3V, debido a que en el caso de estos dispositivos el voltaje pude ser máximo de 5V.



 

miércoles, 5 de junio de 2024

GPIOViewer Librería Arduino para ver en tiempo real los Pines GPIO en placas ESP32

GPIOViewer es una innovadora librería Arduino de código abierto diseñada para monitorizar en tiempo real los pines GPIO de las placas ESP32 a través de un navegador web. Proporciona una representación dinámica y gráfica del estado de los pines GPIO de la placa, mejorando la resolución de problemas y el desarrollo del proyecto.


 Principales características de la biblioteca:

➡️ Muestra el estado en tiempo real de las señales digitales, analógicas y PWM en los pines GPIO de ESP32.
➡️ Realiza un seguimiento del estado real del hardware, diferenciándolo de las herramientas de simulación como el simulador Wokwi ESP32.
➡️ Utiliza las bibliotecas ESPAsyncWebServer y AsyncTCP, esta última disponible a través del administrador de bibliotecas del IDE de Arduino.
➡️ Añade sólo unos 50 KB a los proyectos.
➡️ Se recomienda su uso con conexiones Wi-Fi fuertes para una latencia más baja y un muestreo de datos más rápido.
➡️ Soporta una variedad de placas ESP32, incluyendo ESP32-VROOM-32, Olimex ESP32-EVB, y más.

Esta capacidad de monitorización GPIO en tiempo real no sólo es una gran ayuda para la depuración, sino que también mejora la experiencia general del usuario en el desarrollo y prueba de proyectos basados en ESP32.

Instalación de la librería en el IDE de Arduino

En el library manager de la IDE de  Arduino se ingresa en el cuadro de búsqueda el termino gpioviewer, y se procede a instalar. Esto se muestra en la siguiente figura.


Luego de la instalación se deben agregar cuatro líneas de código a tu programa. La línea #1 corresponde al comando que permite incluir la librería. La línea #2 corresponde a la variable global que usa la librería gpio_viewer.h. La línea #3 corresponde a la configuración de la red Wifi (nombre de red y contraseña) a la que se conectara la tarjeta ESP32, para enviar el estado de los diferentes puertos a la aplicación web. La última línea, la #4, corresponde al llamado para obtener la dirección URL asignada a la tarjeta luego de conectarse a la red Wifi.

Luego de cargar el programa en la tarjeta, en el monitor serial muestra el mensaje que la tarjeta está conectada a la red wifi y también muestra la dirección para copiar y pegar en el navegador web.

Placas ESP32 compatibles

Esta es la lista de dispositivos compatible, aunque si tu placa de desarrollo no se encuentra en la lista, se puede utilizar una imagen genérica que también muestra toda la actividad de los GPIO

➡️AZ Delivery NodeMCU ESP32

➡️ESP32 VROOM 32D (38 pins)

➡️ESP32 VROOM 32D (30 pins)

➡️ESP32 D1 R32

➡️ESP32-CAM

➡️ESP32-C3 Super Mini

➡️ESP32 C3 Wroom-02

➡️ESP32-C6 DevKitM

➡️ESP32 Wroom-32UE

➡️ESP32 EVB

➡️ESP32 S3 Wroom-1

➡️Esp32 S2 Mini V1.0.0

➡️ESP32 POE

➡️ESP32 C3 Mini

➡️ESP32 C3 Zero

➡️ESP32 Pico Kit v4.1

➡️Leaf S3

➡️Lilygo T-SIM A7670x

➡️Lilygo T7 Mini32 v1.5

➡️Lolin D32

➡️Freenove ESP32-S3

➡️ Freenove ESP32-Wroom

➡️Nano ESP32

➡️Sailor Hat ESP32

➡️SparkleIoT ESP32-C3F

➡️StickLite-V3-ESP32S3

➡️T-Display S3 AMOLED

➡️TinyPICO Nano

➡️TinyPico V3

➡️TTGO Display V1.1

➡️Wemos Lolin32 Lite V1

➡️Wemos Lolin S3 Mini

➡️Wemos D1 Mini ESP32

➡️Wemos D1 Mini ESP8266

➡️WT32-S1-ETH01

➡️NodeMcu ESP8266

➡️XIAO ESP32 C3

➡️XIAO ESP32 S3

Más información de la librería: https://github.com/thelastoutpostworkshop/gpio_viewer