Ir al contenido

ESP32 PLC: salida PWM

ESP32
20 de marzo de 2024 por
ESP32 PLC: salida PWM
Boot & Work Corp. S.L, Ricard Franch Argullol

Introducción

Los equipos de la familia ESP32 PLC tienen un número definido de salidas digitales. Todas ellas se pueden programar como salidas PWM si hace falta. Como sabemos, la PWM (modulación por ancho de pulso) es un tipo de señal de tensión que sirve para transmitir información o para modificar la potencia que recibe cada carga. En este artículo verás cómo configurar salidas PWM.

Requisitos

ESP32 PLC 


¿Qué es la PWM y cómo funciona?

PWM son las siglas de Pulse Width Modulation (modulación por ancho de pulso), una técnica que sirve para controlar la potencia que recibe un dispositivo. Se usa habitualmente en sistemas electrónicos para controlar la velocidad de motores, el brillo de LED y la tensión que se suministra a distintos componentes.

El principio básico de la PWM consiste en conectar y desconectar la alimentación rápidamente a una frecuencia determinada, variando la duración de los periodos en "on" y en "off". Ajustando el ciclo de trabajo (el porcentaje de tiempo que la alimentación está en "on" respecto al tiempo total del ciclo) se controla la potencia media que recibe el dispositivo.


Salidas PWM en los PLC basados en ESP32

Las salidas de los PLC basados en ESP32 no son pines directos del ESP32, sino que se usan chips de expansión I2C. Según la versión del PLC, hay hasta 2 chips de expansión, con direcciones I2C 0x40 y 0x41.

Cada pin de salida está asociado a un pin del chip de expansión. El ciclo de trabajo de cada pin es independiente del resto y configurable. Cada salida tiene su propia resolución de 12 bits (4096 pasos), que se utiliza para fijar el ciclo de trabajo, por ejemplo:

  • Ciclo de trabajo del 0%: 0
  • Ciclo de trabajo del 50%: 2048
  • Ciclo de trabajo del 100%: 4095

La frecuencia, en cambio, solo se puede configurar por chip, es decir, todas las salidas de un mismo chip trabajan a la misma frecuencia. Por eso hay que tener cuidado al cambiar la frecuencia de un chip, ya que afecta a todas sus salidas. La frecuencia puede tomar un valor entre 24 Hz y 1526 Hz.

Las tablas siguientes muestran qué pin interno y qué dirección corresponde a cada una de las salidas del PLC:

Salidas analógico-digitales:

Salidas analógico-digitales

Salidas analógico-digitales-relé:

Salidas analógico-digitales-relé

Ejemplo de código

Para usar las salidas de los PLC hay que instalar el paquete de placas "industrialshields-esp32". Si todavía no lo tienes, puedes instalarlo siguiendo este tutorial.

No hace falta incluir ninguna librería para usar las salidas, pero sí configurar los pines como salidas, lo que se hace así:

pinMode(Q0_0, OUTPUT);

El ciclo de trabajo se configura con la función "analogWrite()", que recibe como argumentos el pin que queremos configurar y el ciclo de trabajo, un entero que debe estar entre 0 y 4095:

analogWrite(Q0_0  , 3000);

Por último, para configurar la frecuencia de salida de cada chip se usa la función "analogWriteSetFrequency()". Recibe como argumentos la dirección de un chip I2C (por ejemplo 0x40) y un entero con la frecuencia que queremos usar (el chip admite frecuencias entre 24 Hz y 1526 Hz; las frecuencias superiores o inferiores se ajustan al límite correspondiente).

analogWriteSetFrequency(0x40, 1000);

Nota: tras cambiar la frecuencia de un chip, el estado de sus salidas se reinicia, por lo que hay que volver a fijar su ciclo de trabajo.

Your Dynamic Snippet will be displayed here... This message is displayed because you did not provided both a filter and a template to use.

Buscar en nuestro blog

ESP32 PLC: salida PWM
Boot & Work Corp. S.L, Ricard Franch Argullol 20 de marzo de 2024
Compartir esta publicación
Etiquetas

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs