bueno quizas a muchos electronicos o estudiantes... alguna vez se han preguntado como hacer in termometro con un pic... bueno les explico un poco:
El circuito se basa en 2 componentes principales el sensor de temperatura LM35 y el PIC 16F887. El LM35 es un sensor de temperatura con una precisión calibrada de 1ºC y un rango que abarca desde -55º a +150ºC. Lo que quiere decir que por cada 1ºC en la variacion de la temperatura, el sensor en su salida obtendra una variacion de 10 mV. Por ejemplo si la temperatura es de -55ºC podemos obtener -550mV y si fuera de 150ºC la salida seria 1500mV. Este voltaje es el que se inserta al PIC 16F887 el cual a traves de su conversor A/D mostrara los datos en el LCD.
ahora les mostrare el codigo para BASIC.. MikroBasic
program LM35_Sensor
dim LCD_RS as sbit at LATB4_bit
LCD_EN as sbit at LATB5_bit
LCD_D4 as sbit at LATB0_bit
LCD_D5 as sbit at LATB1_bit
LCD_D6 as sbit at LATB2_bit
LCD_D7 as sbit at LATB3_bit
dim LCD_RS_Direction as sbit at TRISB4_bit
LCD_EN_Direction as sbit at TRISB5_bit
LCD_D4_Direction as sbit at TRISB0_bit
LCD_D5_Direction as sbit at TRISB1_bit
LCD_D6_Direction as sbit at TRISB2_bit
LCD_D7_Direction as sbit at TRISB3_bit
const VREF as byte = 5.0
dim temp_res as word
dim temp as float
dim txt as string[15]
main:
ANSELB = 0
ANSELE = 0x02
TRISE1_bit = 1
ADC_Init()
Lcd_Init()
Lcd_Cmd(_LCD_CLEAR)
Lcd_Cmd(_LCD_CURSOR_OFF)
Lcd_Out(1, 1, "Temperatura :"
Lcd_Chr(2,8,223)
Lcd_Chr(2,9,"C"
temp_res = 0
while TRUE
temp_res = ADC_Get_Sample(6)
temp = (temp_res * VREF)/10.240
FloatToStr(temp, txt)
txt[4] = 0
Lcd_Out(2,3,txt)
Delay_ms(300)
wend
end.
El circuito se basa en 2 componentes principales el sensor de temperatura LM35 y el PIC 16F887. El LM35 es un sensor de temperatura con una precisión calibrada de 1ºC y un rango que abarca desde -55º a +150ºC. Lo que quiere decir que por cada 1ºC en la variacion de la temperatura, el sensor en su salida obtendra una variacion de 10 mV. Por ejemplo si la temperatura es de -55ºC podemos obtener -550mV y si fuera de 150ºC la salida seria 1500mV. Este voltaje es el que se inserta al PIC 16F887 el cual a traves de su conversor A/D mostrara los datos en el LCD.
ahora les mostrare el codigo para BASIC.. MikroBasic
program LM35_Sensor
dim LCD_RS as sbit at LATB4_bit
LCD_EN as sbit at LATB5_bit
LCD_D4 as sbit at LATB0_bit
LCD_D5 as sbit at LATB1_bit
LCD_D6 as sbit at LATB2_bit
LCD_D7 as sbit at LATB3_bit
dim LCD_RS_Direction as sbit at TRISB4_bit
LCD_EN_Direction as sbit at TRISB5_bit
LCD_D4_Direction as sbit at TRISB0_bit
LCD_D5_Direction as sbit at TRISB1_bit
LCD_D6_Direction as sbit at TRISB2_bit
LCD_D7_Direction as sbit at TRISB3_bit
const VREF as byte = 5.0
dim temp_res as word
dim temp as float
dim txt as string[15]
main:
ANSELB = 0
ANSELE = 0x02
TRISE1_bit = 1
ADC_Init()
Lcd_Init()
Lcd_Cmd(_LCD_CLEAR)
Lcd_Cmd(_LCD_CURSOR_OFF)
Lcd_Out(1, 1, "Temperatura :"
Lcd_Chr(2,8,223)
Lcd_Chr(2,9,"C"
temp_res = 0
while TRUE
temp_res = ADC_Get_Sample(6)
temp = (temp_res * VREF)/10.240
FloatToStr(temp, txt)
txt[4] = 0
Lcd_Out(2,3,txt)
Delay_ms(300)
wend
end.

