ENCICLOPEDIA DE RADIOELECTRÓNICA E INGENIERÍA ELÉCTRICA Temporizador-reloj-termómetro multiprograma. Enciclopedia de radioelectrónica e ingeniería eléctrica. Enciclopedia de radioelectrónica e ingeniería eléctrica. / Reguladores de potencia, termómetros, estabilizadores de calor El artículo describe un dispositivo digital universal basado en un controlador PIC, que puede realizar las funciones de un temporizador multiprograma capaz de controlar cuatro cargas, un reloj, un despertador, un termómetro de amplio rango y un termostato que proporciona calefacción y enfriamiento del objeto controlado. Un dispositivo digital universal, cuyo diagrama se muestra en la Fig. 1, tiene las siguientes características técnicas:
El dispositivo se controla mediante un teclado de 16 teclas. Es posible encender y apagar el sonido al presionar botones, configurar el suministro de señales de control, luz y sonido, y la capacidad de configurar individualmente el dispositivo para una aplicación específica cambiando el programa de control MK. Hay energía de respaldo de una batería recargable incorporada. Todos los parámetros establecidos durante el funcionamiento del dispositivo se conservan incluso si la alimentación de respaldo permanece apagada durante más de 40 años. Como puede verse en el diagrama, la base del dispositivo es el controlador PIC DD1. El registro de desplazamiento DD2 y el decodificador DD3 están diseñados para organizar la indicación dinámica, cuyo principio es el siguiente. Primero, el código 3 se envía al decodificador DD1111, como resultado de lo cual se establecen niveles de registro en todas sus salidas. 1 y ninguno de los dígitos del indicador HG1 está encendido. A continuación, el código del símbolo requerido se ingresa en el registro DD2, después de lo cual el código correspondiente al dígito requerido del indicador se envía al DD3. Simultáneamente con la actualización de los datos del indicador, se escanea el teclado, cuyos 16 botones se dividen en dos grupos, ocho en cada uno. Los pines comunes de los botones de estos grupos están conectados a dos entradas del MK (RB0 y RB1). Cuando presiona cualquier botón, se envía una señal de registro a una de estas entradas. 0 de la salida correspondiente del decodificador DD3, determinando así su código. Usando el teclado, puede iniciar/detener cualquiera de los temporizadores del programa o todos al mismo tiempo, configurar el modo de funcionamiento del termostato, la hora actual, la hora de la alarma, etc. La mayoría de los botones tienen una doble función, dependiendo de qué información el usuario ingresa desde el teclado: numérico o de control. Considere el propósito de los botones del teclado con más detalle. “0”, “Reloj”: número 0 al ingresar información numérica o cambiar al modo de reloj, en el que puede cambiar la hora actual, configurar la hora de la alarma, activar el modo de alarma para la llegada de una nueva hora, editar la hora factor de corrección (ver más abajo). "1" - "9" - números 1 - 9 al ingresar información numérica o seleccionar el temporizador de programa apropiado. "Término": cambia al modo termostato, donde puede configurar el valor de temperatura actual, editar el valor de la temperatura controlada, el tipo de control (calefacción o refrigeración) y los parámetros del termistor. "Del" - signo menos al ingresar el valor de la temperatura controlada, encender/apagar el termostato, termómetro, despertador o reloj (cuando está apagado, se muestran los signos --- en lugar de las lecturas correspondientes), puesta a cero al ingresar números datos. "Establecer" - transición/salida al modo de cambiar el valor de cualquier parámetro (temporizador de programa, hora actual, despertador, termómetro, termostato, configuración). "Opciones": cambie al modo para cambiar la configuración. Aquí puede activar/desactivar el pitido de los botones, el modo de bienvenida, seleccionar las fuentes de señales de control, etc. "Seleccionar": inicia/detiene el temporizador del programa actual si su valor de retardo es diferente de 0. "AN" - inicia/detiene todos los temporizadores del programa cuyo valor de retardo de tiempo es diferente de 0. El dispositivo es capaz de producir cuatro señales de control, cada una de las cuales puede utilizarse a discreción del usuario. Es posible configurar la fuente de estas señales:
El dispositivo utiliza un LED HL1 de dos colores, que parpadea en rojo si al menos una señal de control se activa cuando se inician uno o más temporizadores, y en verde si no hay señales activas. Al final del retraso de cualquiera de los temporizadores en funcionamiento, el indicador HG1 comienza a parpadear y el piezoemisor HA1 con un interruptor incorporado emite señales de sonido. Esto continúa hasta que el usuario presiona cualquier botón del teclado o pasa un tiempo determinado, cuyo valor se almacena en la memoria del MK y puede modificarse durante su programación. La señal de sonido producida cuando se activa el temporizador está determinada por dos parámetros: la duración del sonido y el número de ráfagas de sonido. Cuando suena la alarma, también suenan señales de sonido, pero solo los dos símbolos del indicador más a la izquierda comienzan a parpadear: A y L (del inglés ALARMA - despertador). El sonido de la alarma también se describe mediante dos parámetros almacenados en la memoria del MK. Dependiendo del resonador de cuarzo utilizado, la precisión del reloj varía, por lo que este dispositivo implementa una corrección de tiempo por software. El coeficiente de corrección lo establece el usuario desde el teclado y también se almacena en la memoria del MK. De hecho, representa el número de microsegundos que se suman a los períodos de oscilación generados por el temporizador interno del MK, en nuestro caso 1,92 ms. Utilizando un factor de corrección, se consigue que este tiempo sea igual a 2 ms (se registra un periodo de tiempo de 1 s cada 500 periodos de este tipo). La temperatura se mide midiendo la caída de voltaje a través del termistor RK1. Su resistencia en función de la temperatura está determinada por la siguiente fórmula: donde R0 es una constante que tiene la dimensión de resistencia; B es una constante que tiene la dimensión de temperatura; T - temperatura absoluta. Por tanto, esta dependencia debe reducirse a lineal. Existe un método conocido de linealización mediante un puente de termistores, pero este enfoque es inconveniente porque al reemplazar el termistor es necesario cambiar los parámetros del puente en sí, lo cual no es tan simple. Sería más conveniente obtener el valor de la temperatura sin ninguna linealización, pero para ello es necesario calcular el valor de la siguiente expresión: donde Rd es la resistencia de la resistencia adicional; N - código binario de 10 bits obtenido después de la conversión de analógico a digital; ONU - tensión de alimentación. En el dispositivo descrito, esta expresión la calcula el programa de control MK y el resultado se muestra en el indicador. Cabe señalar que el rango anterior de temperaturas medidas y controladas (-43... +470 °C) se puede estirar, comprimir o cambiar según se desee. Se eligió este intervalo porque el error de medición de temperatura en él no excede ±2 °C. En este caso, la resistencia de la resistencia adicional R17 es de 300 ohmios. Para reducir el error, se puede aumentar, pero como resultado los límites del rango de temperatura cambiarán. Para facilitar el cálculo, puede utilizar documento término (10 bits).mcd para el sistema MathCAD 2001, que, basándose en los parámetros especificados del termistor RK1, la resistencia R17 y el error requerido, calcula el rango de temperaturas medidas. Para garantizar que el reloj en tiempo real no se pierda cuando se apaga la alimentación principal, el dispositivo está equipado con una fuente de alimentación de respaldo para el microcontrolador. Consta de una batería GB1 de 3,6 V, una resistencia R16 y diodos VD2, VD3. Cuando se enciende la alimentación principal, el diodo VD3 se cierra y la batería GB1 se carga a través de la resistencia R16. Cuando se apaga la alimentación principal, el voltaje de la batería se suministra a través del diodo VD3 solo al MK (el diodo VD2 evita el suministro de voltaje a los elementos restantes del dispositivo). El MK detecta el hecho de un corte de energía, ya que monitorea constantemente el nivel de voltaje en el pin RB2. Y cuando sea igual a log. 0, el MK deja de regenerar el indicador y de sondear el teclado, detiene todos los temporizadores de programas en ejecución, deja de medir y ajustar la temperatura y cambia al modo de reloj. Además, si la configuración se cambió mientras trabajaba con el dispositivo, luego de apagar la alimentación, el LED rojo parpadeará brevemente, pero si la configuración no ha cambiado, el LED verde parpadeará. Si el dispositivo no está diseñado para usarse durante un tiempo prolongado (una semana o más), para evitar una descarga completa de la batería, puede apagar la energía de respaldo usando el puente S1. El MK monitorea constantemente el estado de los contactos de los botones en el teclado, y si no se ha presionado ni una sola vez dentro de un tiempo específico y no se ha iniciado ningún temporizador de programa, cambia automáticamente al modo de reloj. El programa de control MK está escrito en lenguaje C, por lo que puede utilizar fácilmente cualquier tipo de datos, incluidos los reales. El programa fue desarrollado en el sistema de programación HT-PIC C (se puede “descargar” desde el sitio web ). Para la depuración, utilizamos el emulador en circuito más simple, que es un conjunto de contactos que conectan las líneas del puerto paralelo de la computadora con el zócalo debajo del MK en la placa principal. La correspondencia de las clavijas del puerto paralelo de la computadora con los enchufes MK en la placa del temporizador se proporciona en la Tabla. 1. Para controlar el emulador, el programa de control MK se compiló con cambios menores en el entorno de programación Borland C++ 3.1. Desafortunadamente, un emulador de este tipo funciona en una escala de tiempo diferente a la real, pero sin embargo, sin un dispositivo de este tipo sería casi imposible depurar un programa tan complejo. Sin utilizar un emulador, solo se implementó la conversión de analógico a digital, cuya descripción en relación con este MK se puede encontrar en el sitio web (documento DS30292C - "Módulo ADC de 10 bits en microcontroladores PIC16F87x"). Consideremos brevemente los puntos principales del funcionamiento del programa de control MK. Está escrito utilizando una metodología de programación estructurada, por lo que tiene una gran cantidad de subrutinas. Después de encender, el MK configura los puertos de entrada/salida, el ADC y el temporizador interno. Luego comienza a ejecutarse el bucle principal, que es infinito. En él, como ya se mencionó, se verifica constantemente la presencia de la tensión de alimentación principal y, si se apaga, el MK deja de realizar todas las funciones excepto el conteo del tiempo. Cuando se enciende la alimentación principal, muestra la pantalla de inicio y vuelve al modo de funcionamiento. La información que debe mostrarse en el indicador en el momento actual se almacena en la matriz d. En el proceso de regeneración del indicador, MK reescribe su contenido en una matriz intermedia y desde allí lee secuencialmente los códigos de los símbolos mostrados y los muestra en el indicador. Se introduce una matriz adicional para eliminar el parpadeo del indicador que se produce como resultado de escribir nueva información en la matriz d antes de que la anterior aún no se muestre por completo. Por ejemplo, digamos que la matriz d inicialmente contenía la cadena "ABCDEFHLP" y cuando se mostró el cuarto carácter ("D"), se agregó la cadena "FDA 2002" a la matriz. Entonces el usuario del dispositivo, debido a la inercia de la visión humana, en algún momento verá la línea "ABC 2002". Además, si dichos procesos se repiten constantemente (y este será el caso en el trabajo real), una persona tendrá la impresión de que la información en el indicador parpadea. Como se señaló, simultáneamente con la actualización del indicador, se escanea el teclado. Cuando presiona cualquier botón, se llama una subrutina para suprimir el "rebote" del contacto, que implementa un retraso de varios milisegundos (el valor de este tiempo se almacena en la memoria del MK), durante el cual el dispositivo no responde a más pulsaciones de botones. También hay que tener en cuenta que el tiempo de retardo de los temporizadores, relojes y alarmas del programa se establece en segundos (el contador de horas se pone a cero cuando el valor alcanza 24 x 60 x 60 = 86400), y antes de mostrarse en el indicador se convierte a al formato H:MM:SS para temporizadores o al formato HH:MM para reloj y alarma. Esto se hace usando las siguientes fórmulas: C = mod de tiempo 60. Aquí la operación ][ significa descartar la parte fraccionaria, es decir, la división es un número entero. Los valores obtenidos de horas, minutos y segundos aún no son adecuados para su visualización directa en el indicador, ya que se presentan en código binario. Para seleccionar los decimales más alto y más bajo, es necesario realizar dos operaciones más sobre cada valor: LSB = valor mod 10. Veamos un ejemplo. Sea necesario mostrar el valor 8673 s en el indicador en el formato H: MM: SS. Obtenemos C = 8673 módulo 60 = 33. Por lo tanto, el indicador mostrará 2 : 24 : 33 A partir de los ejemplos dados, puede ver cuántas operaciones deben realizarse solo para organizar la salida al indicador. Implementar tales matemáticas en lenguaje ensamblador sería casi imposible. En lenguaje C, esto se implementa en unas pocas líneas y, gracias al alto nivel de optimización, el código del programa es bastante compacto y rápido. Pero lo más importante es que el programador puede centrar su atención principal en el algoritmo del programa, haciendo abstracción de las características específicas de la arquitectura del MC utilizado. Todo esto facilita la transferencia sencilla del programa de un MK a otro. El texto fuente del programa MK y los códigos de firmware en formato Intel HEX se encuentran en la dirección de Internet mencionada anteriormente. Para programar el MK, el autor utilizó un programador ensamblado según el circuito que se muestra en la Fig. 2 y el software PonyProg2000, cuya última versión se puede "descargar" desde el sitio web . La principal diferencia entre el programador y el descrito en [1] es la adición de un transistor más (VT3) al circuito de generación de señal de sincronización, lo que aumenta la confiabilidad de la programación al eliminar por completo el voltaje negativo en los terminales MC. El dispositivo descrito permite la programación del MK en la placa, es decir, admite la tecnología ICSP (Programación serie en circuito). Para ello se conecta con cinco cables al programador a través del conector X1 de la siguiente manera: 7 - común; 5,6 - 5 V; 2 - ASD; 3 - SCL; 1 - Uprog. Es posible utilizar otros programadores, incluidos aquellos que admiten programación de bajo voltaje. En este último caso, es necesario conectar adicionalmente el contacto correspondiente del programador al pin 4 del conector X1. Un dibujo de la placa de circuito impreso del dispositivo se muestra en la fig. 3, teclados - en la fig. cuatro Hay siete orificios en la placa del temporizador, en los que, antes de instalar las piezas, se insertan trozos de alambre estañado y se sueldan a los conductores impresos en ambos lados de la placa. La función de puentes también la realizan los terminales de algunas piezas. Los orificios a través de los cuales se realizan dichas conexiones de conductores impresos se resaltan en la Fig. 3 con cuatro puntos en forma de cruz. Los archivos fuente del proyecto y la biblioteca de componentes usados para el sistema CAD Accel EDA 15.0 se encuentran en el sitio web indicado anteriormente. El dispositivo utiliza resistencias fijas y condensadores para montaje en superficie. Una excepción son los condensadores de óxido C6, C7 (K50-35). El PIC16F876 MK puede tener cualquier frecuencia máxima de funcionamiento y rango de temperatura, lo principal es que está en un paquete DIP (tiene el sufijo SP). El piezoemisor NRM14AX se puede reemplazar con una unidad hecha con tres elementos del microcircuito KR1533LAZ y un piezoemisor ZP-18 [2]. Termistor RK1 - MMT-4 con una resistencia nominal de 15 kOhm (R0 = 0,294 Ohm, V = 3176 K). Como conectores X1 - X1, se utilizan bloques divididos con pasadores rectos, que se utilizan en tecnología informática: para X2 se utiliza un bloque con una disposición de pasadores de dos filas, y para X1 y X2, con una disposición de una sola fila. Se quitaron el octavo contacto del enchufe XP2 y el tercer contacto del enchufe XP20 y se insertaron enchufes (trozos de hilo de pescar grueso) en los enchufes correspondientes de las partes acopladas de los conectores. Esta medida evitará que los conectores se conecten incorrectamente. El zócalo del conector X10 está hecho de un panel de 1 zócalos para un microcircuito en un paquete DIP (se usa una parte, que tiene 16 contactos). Botones SB3-SB130 - TS-AXNUMXPS-XNUMX. El contenido de la MK EEPROM, que se puede cambiar para configurar otros parámetros operativos, se presenta en la tabla. 2. La columna "Parámetro" contiene el nombre del parámetro, que se muestra en el indicador. Si hay un guión en esta columna, entonces este parámetro solo se puede cambiar al programar el MK. Literatura
Autor: D.Frolov, Riazán Ver otros artículos sección Reguladores de potencia, termómetros, estabilizadores de calor. Lee y escribe útil comentarios sobre este artículo. Últimas noticias de ciencia y tecnología, nueva electrónica: Cuero artificial para emulación táctil.
15.04.2024 Arena para gatos Petgugu Global
15.04.2024 El atractivo de los hombres cariñosos.
14.04.2024
Otras noticias interesantes: ▪ Partículas cuánticas inmortales ▪ Prueba de vehículos autónomos con un conductor remoto ▪ LED convierte vegetales en plantas medicinales ▪ ¿Los meteoritos afectan el clima? Feed de noticias de ciencia y tecnología, nueva electrónica
Materiales interesantes de la Biblioteca Técnica Libre: ▪ sección del sitio Directorios electrónicos. Selección de artículos ▪ Estamos acostumbrados a creer que sin los alemanes no hay salvación para nosotros. expresión popular ▪ artículo ¿Quién inventó la partitura? Respuesta detallada ▪ artículo Crisis hipertensiva. Cuidado de la salud
Deja tu comentario en este artículo: Todos los idiomas de esta página Hogar | Biblioteca | Artículos | Mapa del sitio | Revisiones del sitio www.diagrama.com.ua |