USO PRACTICO DEL PIC12F675 (V) - PICKEY ELECTRÓNICA

Vaya al Contenido

Menu Principal:

USO PRACTICO DEL PIC12F675 (V)

Uso Practico del PIC12F675 (V)


PROYECTO: MnEBasic (trabajando con el sensor de temperatura analógico LM35).


.Tema:

En este nuevo artículo aprenderemos a utilizar un sensor de temperatura LM35, de esta forma podremos añadir la lectura de temperatura a nuestros proyectos.

.Utilidad:

El sensor de temperatura que vamos a utilizar es uno de los más simples, es un sensor analógico calibrado de fabrica que permite integrarlo fácilmente en cualquiera de nuestros proyectos; como puede ser la referencia de temperatura ambiente para el control de un calefactor domestico (termostato).

.Funcionamiento:
Características:

El sensor de temperatura elegido es el LM35
fabricado por National Semiconductor, por lo que todos los datos técnicos han sido extraídos de su datasheets. Está encapsulado en el formato TO92 (se puede conseguir en otros tipos de encapsulados, ver en el datasheets del componente) y solo tiene tres terminales; +Vs, Vout y GND. Su rango de voltaje de alimentación de trabajo va desde 4 a 30V con un bajísimo consumo. Su salida es de baja impedancia y varia en 10mV por ºC (10mV/ºC), por lo que podemos deducir que el sensor esta calibrado en grados centígrados.

Limitaciones:

Según la hoja técnica el sensor no requiere calibración externa porque se facilita con una calibración de +-1/4ºC pudiendo llegar a acumular en su rango de trabajo de -55 a + 150ºC un error de +-3/4ºC. El error típico a +25ºC es de 0.5ºC. Se puede conseguir en distintos cortes de temperatura, el elegido permite desde -55 a +150ºC.

.Conexionado, cálculos y ejemplos:
Conexión y formula:

El LM35 se puede conectar directamente al micro y este entregaría un voltaje correspondiente a la formula V=Tºc*0.01v
, esto implica que para un temperatura de 25ºC el sensor nos entregaría 250mV, ósea 0.25V = 25ºC * 0.01V.

Ejemplo I, midiendo temperatura positiva:

En Ejemplo 1
se puede ver un sencillo programa que muestra la temperatura positiva (+ºC) por el Hyperterminal con un decimal. Para estas practicas se dejará el puente JP3 en modo abierto, aunque para las bajas tensiones que suministra el sensor no debe de afectar si se deja en modo cerrado (puesto).

Rango dinámico de trabajo:

Hasta ahora no se ha tenido en cuenta el rango dinámico de trabajo de los dos elementos utilizados, el sensor LM35 y la MnEBasic (ADC del Pic), para poder usar todas las características mencionadas en el datasheets del sensor de temperatura LM35, estos dos rangos tienen que ser lo más parecidos posible o estar dentro de una similitud determinada por el sensor. Este concepto se puede transportar a cualquier otro tipo de circuitos. El rango de trabajo del módulo ADC del Pic, en el caso de la MnEBasic, está dado por la alimentación del mismo (+5V), porque la tensión de referencia del ADC se ha conectado internamente a la alimentación del Pic, esto se hace mediante configuración de BIT destinados para indicar el modo de trabajo al módulo ADC y su interacción con el núcleo del Pic. Por lo tanto el rango de trabajo de la entrada del módulo ADC va desde 0V a 5V. Se ha configurado el ADC para que trabaje a su máxima resolución de las dos posibles, a 10Bit, la más baja es a 8Bit. Esto quiere decir que la conversión de la lectura analógica a digital que realiza el módulo ADC tiene 10Bit, o sea, tomará valores comprendidos entre 0 y 1023 que corresponde a 1024 puntos de resolución en total, este rango de lectura hay que integrarlo en la formula del LM35 para poder calcular la temperatura; como el LM35 suministra un rango de voltaje que puede ir desde 0 a 1.5V (para temperaturas positivas), se puede observar que este rango esta dentro del rango de trabajo del ADC que es mayor, por lo que se deduce que existe compatibilidad en los rangos, pero también se puede observar que el ADC trabajará en la parte inferior de su escala produciéndose una perdida de precisión. Esto se podría corregir configurando la tensión de referencia del ADC como exterior a través del Pin del Pic establecido para ello y aplicando a dicho Pin una tensión inferior, esta podría ser 1.5V, por lo que los rangos de trabajo quedarían igualados, y así se podría aprovechar la máxima resolución permitida por el modulo ADC. En este caso debido a la simplicidad de la tarjeta entrenadora MnEBasic no se ha tenido en cuenta, de todas formas esto no es lo habitual ya que se tiende a que las tarjetas recolectoras de datos tengas entradas preestablecida con tensiones o corrientes que cumplan un estándar, y en la mayoría de los casos las salidas de los sensores son acondicionadas. Un acondicionador simple podría ser realizado con un amplificador operacional con ganancia 10, esto convertiría los pasos de 10mV del LM35 a 100mV que nos daría una precisión más que aceptable para este componente. De todas formas hay que ser prácticos y la precisión obtenida con el circuito actual para temperatura ambiente es suficiente.

Circuito acondicionador de señales:

Un circuito acondicionador entre entrada y salida, es aquel que se encarga de hacer compatibles entrada con salida en el caso de ser de diferentes tipos, o en el caso de ser similares el de conseguir una mejora en la transferencia de la señal.

Resistencia limitadora para acople de señales:

La conexión del LM35 al conector CN1 de la placa entrenadora se realiza a través de una resistencia limitadora, la misión de esta resistencia es la de proteger al PIC en el caso de que se configure erróneamente el Pin durante alguna practica, error que puede cometer hasta el más experto. Hay que recordar que la mayoría de los Pin del PIC pueden suministrar tanto nivel lógico 1 como 0, esto es tanto +Vc como GND implicando que en el caso de producirse niveles opuestos se pueden producir daños permanentes tanto en el Pic como en el sensor, a este efecto lo llamaremos lucha de niveles, la citada resistencia no esta incluida en la placa.

Ahora se está preparado para los cálculos del Ejemplo 1:

Aplicando lo que sabemos:

ADC, para la entrada AN2 = 5v = Vref = 1023 puntos.
LM35, T = Vout / 0.01v
Vout = tensión  en la salida del LM35.

Como las operaciones con números reales ocupan mucha memoria no se utilizará, así que se usaran potencias de 10 para obtener la temperatura con un decimal.

Para poder trabajar con los decimales integrados en los enteros se pasan todas las tensiones a mV que dando como sigue la representación del cálculo:

T = (5000 * AN2) // 1023, calcula la temperatura en enteros.
ºC = T // 10, extrae los grados, división entera.
0.ºC = T - ((T // 10) * 10), extrae el decimal, se aplica división entera.
AN2 = Vout en puntos del ADC.

A partir de aquí es el código del programa el que se encarga de mostrar los datos de una forma legibles para el usuario.

Calculo de la precisión del sistema de entrada:
Este cálculo indicará si la precisión del sistema está dentro del rango de precisión del LM35, indicando si fura necesario aplicar un acondicionado de señal. Normalmente la precisión del sistema de lectura debe de ser como mínimo, igual o mayor (mejor mayor) a la precisión del sensor utilizado para evitar en lo posible añadirle error al inherente al sensor, porque ambos errores pueden llegar a sumarse. Precisión del sistema = 5000mV / 1024 = 4.88mV redondeando = 5mV, esto implica que 5mV / 10mV = 0.5ºC, 10mV es igual a la variación de un grado. Por lo que la resolución de la lectura de la tarjeta es de ½ºC que es totalmente aceptable para el LM35 que puede dar un error típico de 0.5ºC, pudiendo llegar a 2ºC máximo.

Conectando el LM35 para medición de temperatura positiva (imagen 1):
El condensador C1 se aconseja ponerlo siempre, el resto de valores pueden ser aproximados. Por ejemplo: R2 igual a 82 oh, y la resistencia limitadora R1 igual a 2K2. En las imágenes se muestra la salida del LM35 que tiene que ser prolongada con cable apantallado, esto es solo en el caso de alejar el sensor de la placa lectora. La alimentación (+Vs) también tendrá que ser prolongada con cable apantallado si es suministrada por la misma placa. En el caso que la entrada de la placa fuera de baja impedancia (no es este el caso), R2 tendría que ser disminuida de valor e incluso ser suprimida. Con una prolongación de 1.5mtros no se observaron problemas en la lectura. Si se invierte el LM35 de polaridad, no habrá segunda oportunidad, se quema de inmediato.

.Midiendo temperatura negativa y positiva con LM35 (Imagen 2):
Para poder medir temperaturas negativas y positivas con el LM35 se necesita alimentación simétrica, esto es tensión positiva, GND y otra tensión negativa (+Vs, GND y -Vs). Para evitar el inconveniente de utilizar alimentación simétrica el fabricante propone una alternativa que es crear un plano de masa virtual, esto es, el Pin negativo del LM35 no irá directamente conectado a masa, este tomará la masa a través de dos diodos (D1 y D2) en montaje serie entre si, ver imagen 2. Este tipo de montaje genera una caída de tensión entre el Pin negativo del LM35 y GND. Permitiendo de este modo trabajar con simple tensión como indica el datasheets del fabricante. Gracias a estos diodos se puede simular la fuente simétrica que necesita el LM35 para trabajar en el rango de temperaturas por de bajo de 0ºC. El uso de estos diodos provoca varios problemas que se tienen que solucionar para que el circuito funcione adecuadamente, uno de ellos es que la tensión de la salida del LM35 (Vout) que indica la temperatura, 10mV por ºC, lleva sumada la caída de tensión que se produce en los extremos de los diodos, y otro problemas más, es que la tensión entre extremos de los diodos varia según la temperatura ambiente, bien, todo esto se corrige utilizando una entrada analógica adicional, por lo que nuestro circuito de adaptación a nuestra placa entrenadora MnEBasic suministrará dos tensiones; como se necesitan dos entradas analógicas el conector CN1 que se ha utilizado hasta ahora pierde su utilidad así que se cambiará por el CN2 que también se utiliza para la programación de la placa, del CN2 se utilizarán los Pin 3 (AN0) y 4 (AN1) que permiten ser configurados como analógicos para el ADC, además utilizaremos el Pin 1 como GND y el 5 como +V (también del CN2), y para que este ultimo Pin tenga alimentación +Vc se unirán entre si los tres Pin del JP2.

El secreto de la lectura:

Para eliminar los dos problemas anteriores y obtener la lectura se restan entre si los dos valores de lectura de las entradas AN0 y AN1, de esta forma eliminamos la tensión de la masa virtual que se suma a la tensión de salida Vout del LM35 y también eliminamos las variaciones de temperatura de los dos diodos.
Quedando:
Sí AN1 > AN0 = Temperatura positiva.
Sí AN1 < AN0 = Temperatura negativa.

Trabajando con todo el rango de temperaturas del LM35:

Calculando para números enteros sin signo:
Para temperaturas positivas = AN1 - AN0 = Tmod
Para temperaturas negativas = AN0 - AN1 = Tmod
AN1 = Vout en puntos del ADC
AN0 = Vout2 en puntos del ADC
Tmod = Valor absoluto en puntos del ADC

En ambos casos el código del programa se encargará de memorizar el signo.

T = (5000 * Tmod) // 1023, calcula la temperatura en enteros.
ºC = T // 10, extrae los grados, división entera.
0.ºC = T - ((T // 10) * 10), extrae el decimal, se aplica división entera.
Tmod = puntos del ADC.

A partir de aquí es el código del programa el que se encarga de mostrar los datos con signo de una forma legible para el usuario.
Ver Ejemplo 2
.

Comprobando de nuevo los rangos de trabajo:

La caída de tensión aproximada entre los diodos es de 800mV que esta se suma a la tensión Vout, por lo que la lectura máxima de 150ºC * 10mV = 1500mV + 800mV = 2300mV que es menor a Vref = 5000mV, por lo tanto la lectura de temperaturas positivas están garantizadas.

Y para las lecturas negativas se calcula la temperatura para la masa virtual en grados, esto es 800mV / 10 mV = -80ºC, así que -80ºC es menor que la mínima que puede suministrar el LM35DZ que es -55ºC, se está también dentro de margen para las temperaturas negativas.

Terminando:

El fabricante en el datasheets recomienda que los diodos sean 1N914, pero en este caso se ha preferido utilizar el conocido 1N4148. También se han añadido C1 y C2 más las dos resistencias limitadoras R2 y R3 de 2K2 cada una.

 
Copyright 2016. All rights reserved.
Regreso al contenido | Regreso al menu principal