ADQUISICIÓN DE DATOS DE TEMPERATURA CON MICROCONTROLADOR Y PUERTO SERIAL
INTRODUCCIÓN.
En el presente trabajo, se mostrará la implementación de un circuito de adquisición de datos de temperatura por medio de un microcontrolador PIC16F887 usando un sensor de temperatura LM35, un amplificador de instrumentación y un circuito integrado que nos permitió la comunicación entre el sistema embebido y el computador tal como lo es el MAX 232.
OBJETIVOS.
General.
Diseñar un circuito que permita obtener los datos de temperatura a partir de un sensor de temperatura LM35 y visualizarlos por medio del computador.
Específicos.
- Analizar como se da el proceso de comunicación entre el microcontrolador y el computador por medio del MAX232.
- Analizar una posible aplicación práctica para este circuito.
PROCEDIMIENTO EXPERIMENTAL.
El diseño de este circuito se divide en varios bloques constructivos que son: un sensor de temperatura LM35, un amplificador de instrumentación de referencia AD 620, un microcontrolador PIC16F887, un circuito integrado MAX232 y un computador personal, en la figura 1 se muestra el diagrama de bloques de este sistema.
LM35.
Es un sensor de temperatura a base de silicio cuyo rango de medición varía entre los – 55 ºC hasta los 150 ºC la salida de voltaje respecto a la temperatura es completamente lineal y su equivalencia es 0.01V por cada grado centígrado, si por ejemplo la temperatura a la cual se está sometiendo el dispositivo es de 100 ºC, su salida será de 1 volt y en milivoltios será de 1000 mV (milivoltios). Su estructura interna es similar a la de un transistor BJT, según su datasheet el rango de alimentación de este sensor va desde los 4 – 20 voltios. La figura 2 ilustra su estructura física y descripción de pines.
AD620.
El amplificador de instrumentación AD620 es un amplificador de instrumentación de precisión el cual ya tiene encapsulada dicha topología en esta referencia, es un amplificador que posee un rango de ganancia de entre 1 y 10000 ajustable con una sola resistencia externa la cual se debe calcular bajo unos criterios de diseño, tiene un consumo de corriente mínimo de 1.3 mA un ancho de banda de 120 KHz, un rango de trabajo de 2.3 a 18 volts dual y es un encapsulado de 8 pines.
Dentro de sus aplicaciones podemos encontrar la medición de masas usando celdas de carga, equipos de electromedicina, sistemas de adquisición de datos como lo es en este caso en particular, control de procesos industriales sistemas de alimentación para baterías portátiles entre otras. Su estructura es basada en un encapsulado DIP de 8 pines tal como se muestra en la figura # 3.
El microcontrolador empleado para esta aplicación en particular es el PIC16F887, el cual por sus múltiples prestaciones fue el utilizado en esta aplicación, entre sus principales características tenemos:
Rango de operación: 0-20MHz, oscilador interno de alta precisión, un voltaje de alimentación mínimo de 2.2 a 5.5 voltios como máximo, 35 pines de entrada y salida, memoria ROM de 8kb, programación serial en el circuito, 14 canales para conversión A/D con resolución de 10 bits, módulos PWM, además de permitir comunicaciones del tipo SPI e I2C.
MAX232.
Es un circuito integrado que se encarga de convertir las señales de un puerto serial RS-232 a señales compatibles con las tensiones TTL (logic transistor transistor). Es considerada una interfaz de transmisión y recepción para las señales RX, TX, CTS y RTS donde CTS son datos listos para enviar y RTS son datos de solicitud de envío de datos.
El voltaje máximo que soporta para las entradas de recepción de datos es de 25 voltios, sin embargo, para esta aplicación en particular trabajan a voltajes TTL de 5 voltios. Típicamente se conectan condensadores cuyos rangos varían entre los 1uF y 10uF.
CONECTOR DB9.
Es un conector de 9 pines utilizado principalmente para conexiones en seriales ya que permite una transmisión de forma asincrónica de datos de acuerdo a lo establecido por la norma RS-232.
Hoy en día, los conectores DB9 no existen en muchos de los computadores que están saliendo en el mercado, sin embargo y por medio de un cable DB9 a USB, es posible hacer la transmisión de datos al computador y visualizar información en muchas de las herramientas existentes para visualización por consola. El uso del hyperterminal no está obsoleto sin embargo para esta aplicación en concreto no fue empleado y la herramienta usada fue putty.
La descripción de los pines del conector DB9 es la mostrada en la tabla Nº1.
PUTTY: Es considerado un cliente SSH, telnet, rlogin y TCP raw. Es completamente gratuito y fácil de utilizar y ya hay disponibilidad de uso para Windows y para Linux, por medio de este software se logró hacer la comunicación serial y visualización de los datos de temperatura por medio de consola ya que posee diversos clientes entre los cuales se encuentra el serial port.
¿Como se logra la comunicación serial entre el microcontrolador y el computador?
La comunicación serial es una de las más simples a emplear en el microcontrolador para que esta sea visualizada en el computador, la comunicación UART o comunicación serial maneja tres líneas en las cuales: Rx recibe datos, Tx transmite datos y la línea de tierra o GND
Para el caso particular de nuestro microcontrolador PIC16F887 se utilizan específicamente los pines 25 y 26 cuyas referencias son RC6 y RC7.
El microcontrolador PIC16F887 solo posee un puerto UART físico debido a que solo tiene un pin de transmisión y otro de recepción, otros microcontroladores poseen más de un puerto UART, de esta forma se pueden realizar diversas comunicaciones a varios dispositivos.
La transmisión de los datos se logra bit a bit una sola vez y por ende esta es más lenta con la ventaja de que se requieren menos líneas de conexionado y en el tema de distancias, estas pueden ser mayores.
El tipo de comunicación en el microcontrolador es asincrónica debido a que los pulsos provenientes de un oscilador no son necesarios y se usan otros métodos para la transferencia de los datos, depende básicamente de la velocidad con la cual se hace la transferencia y en nuestro caso es de 9600 bits por segundo.
¿Cómo se da este proceso?
- La línea que indica mark permanece en alto.
- Para el inicio de la transmisión de datos, esta se coloca en bajo en donde en la gráfica aparece identificado como start bit.
- Posteriormente se empieza con la transmisión de los bits correspondientes al dato iniciando por el menos significativo y culminando en el más significativo.
- Cuando finalice la trama, se agrega un bit de paridad siempre y cuando se encuentre activada esta opción en el microcontrolador.
- Se debe regresar a un nivel alto con un bit de stop. Pueden ser uno o dos bits.
CIRCUITO IMPLEMENTADO.
Para una mejor apreciación del circuito, Puedes descargarlo AQUI!
PROGRAMA
#INCLUDE <16f887.h>
#device adc=10
#USE DELAY(CRYSTAL=4000000)
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,NOPUT,NOLVP
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8)
#BYTE PORTA= 5
#BYTE PORTD= 8
long bits; //Variable almacena los bits
float tem; //Almacena la temperatura
void main()
{
set_tris_a(0b00000001); //Pongo el RA0 como entrada
setup_adc_ports(all_analog); //Pongo todo el puerto a analogo
setup_adc(adc_clock_internal); //Selecciono reloj interno para conversion
while(1)
{
set_adc_channel(0); //Selecciono el canal 0 (RA0)
delay_ms(1); //llamo retardo de 1 ms
bits=read_adc(); //Guarde el dato del LM en tempe
tem=bits*150.0/1023.0; //Conversion de bits a temperatura
printf(“La Temp: %2.3f C\r\n”,tem);
delay_ms(1000);
}
}
MONTAJE.
PRUEBAS CON EL PUTTY
TUTORIAL DE CONFIGURACIÓN DEL CABLE SERIAL DB9 A USB
Cabe aclarar, que los conectores seriales DB9 ya no están viniendo empotrados en los computadores actuales, por tal razón; al momento de conectar cables seriales DB9 al computador es necesario conectar un cable serial conversor macho DB9 al terminal USB del computador para visualizar los datos de los parámetros que usted desee medir de forma externa.
Al momento de usted hacer su circuito, del MAX232 debe salir un cable hembra DB9 el cual debe conectar en conjunto con el conector macho de este cable y luego conectar al puerto USB del computador.
Para este cable es necesario instalar un driver para establecer comunicación entre el cable USB-SERIAL
Luego debe configurar en cable por medio del putty para que pueda visualizar los datos de temperatura en su computador.
En este video se explica como se logra dicha configuración.
Los procedimientos mostrados en video son sumamente necesarios y de no hacerlos no se logrará visualizar los datos de temperatura en su computador.
CONCLUSIONES.
- Para el proceso de comunicación entre el sistema embebido y el computador, este debe realizarse por medio de un max232 y la comunicación debe ser asincrónica, es decir: no debe depender de ningún pulso de reloj externo para la transmisión de datos punto a punto. Además de tener en cuenta los criterios para la transmisión de datos que se encuentran consignados en este informe en el ítem que especifica de como se logra la comunicación entre el microcontrolador y el computador.
- Una de las posibles aplicaciones prácticas para este circuito son la visualización de datos de temperatura de forma inalámbrica usando dispositivos que manejen otro tipo de protocolos de transmisión. Si se desea conocer la temperatura ambiental o de un proceso que no exceda los 100 ºC de temperatura y desea conocer los datos en tiempo real, esta aplicación es perfecta. Básicamente lo único que se haría es cambiar el tipo de comunicación
REFERENCIAS.
https://controlautomaticoeducacion.com/microcontroladores-pic/16-comunicacion-serial-con-pic/
(Todo sobre la comunicación serial con microcontroladores. ENLACE ALTAMENTE RECOMENDADO)
https://www.analog.com/media/en/technical-documentation/data-sheets/AD620.pdf (Hoja de datos característica del amplificador de instrumentación AD620).
https://pdf1.alldatasheet.com/datasheet- pdf/view/197543/MICROCHIP/PIC16F887.html
(Hoja de datos característica del microcontrolador PIC16F887)
CONTENIDOS MÁS RELEVANTES.