TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: josefe en 21 de Agosto de 2012, 20:31:41
-
Buenas, He encontrado un muy buen proyecto sobre un termometro digital con un lm35, el problema que tengo es que he tratado de programar la funcion para que al llegar a ciertos grados centigrados me apague un bombillo de 100 watts. Les agradesco toda su ayuda.
Se emplea
-Sensor de Temperatura LM35
-PIC 16F877A
-XTal=4MHz
-R=100 Ohms
-R=10K Ohms
-C=0.1uF
-LCD=16x2
(http://4.bp.blogspot.com/-Wpyza0kjKf8/UDQZ49PcF2I/AAAAAAAAAQI/aB44Xcij_m0/s1600/Sin+t%C3%ADtulo.png)
Codigo
unsigned char ch;
unsigned int adc_rd;
char *text,*text1;
long tlong;
int i,j;
void main() {
INTCON = 0;
Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0);
LCD_Cmd(LCD_CURSOR_OFF);
LCD_Cmd(LCD_CLEAR);
for(i=0;i<5;i++){
LCD_Cmd(LCD_CLEAR);
text = "INGENIERIA";
LCD_Out(1,i,text);
Delay_ms(100);
}
text1 = "ELECTRONICA";
LCD_Out(2,3,text1);
ADCON1 = 0x82;
TRISA = 0xFF;
Delay_ms(1000);
LCD_Cmd(LCD_CLEAR);
text = "Temperatura:";
for(j=16;j>0;j--){
LCD_Cmd(LCD_CLEAR);
LCD_Out(1,j,text);
Delay_ms(100);
}
while (1) {
adc_rd = ADC_read(2);
tlong = (long)adc_rd * 5000;
tlong = tlong / 1023 - 40;
ch = tlong / 1000;
if(ch==0)
LCD_Chr(2,6,' ');
else
LCD_Chr(2,6,48+ch);
ch = (tlong / 100) % 10;
LCD_Chr_CP(48+ch);
ch = (tlong / 10) % 10;
LCD_Chr_CP(48+ch);
LCD_Chr_CP('.');
ch = tlong % 10;
LCD_Chr_CP(48+ch);
LCD_Chr_CP('C');
Delay_ms(200);
}
}
-
Deberias comparar la temperatura, guardada en Tlong, con otra variable, si Tlong es mayor, apagas la salida del bombillo, si es menor la enciendes.
Para hacer estas comparaciones, puedes utilizar sentencias if-then.
-
A muchas gracias, voy a probar y luego les cuento
Deberias comparar la temperatura, guardada en Tlong, con otra variable, si Tlong es mayor, apagas la salida del bombillo, si es menor la enciendes.
Para hacer estas comparaciones, puedes utilizar sentencias if-then.