Hola! Como les va? El ao pasado, como trabajo prctico hice un sensor de temperatura con un LM35 y un PIC 16F873A. Quizas el cdigo y las imagenes ya las vieron porque las publiqu en Taringa! Si bien al proyecto le quedan cosas por agregarle, est bastante completo. Cuando hice este trabajo no encontre mucha info al respecto, asique voy a dejar todo, esquema electrico y el cdigo fuente del pic. Es un sensor de temperatura simple hecho con un LM35 y un PIC16F873A que expresar la temperatura medida en un display lcd de 162 (16 caracteres, 2 lineas) Usa una tensin de referencia (Vref) interna que es de 5 Volts. y el conversor es de 10 bits. El cristal que uso en este caso es de 10 MHz.
La siguiente imagen me la pas un profesor, muestra como alimentar el display. Yo en mi caso en vez de poner una resistencia de 4,7K puse un potenciometro de 5K para poder regular el contraste de los caracteres del display.
//IMPORTANTE!!! LA RESOLUCIN DEL CONVERSOR //ES DE 10 BITS, NO 8. //CONTROLAR YA QUE CON 8 LA CONVERSIN SERA ERRONEA.
1 #include <TermLM35-LCD.h>
9 10
void main()
11
{
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
lcd_init();
// Iniciar el display
// Variables para uso posterior en programa int i; long value; float temper;
27 28 29 30 31 32
// Las siguientes lineas muestran un mensaje de inicio lcd_putc("Iniciando"); delay_ms(250); // Funcin para escribir en el disp. // Retardo de 250 milisegundos. // Borrar todos los caracteres
33 34 35 36 37 38 39 40 41
lcd_putc("f"); lcd_putc("Iniciando."); delay_ms(250); lcd_putc("f"); lcd_putc("Iniciando.."); delay_ms(250); lcd_putc("f"); lcd_putc("Iniciando..."); delay_ms(250); lcd_putc("f");
42 43 44 45 46 47 48 49 50 51
// Este mensaje ya queda fijo lcd_putc("Temp. actual:"); lcd_gotoxy(9,2); lcd_putc("oC"); lcd_gotoxy(1,2); // Ir al caracter 9 de la segunda linea.
52 53 54 55 56 57
lcd_putc(" "); do { for(i=3;i==6;i++) { lcd_gotoxy(i,2);
58 59 60 61 62 63 64 65 66 67 68
}
lcd_gotoxy(3,2); set_adc_channel(0); delay_us(50); value=read_adc(); // Seleccionar el Pin de lectura (RA0) // Retardo de 50 microsegundos
69 70 71 72 73 74
Aca les dejo un poco de informacion del LM35 de la pgina uControl: Sus caractersticas ms relevantes son:
Precisin de ~1,5C (peor caso), 0.5C garantizados a 25C. No linealidad de ~0,5C (peor caso). Baja corriente de alimentacin (60uA). Amplio rango de funcionamiento (desde -55 a + 150C). Bajo costo. Baja impedancia de salida. Su tensin de salida es proporcional ala temperatura, en la escala Celsius. No necesita calibracin externa y es de bajo costo. Funciona en el rango de alimentacin comprendido entre 4 y 30 voltios. Como ventaja adicional, el LM35 no requiere de circuitos adicionales para su calibracin externa cuando se desea obtener una precisin del orden de 0.25 C a temperatura ambiente, y 0.75 C en un rango de temperatura desde 55 a 150 C. La baja impedancia de salida, su salida lineal y su precisa calibracin inherente hace posible una fcil instalacin en un circuito de control. Debido a su baja corriente de alimentacin (60uA), se produce un efecto de autocalentamiento reducido, menos de 0.1 C en situacin de aire estacionario. [/quote] El LM35 tiene un rango de 10mV/C o sea que para 1C voy a tener 10mV, para 2C 20mV y as hasta 1V (100C). Por lo tanto nuestro valor mximo que va a leer nuestro pic va a ser 1V, lo cual usando un Vref interno de 5V nos estarian sobrando 4V por asi decirlo y hace menos precisa la lectura (+/- 0.3 C) pero podriamos reducir este error usando una tension de referencia externa de 2.5V en el pin 5 del pic, pero para ello habria que indicar en el programa que se usara un Vref externo. FOTO DEL PROYECTO FUNCIONANDO: