Como mejorar una maquina de espresso barata (Parte 2)
08 Dec 2023Esta publicación es la continuación de otro post.
(Disclaimer: ya no tengo la maquina de espresso, por lo que este post es “lo que hubiera hecho” y por lo mismo no puedo garantizar que funcione.)
Reemplazar el termostato
Como vimos en la parte, necesitamos mejorar el control de temperatura y para eso debemos reemplazar el termostato por algo de mayor precisión. Normalmente la maquina debería tener 2 termostatos, uno para la temperatura de extracción y otra para el vapor. A nosotros solo nos interesa la primera, porque para el vapor no es tan relevante, con tal supere el punto de ebullición.
Así se ve un termostato:
Acá podemos verlo sobre el hervidor:
###Bueno y ¿con que reemplazamos el termostato?
Con un sensor de temperatura (que ya instalamos) y un relay para controlar en encendido/apagado del termo.
Acá se puede ver el diagrama de conexion de ambos elementos:
El relay se encargará de abrir y cerrar el circuito que enciende el termo y por lo tanto incrementa la temperatura, y con el sensor que instalamos en la parte 1 controlaremos la temperatura real.
Programar el controlador PID
Ahora que tenemos como encender/apagar el termo y además podemos monitorear la temperatura, solo tenemos que programar el control PID.. ¿o no? Bueno después de realizar esta conexión me di cuenta que el control PID necesita que la señal de salida (en nuestro caso sería la potencia del termo) sea variable, pero para nuestro ejemplo solo podemos prender o apagar el termo a una potencia fija.
¿Entonces que hacemos?
Para simplificar el problema implementaremos solo la P en PID, es decir solamente un control proporcional de la señal. También para simular niveles de potencia se hará un encendido y apagado intermitente, creando dos niveles: 100% y 50%. Para que se entienda mejor, acá un gráfico de ejemplo con la señal tipo “cajón” que busca ser equivalente a una potencia del 50%:
Ahora que tenemos 2 niveles de potencia en el termo, implementaremos la siguiente lógica:
- si temperatura_real es mayor a la deseada → se apagara el termo.
- si (temperatura_objetivo - temperatura_real) =< umbral_temp → se encendera el termo a un 50 % potencia.
- si (temperatura_real - temperatura_real) > umbral_temp → se encendera el termo a un 100 % potencia.
Acá está el código con la lógica implementada y además la impresión de la temperatura en el monitor serial:
Pensamientos finales
Diría que la implementación final le queda un poco grande el nombre de “control proporcional”, pero aun así es mejor que el termostato que tenía previamente. Una posible mejora es crear más niveles de potencia para mejorar la proporcionalidad y que el ajuste sea más suave. Por ultimo quiero repetir que no pude implementar esta solución (porque ya no tengo la maquina), por lo que recomiendo ir ajustando 50_THRESHOLD y ver qué valor logra una temperatura final más estable.
Cualquier consulta o comentario más abajo!