Termostato multicanal en arduino uno. Ventilador mediante Arduino, que depende de la temperatura. Componentes de un controlador PID

El diagrama esquemático de un termostato casero de cuatro canales con indicador de temperatura, construido sobre la base de Arduino UNO, LM325 y con una pantalla 1602A, le permite controlar cuatro cargas separadas.

Aquí describimos una versión mejorada del dispositivo que, además de medir e indicar la temperatura de forma pasiva, también puede controlar cuatro calentadores para mantener una temperatura determinada en cuatro lugares diferentes, donde en la primera versión solo era posible medir la temperatura.

El funcionamiento de un termómetro de cuatro canales y su programa se describe con gran detalle en el artículo anterior (L.1), por lo que aquí sólo hablaremos de cambios para implementar el funcionamiento de un termostato de cuatro canales.

Diagrama esquemático

El diagrama esquemático se muestra en la Fig. 1.

Arroz. 1. Diagrama esquemático de un termostato en Arduino UNO, LM325 con pantalla 1602A.

A diferencia del primer circuito (L.1), aquí hay cuatro interruptores de transistores cargados en los devanados del relé K1-K4, que controlan cuatro dispositivos de calefacción diferentes (H1-H4). Los comandos de control de estas teclas provienen de cuatro puertos digitales D9-D12 de la placa ARDUINO UNO.

Programa

El programa se muestra en la Tabla 1.

Tabla 1.

La primera diferencia es que se proporcionan puertos para controlar los calentadores. Estos son los puertos D9-D12, se especifican aquí:

pinMode(12, SALIDA);

pinMode(11, SALIDA);

pinMode(10, SALIDA);

pinMode(9, SALIDA);

Puedes seleccionar otros puertos digitales libres, después de conectar el indicador aún quedan D8 y D13. Pero el autor eligió estos: D9, D10, D11, D12. La segunda diferencia es que la función del comparador if se usa para controlar los calentadores. En lineas:

si (temperatura)< -15)digitalWrite(12, HIGH);

if(temp > -15)digitalWrite(12, BAJO);

si(tempi< 1)digitalWrite(11, HIGH);

if(tempi > ​​​​1)digitalWrite(11, BAJO);

si(temp2< 20)digitalWrite(10, HIGH);

if(temp2 > 20)digitalWrite(10, BAJO);

si(temp3< 10)digitalWrite(9, HIGH);

if(temp3 > 10)digitalWrite(9, BAJO);

Estas líneas indican a qué temperatura, qué nivel lógico debe estar en el puerto correspondiente. Por ejemplo, si la temperatura del primer sensor (T1) es inferior a -15°C, habrá uno lógico en el puerto D12. Cuando la temperatura del segundo sensor (T2) sea inferior a 1°C, habrá uno lógico en el puerto D11.

Cuando la temperatura del tercer sensor (TZ) sea inferior a 20°C, habrá uno lógico en el puerto D10. Cuando la temperatura del cuarto sensor (T4) sea inferior a 10°C, habrá uno lógico en el puerto D9. Por supuesto, puede configurar temperaturas completamente diferentes, cualquiera que sea necesaria para la aplicación específica de este dispositivo.

Además, ya en el dispositivo terminado, se pueden cambiar fácilmente si es necesario. Para hacer esto, conecte una computadora personal al puerto USB de la placa ARDUINO UNO y cargue un programa con otros datos sobre umbrales de temperatura. En principio, para ello se puede prever un conector USB en el cuerpo del dispositivo terminado.

Normalmente, en un termostato “típico” hay un bucle de histéresis, es decir, un circuito que crea una diferencia entre la temperatura a la que se enciende el calentador y la temperatura a la que se apaga. Esto es necesario para que el calentador no se encienda o apague con mucha frecuencia. Esto es especialmente importante si el calentador está controlado por un relé electromagnético.

Porque los contactos del relé no están diseñados para este modo de funcionamiento y pueden fallar rápidamente debido a quemaduras debido a chispas. Pero la histéresis introduce un error en el funcionamiento del termostato. Aquí se decidió no crear histéresis, sino garantizar que los contactos del relé no cambien con demasiada frecuencia, simplemente desaceleren el funcionamiento del dispositivo. Para hacer esto en la línea:

El tiempo de visualización se ha aumentado a tres segundos. Como resultado, las mediciones se repiten con un período de tres segundos y, en cualquier caso, el relé no puede conmutar más de una vez cada tres segundos.

Detalles

Cualquier relé electromagnético K1-K4 se puede utilizar con devanados de 12 V y contactos lo suficientemente potentes como para controlar calentadores específicos.

Las etapas de salida se pueden realizar utilizando otros circuitos, por ejemplo, utilizando optomistores. En este caso, los LED de los optosimitores o los llamados "relés de estado sólido" se conectan a los puertos correspondientes de la placa ARDUINO UNO a través de resistencias limitadoras de corriente.

Karavkin V. RK-08-17.

Literatura: 1. Karavkin V. - Termómetro de cuatro canales en ARDUINO UNO, RK-06-17.

La tarea principal del controlador del frigorífico es mantener la temperatura establecida en la cámara. El controlador de temperatura hará esto cambiando la energía eléctrica en el módulo Peltier.

En la lección anterior desarrollamos un regulador de potencia. La conexión entre los reguladores de potencia y temperatura se ve así.

  • El controlador de temperatura recibe la temperatura medida, la compara con la temperatura establecida y calcula el valor de potencia establecido para el controlador de potencia.
  • El regulador de potencia genera PWM correspondiente a la potencia especificada.

Construimos el regulador de potencia según la ley de regulación integral. Para estabilizar la temperatura, utilizaremos un algoritmo de control más complejo: un controlador proporcional-integral-derivado (PID).

Controlador PID.

En la lección anterior hablé en detalle sobre . Destacó sus ventajas y desventajas.

Un regulador que funciona según este principio tiene una alta precisión. Los demás criterios de calidad de la regulación (velocidad y estabilidad) no están a la altura.

Para lograr un alto rendimiento en todos los criterios, es necesario utilizar un regulador que combine diferentes leyes regulatorias.

El controlador proporcional-integral-derivado (PID) es uno de esos dispositivos. Genera una señal de salida que es la suma de tres componentes con diferentes características de transferencia. Gracias a esto, el controlador PID proporciona alta calidad regulación y permite optimizar la gestión según criterios individuales.

Lo siguiente interviene en la generación de la señal de salida del controlador PID:

  • Componente proporcional– el valor es proporcional al error de discrepancia (la diferencia entre los valores especificados y reales del parámetro controlado).
  • Componente integrador– integral de error de desajuste.
  • Componente diferenciador– derivada del error de desajuste.

La forma matemática de escribir la ley del controlador PID es:

o(t) = P + I + D = K p e(t) + K i ∫e(t)dt + K d de(t)/dt

  • o(t) – señal de salida;
  • P – componente proporcional;
  • I – componente integrante;
  • D – componente diferenciador;
  • Kp, Ki, Kd – coeficientes de vínculos proporcionales, integradores y diferenciadores;
  • e(t) – error de no coincidencia.

De forma esquemática, el controlador PID se puede representar de la siguiente manera.

El diagrama de bloques del regulador de voltaje PID U se ve así.

  • La tensión medida Ureal(t) se resta del Uset dado.
  • El error de desajuste resultante e(t) se alimenta a los enlaces proporcional, integrador y diferenciador.
  • Como resultado de la suma de los componentes se obtiene una acción de control o(t), que se aplica al elemento de control.

Al implementar un controlador PID en software, los cálculos de la señal de salida se realizan a intervalos regulares. Aquellos. El controlador es discreto en el tiempo. Por lo tanto, utilizaré más expresiones: estado de señal anterior, valor anterior, etc. Estamos hablando del estado del sistema en el punto de muestreo anterior.

Componentes de un controlador PID.

De nuevo. La señal de salida del controlador PID es la suma de tres componentes:

  • proporcional;
  • integrando;
  • diferenciando.

Componente proporcional.

P(t) = K p * e(t)

No tiene memoria, es decir. el valor de la señal de salida no depende del estado anterior del sistema. Simplemente se transmite a la salida el siguiente error, multiplicado por un factor. La señal de salida compensa la desviación del parámetro controlado. Cuanto mayor sea el error de discrepancia, mayor será la señal. Si el error es 0, la señal de salida también es 0.

El componente proporcional no es capaz de compensar completamente el error. Esto se puede ver en la fórmula. La señal de salida es Kp multiplicado por el error. Si el error de discrepancia es 0, entonces la señal de salida del controlador es 0. Y entonces no hay nada con qué compensar.

Por lo tanto, en los controladores proporcionales siempre se produce el llamado error estático. Se puede reducir aumentando el coeficiente Kp, pero esto puede conducir a una disminución de la estabilidad del sistema e incluso a autooscilaciones.

Las desventajas de los controladores proporcionales incluyen:

  • presencia de error de regulación estática;
  • baja estabilidad con coeficiente creciente.

Hay una ventaja significativa:

  • Regulación de alta velocidad. La respuesta de un controlador proporcional a un error de seguimiento está limitada únicamente por el tiempo de muestreo del sistema.

Rara vez se utilizan reguladores que operan únicamente según la ley proporcional.

La tarea principal del componente proporcional en el controlador PID es aumentar el rendimiento.

Componente integrador.

Yo(t) = K yo ∫e(t)dt

Proporcional a la integral del error de desajuste. Teniendo en cuenta la discreción temporal del controlador, podemos escribir esto:

Yo(t) = Yo(t -1) + K yo * e(t)

  • I(t-1) – valor de I en el punto de muestreo temporal anterior.

El error de desajuste se multiplica por un coeficiente y se suma al valor anterior del vínculo integrador. Aquellos. la señal de salida se acumula todo el tiempo y aumenta su impacto en el objeto con el tiempo. Por tanto, el error de desajuste se compensa completamente incluso para valores pequeños del error y del coeficiente Ki. En estado estable, la señal de salida del controlador la proporciona completamente el componente integrador.

Las desventajas del regulador integral incluyen:

  • bajo rendimiento;
  • Estabilidad mediocre.

Dignidad:

  • Capacidad de compensar completamente el error de desajuste con cualquier ganancia.

En la práctica se utilizan a menudo controladores integradores (sólo componente integrador) y controladores integradores proporcionales (componentes integradores y proporcionales).

La tarea principal del enlace integrador en el controlador PID es compensar el error estático y garantizar una alta precisión del control.

Componente diferenciador.

D(t) = K d de(t)/dt

Proporcional a la tasa de cambio del error de seguimiento. Una especie de indicador de aceleración del error de desajuste. El componente diferenciador predice desviaciones futuras del parámetro controlado y contrarresta esta desviación. Como regla general, compensa los retrasos en la influencia del regulador sobre el objeto y aumenta la estabilidad del sistema.

Teniendo en cuenta la discreción temporal del controlador, el componente diferenciador se puede calcular de la siguiente manera:

D(t) = K d * (e(t) - e(t -1))

Muestra cuánto ha cambiado el valor del error de discrepancia en una unidad de tiempo de la discreción del controlador.

No existen reguladores compuestos por un único eslabón diferenciador.

La tarea principal del enlace diferenciador en el controlador PID es aumentar la estabilidad.

Configuración del controlador PID.

La calidad del control de los controladores PID depende en gran medida de qué tan óptimamente se seleccionen los coeficientes. Los coeficientes del controlador PID se determinan en la práctica en un sistema con un objeto real mediante selección. Existen diferentes métodos de configuración. Sólo hablaré de principios generales.

La calidad de la regulación se juzga por la respuesta transitoria del regulador. Aquellos. según la gráfica de cambios en el parámetro controlado a lo largo del tiempo.

A los puntos tradicionales de la secuencia de ajuste del controlador PID, añadiría que, en primer lugar, es necesario decidir qué criterios de calidad de control son preferibles.

En la lección anterior, al diseñar un regulador de potencia, nos interesaba principalmente la precisión y la estabilidad. E incluso redujimos artificialmente el rendimiento. Algunos reguladores funcionan en condiciones de mucho ruido y la estabilidad es más importante para ellos, mientras que otros requieren un alto rendimiento incluso a expensas de la precisión. Los criterios de optimización pueden variar. En general, los controladores PID están configurados para garantizar que todos los criterios de calidad del control estén en un alto nivel.

Los componentes del controlador PID se configuran por separado.

  • Se desactivan los vínculos integradores y diferenciadores y se selecciona el coeficiente del vínculo proporcional. Si el controlador es proporcional-integrador (no hay vínculo diferenciador), entonces se logra una ausencia total de oscilaciones en la respuesta transitoria. Al configurar el controlador a alta velocidad, es posible que persistan oscilaciones. El vínculo diferenciador intentará compensarlos.
  • El vínculo diferenciador está conectado. Su coeficiente tiene como objetivo eliminar las fluctuaciones en el parámetro de control. Si esto falla, reduzca el coeficiente proporcional.
  • Gracias al enlace de integración, se elimina el error de discrepancia residual.

El ajuste del controlador PID es de naturaleza iterativa. Aquellos. Los puntos para seleccionar coeficientes se pueden repetir muchas veces hasta lograr un resultado aceptable.

Debido a su alto rendimiento y versatilidad, los controladores PID son ampliamente utilizados en sistemas de automatización industrial.

En la próxima lección desarrollaremos un controlador de temperatura PID.

Compartirá contigo su experiencia en la creación de un controlador de rotación de ventilador inteligente, utilizando un sensor térmico, una pantalla LCD y, por supuesto, Arduino.

Hace unos meses leí varios artículos sobre Arduino y me interesé mucho en este dispositivo y pronto decidí comprarlo. Cabe señalar que estoy lejos de la microelectrónica, por lo que me gustó la placa principalmente por su relativa facilidad de uso. Después de haber incursionado en los LED y los sistemas "Hola mundo", quería hacer algo práctico y, al mismo tiempo, familiarizarme más con las capacidades de Arduino. Teniendo en cuenta el verano anormalmente caluroso de 2010, surgió la idea de montar un controlador de velocidad más fresco dependiendo de la temperatura con todas las características relacionadas mostradas en la pantalla LCD. Espero que este esquema o sus variaciones sean útiles para alguien, así que decidí publicar mis bocetos.

Para este esquema necesitaremos:

  • En realidad el tablero mismo arduino o similar;
  • tabla de pan para ensamblar componentes de circuitos;
  • Pantalla WH1601A-NGG-CT con resistencia de ajuste activada 20 kOhmios o similar;
  • Resistencias – 220 ohmios, 10 kOhmios, 4,7 kOhmios;
  • transistores bipolares SS8050D o similar;
  • Sensor de temperatura digital DS18B20;
  • Diodo 1N4148 o equivalente;
  • Admirador axial de tres cables (12V), por ejemplo - computadora;
  • Conector jack nutrición 2,1/5,5 mm.

El refrigerador de la computadora tiene tres cables, dos de los cuales, rojo (+12 V) y negro (GND), se utilizan para el suministro de energía, y el tercero (amarillo) está conectado a un tacómetro integrado en un elemento Hall. Desafortunadamente, 5V de la placa claramente no son suficientes para nosotros, pero 6 salidas digitales Arduino pueden funcionar en modo PWM (están marcadas en la placa con cuadrados blancos o las letras PWM), por lo que podemos regular el suministro de señal desde la placa. al relé, que será responsable del cambio de voltaje suministrado al ventilador.

Recibiremos información sobre las revoluciones del tercer cable del tacómetro, utilizando un método modificado basado en la implementación. interrumpe, que para la mayoría de los Arduinos puede llegar a los pines digitales 2 (interrupción 0) y 3 (interrupción 1). Por cierto, el Arduino Mega tiene 4 pines adicionales con capacidad de recibir interrupciones.

Ahora necesitas posicionar sensor de temperatura digital, cuyos datos utilizaremos para regular la tensión suministrada a la salida digital con PWM, y por tanto para “abrir” el canal de tensión del ventilador. Los sensores Dallas tienen su propia biblioteca Arduino: DallasTemperature, que luego conectaremos en el boceto. La biblioteca debe descomprimirse en el directorio arduino-0018/libraries/.

Lo último que queda es conectar pantalla LCD, donde mostraremos toda la información actual sobre la temperatura y velocidad del ventilador. Dado que utilicé la pantalla WH1601A para la compilación, es posible que haya problemas conocidos con la visualización de líneas. Para eliminarlos usaremos la biblioteca LiquidCrystalRus, que también debemos descomprimir en el directorio arduino-0018/libraries/.

//Conectar la biblioteca para el sensor de temperatura#incluir //Conectar la biblioteca para LCD#incluir #definir PowerPin 9 // pin para controlar la potencia del ventilador#definir Sensor Hall 2 // pin para sensor de velocidad del ventilador (interrupción)#definir TempPin 7 // pin para sensor de temperatura LiquidCrystalRus lcd (12, 11, 10, 6, 5, 4, 3); //Conectar LCD DallasTemperature tempSensor; int NbTopsFan, Calc, fadeValue; //variables enteras para cálculos temperamento flotante; //variable real para almacenar la temperatura estructura typedef( // Introducir un nuevo tipo de variables para los fans. fantipo de personaje; int fandiv sin firmar; )especificación de fans; //Matriz de variables de nuevo tipo fanspec espacio de fans=((0,1),(1,2),(2,8)); //Variable responsable de seleccionar el tipo de sensor del ventilador (1 – sensor Hall unipolar, 2 – sensor Hall bipolar) ventilador de carbón = 2; //Esta función será llamada cada vez que interrumpamos rpm vacías() (NbTopsFan++;) // Función para calcular el voltaje aplicado a un pin digital con PWM void temp() ( fadeValue = min(int(temperamento*7),255); // Multiplica la temperatura por el coeficiente, // toma un número entero del producto } // Porque el valor máximo de PWM es 255, entonces no tiene sentido suministrar más; tome el mínimo de dos vacío configuración() (tempSensor.begin(TempPin); //Inicia el sensor de temperatura lcd.comenzar(16, 2); //Establecer características de LCD lcd.setDRAMModel(LCD_DRAM_WH1601); //Y muestra el tipo pinMode (HallSensor, INPUT); // Configurar pin para recibir interrupciones adjuntarInterrupción(0, rpm, ASCENDENTE); // Vinculamos la interrupción número 0 a nuestra función, y se calculará cada vez que cambie la señal) vacío bucle() (temperamento = tempSensor.getTemperature(); // Obtener la temperatura temperatura(); // Calcular el voltaje suministrado al PWM analogWrite(PowerPin, fadeValue); // Aliméntalo NbTopsFan = 0; //Restablecemos la variable que contiene las revoluciones a cero retraso(1000); //Espera 1 segundo Calc = ((NbTopsFan * 60)/fanspace.fandiv); //Calcula el valor de RPM durante 60 segundos dividido por el multiplicador del ventilador lcd.print(Calc, DEC); //Enviar el valor calculado en forma decimal lcd.print(" rpm - " ); lcd.print(temperamento); //temperatura de salida lcd.casa(); )

Al leer la primera parte del título, muchos de ustedes probablemente pensaron: otro termostato en el sufrido Arduino. Y... Es verdad, sí, este es otro termostato para otra caldera, otra casa, pero esto es sólo parcialmente cierto, en el artículo no quiero concentrarme en el dispositivo en sí, realmente hay muchos de ellos (artículos ). Por supuesto, describiré el termostato, pero me gustaría hablar más sobre cómo conecté el microcontrolador a la caldera. Entonces, para aquellos que estén interesados, por favor...

Cómo todo empezó

En primer lugar, quiero decir que no soy programador en absoluto y nunca antes había trabajado con un microcontrolador real. Mi primer contacto con el AVR MK (y con el MK en general) fue en la escuela secundaria, cuando quería saber cómo funciona realmente esta cosa misteriosa. Leí varios artículos y desde entonces solo tengo fragmentos en mi memoria que podrían describirse en solo dos palabras: DDR y PORT, y ahí terminó mi conocimiento. Luego vino la universidad, quinto año, "Programación de microcontroladores", donde todos conocimos el MSC51 en un entorno virtual. Ya hubo interrupciones, cronómetros y todo lo demás. Bueno, con esta cantidad de conocimiento llegué al problema. Terminemos con esta nota autobiográfica y pasemos a la parte más interesante.

Entonces, en realidad, ¿dónde comenzó la creación del termostato? Después de instalar un sistema de calefacción autónomo con una caldera de gas, yo, como muchos, encontré los problemas habituales: la temperatura en la casa dependía mucho del clima exterior, las heladas, es Hace frío en el apartamento, es necesario aumentar la temperatura del refrigerante en las baterías, se calienta, al contrario. Estos bailes con pandereta no me convenían mucho, porque... Ajustar la caldera fue complicado por el hecho de que estaba instalada detrás de una puerta, y la puerta estaba sostenida por un horno microondas, sobre el cual había un montón de basura. Bueno, ya entiendes la idea: una aguja en un huevo, un huevo en un pato, etc.

Este problema se resolvió de forma muy sencilla: con la ayuda de un sensor OTC (compensación de temperatura exterior), que se conecta a la caldera y le permite ajustar automáticamente la temperatura del refrigerante en función de la temperatura exterior. El problema parecía resuelto, pero la lectura del manual de servicio de la caldera (Ferolli Domiproject C24D) rápidamente pisoteó mis esperanzas: en este modelo no está previsto conectar un sensor de temperatura externo. ¿Todo? Todo. Y ahora, probablemente, podríamos haberlo terminado, pero en verano, durante una tormenta, el tablero de control de la caldera todavía se quema de una manera que aún no me queda clara, y mientras hablo con el técnico de servicio (el tablero estaba luego reparado), pregunté si era posible conectar OTC a mi caldera. Respondió que se conectan mediante termostatos externos. Esto se quedó grabado en mi memoria, pero no me concentré realmente en ello hasta que llegó el clima frío, y entonces siguió siendo el mismo problema.

Hojeando las mismas instrucciones de servicio, pero con el objetivo de ver cómo está conectado el termostato, noté que el “regulador OpenTherm” está conectado a los mismos terminales. Fue entonces cuando me di cuenta: ¡esto es ESO! Una búsqueda en Google de “OpenTherm Arduino” me decepcionó nuevamente: nada particularmente sensato. Había un monitor de mensajes, pero no es eso, no tengo nada que escuchar, solo necesito un termostato.

Primero construyamos algo simple en Arduino. EN capitulo 12 Ya hemos inventado termostatos que utilizan componentes puramente analógicos. Ahora veamos cómo podemos involucrar la tecnología digital en este útil negocio.

Ya hemos mencionado (ver capitulo 18), que los controladores AVR incluyen un ADC multicanal de 10 bits. En las placas Arduino, sus pines están especialmente marcados como entradas analógicas (con la letra A con números del cero al cinco). Tenga en cuenta que también se pueden utilizar como digitales normales con números del 14 al 18, y los usaremos en esta capacidad. Utilizaremos una de estas entradas para medir temperatura, y controlaremos la conexión de carga desde una de las salidas digitales.

En total necesitaremos:

□ Placa Arduino Uno (cualquier otra servirá);

Tengo un termistor como sensor de temperatura. Adecuado, por ejemplo, existente

□ “Amperke” В57164‑К 103‑J con una resistencia nominal de 10 kOhm a 25 °C - sus características se dan en capitulo 13 como ilustración de las propiedades de los termistores;

□ resistencia variable 10 kOhm, resistencia constante 620 ohmios;

□ relé ejecutivo: electromagnético (necesariamente con un interruptor de transistor amplificador, ver más abajo) o de estado sólido.

Se encuentran disponibles para la venta módulos basados ​​en relés electromagnéticos de 5 voltios, especialmente diseñados para el control desde salidas Arduino. Los relés electromagnéticos en sí requieren una corriente de control bastante grande (y cuanto más potente es el relé, más potente es; solo los relés de láminas de menor potencia pueden funcionar directamente desde la lógica), por lo tanto, todos estos módulos de relés deben tener un interruptor amplificador de transistores. Por ejemplo, Amperka vende un módulo de este tipo basado en el relé HLS8L‑DC5V‑S‑C. Si no está satisfecho con un relé electromagnético y se esfuerza por lograr una simplicidad extrema del circuito, puede buscar relés de estado sólido; por ejemplo, son adecuados CX240D5R de Crydom o otros similares con un voltaje de funcionamiento de 3-15 V. Su corriente de control es de aproximadamente 15 mA a 5 voltios en la entrada, lo cual es aceptable para los AVR, porque su entrada de control se puede conectar directamente a la salida digital de Arduino. Es cierto que a un voltaje de 220 voltios, el CX240D5R no puede cambiar una carga con una potencia de más de un kilovatio, pero para esta tarea no necesitamos más.

El circuito del termostato en Arduino Uno se muestra en la Fig. 21.2.

Arroz. 21.2. Diagrama del termostato encendido ArduinoUno

En el diagrama, el devanado del relé K1 (con contactos normalmente abiertos) se conecta convencionalmente directamente a la salida digital del Arduino; se supone que este es el relé de estado sólido mencionado anteriormente con las características requeridas o simplemente la entrada de control de una placa de módulo de relé terminada. Para controlar el estado del circuito, se activa un LED simultáneamente con el calentador. El programa del termostato según este esquema es extremadamente sencillo:

Los valores de resistencia se ajustan al termistor especificado B57164‑K con una resistencia nominal de 10 kOhm a 25 °C (103‑J). De acuerdo con el programa, el relé funcionará cerca del valor de salida del ADC de 500. Este es aproximadamente el medio del rango de 10 bits (la escala completa es de 1024 gradaciones), es decir, este valor se establecerá cuando los valores superior e inferior Las resistencias son aproximadamente iguales en relación con la entrada AO (el voltaje en esta entrada será entonces de aproximadamente 2,5 voltios).

Tenga en cuenta que ambas funciones si no termines con lo de siempre demás. Para evitar la vibración, se ha introducido histéresis en el programa: el relé se enciende cuando el valor del código excede 510 y se apaga cuando baja a 490. Mientras tanto, mantendrá el estado anterior. Veinte unidades de código (lo que hay en capitulo 12 llamamos zona muerta) corresponden aproximadamente a 10 milivoltios, es decir, la histéresis a una temperatura en el rango de 30 a 40 grados será ligeramente inferior a una décima de grado (compruébelo usted mismo utilizando la Tabla 13.1 de capitulo 13).

Es posible ajustar la temperatura de respuesta utilizando la resistencia R2 con estos parámetros en el rango de aproximadamente 22 a 96 °C. Por supuesto, en la práctica no se requiere un rango de ajuste tan amplio, por lo que es aconsejable reducir el valor de R2. El valor de R1 se selecciona de modo que R1 y el valor nominal de R2 sumen la resistencia del termistor en el valor más bajo del rango de temperatura deseado (de acuerdo con la Tabla 13.1). Para un ajuste más preciso, puede calibrar y cambiar los valores umbral en el programa midiendo la temperatura establecida con un termómetro normal.

Si utiliza otros sensores en este circuito, no se olvide del signo del coeficiente de temperatura. Un diodo o transistor ordinario en conexión de diodo (como en los circuitos de capitulo 13) también tienen una pendiente negativa de la característica, por lo que para ellos en el programa solo tendrás que cambiar los valores numéricos del umbral de respuesta. Pero los sensores semiconductores como el TMP35 (ver. capitulo 13) o simplemente termorresistencias metálicas (como en el diseño de capitulo 17) tienen un coeficiente de temperatura positivo, por lo que las condiciones de funcionamiento deberán invertirse. Y no solo cambiar "más" a "menos" y viceversa, sino también cambiar la relación de los umbrales de histéresis: en la nueva situación, el calentador tendrá que encenderse si el valor es menor que el umbral más pequeño, y girar apagado si es más que el más grande.


Arriba