# Conversión de la salida PID en Arduino para la señal del variador

**URL:** <https://forum.arduino.cc/t/conversion-de-la-salida-pid-en-arduino-para-la-senal-del-variador/1275446>\
**Category:** Software\
**Created:** [June 25, 2024, 3:14pm UTC](https://forum.arduino.cc/t/conversion-de-la-salida-pid-en-arduino-para-la-senal-del-variador/1275446 "2024-06-25T15:14:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![usuarioarduinoiniciacion](https://avatars.discourse-cdn.com/v4/letter/u/5fc32e/32.png) [@usuarioarduinoiniciacion](https://forum.arduino.cc/u/usuarioarduinoiniciacion)\
**Post date:** [June 25, 2024, 3:14pm UTC](https://forum.arduino.cc/t/conversion-de-la-salida-pid-en-arduino-para-la-senal-del-variador/1275446/1 "2024-06-25T15:14:00Z")

</div>

Buenas tardes,  
Necesito implementar un controlador PID en Arduino (placa Arduino Mega 2560) para controlar la presión dentro de una cámara mediante un ventilador regulado por un variador de frecuencia. Estoy teniendo problemas al convertir la salida del PID a un valor adecuado para la señal del variador de frecuencia (rango 0-255). El error es la diferencia entre la presión deseada (que puede variar) y la existente, que leo por medio de un sensor y se va actualizando en el tiempo. ¿Debe hacerse un mapeo para convertir la salida del PID (no sé entre que valores oscilará) a un valor entre 0 y 255 o hay alguna manera más profesional?  
Gracias.

---

<div class="post-metadata">

**Author:** ![MaximoEsfuerzo](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/maximoesfuerzo/32/923798_2.png) [@MaximoEsfuerzo](https://forum.arduino.cc/u/MaximoEsfuerzo)\
**Post date:** [June 25, 2024, 8:33pm UTC](https://forum.arduino.cc/t/conversion-de-la-salida-pid-en-arduino-para-la-senal-del-variador/1275446/2 "2024-06-25T20:33:08Z")

</div>

Depende...  
Si la señal tiene una variación lineal (o casi) puedes usar la función `map()`.  
Pero si no es lineal vas a tener que hacer tu propia ecuación de conversión.  
En ese caso podría ser que encuentres algo útil en la hoja de datos del sensor y eso te facilite la vida.

---

<div class="post-metadata">

**Author:** ![DaveX](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/davex/32/751443_2.png) [@DaveX](https://forum.arduino.cc/u/DaveX)\
**Post date:** [June 26, 2024, 2:10am UTC](https://forum.arduino.cc/t/conversion-de-la-salida-pid-en-arduino-para-la-senal-del-variador/1275446/3 "2024-06-26T02:10:24Z")

</div>

The [Arduino PID Library](https://github.com/br3ttb/Arduino-PID-Library) implements a PID controller, and the Kp,Ki,Kd parameters convert between units of error to units of output. You don't need to do a `map()` of error\_pressure into a PID input, since the PID parameters do a conversion themselves. If you want 100Pascal o0f error to result in 255 units of VFD output, the parameter kP=255/1000=0.255 would produce that behavior, and taper off as the error approaches zero. The Ki parameter converts the `InputError*sec` accumulation into output units to correct the error towards zero.

---

<div class="post-metadata">

**Author:** ![usuarioarduinoiniciacion](https://avatars.discourse-cdn.com/v4/letter/u/5fc32e/32.png) [@usuarioarduinoiniciacion](https://forum.arduino.cc/u/usuarioarduinoiniciacion)\
**Post date:** [June 26, 2024, 7:03am UTC](https://forum.arduino.cc/t/conversion-de-la-salida-pid-en-arduino-para-la-senal-del-variador/1275446/4 "2024-06-26T07:03:27Z")

</div>

En la hoja de datos del sensor de presión he utilizado la FdT para calcular la presión medida. Y en cuanto a la señal, sí que tiene una variación lineal, ya que quiero que la presión medida vaya subiendo o bajando hasta la presión deseada establecida, pero al no saber los valores máximos y mínimos entre los que oscilará la salida del PID, no sé si la función map() es lo más adecuado. ¡Gracias por tu respuesta!

---

<div class="post-metadata">

**Author:** ![usuarioarduinoiniciacion](https://avatars.discourse-cdn.com/v4/letter/u/5fc32e/32.png) [@usuarioarduinoiniciacion](https://forum.arduino.cc/u/usuarioarduinoiniciacion)\
**Post date:** [June 26, 2024, 7:04am UTC](https://forum.arduino.cc/t/conversion-de-la-salida-pid-en-arduino-para-la-senal-del-variador/1275446/5 "2024-06-26T07:04:24Z")

</div>

I need the map() to convert the PID output to a PWM value between 0 and 255 (for the variable frequency drive signal). Thanks for your answer!

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [December 23, 2024, 7:05am UTC](https://forum.arduino.cc/t/conversion-de-la-salida-pid-en-arduino-para-la-senal-del-variador/1275446/6 "2024-12-23T07:05:10Z")

</div>

Closed on December 23, 2024, 7:05am UTC

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
