hola, les cuento... estoy realizando un proyecto para el colegio, llevo muy poco tiempo en esto de la programacion y no se como resolver el problema que tengo.
el proyecto se trata de un invernadero automatizado; el cual consta de un control de temperatura usando el sensor(lm35) y un pic16f877A.
si dentro del invernadero llegase a haber entre 0 y 26 grados se tiene que encender un foco indicandomelo en un lcd(16x2),
y si sobrepasa los 33 grados se debe activar un ventilador, igualmente indicandomelo en el lcd.
el problema es el siguiente:
al hacer el cambio de palabras en el lcd, las letras se mezclan y no se porque sucede eso.
si alguien pudiese ayudarme se los agradeceria, aqui dejo el codigo(lenguaje c):
#INCLUDE <16F877A.H>
#DEVICE ADC=10
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOWDT,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP
#include <lcd.c>
#define fast_io(port_B)
#define PORTB 0x06
#bit Pata_motor = PORTB.0
#bit Pata_foco = PORTB.1
#BYTE PORTD= 8 //LCD 16X2
VOID MAIN(){
LCD_INIT();
float resultado, temperatura;
float constante=0.49;
setup_adc_ports(AN0);
setup_adc(adc_clock_internal);
set_adc_channel(0);
while(true){
resultado=read_adc();
temperatura=resultado*constante;
lcd_gotoxy(1,2);
printf(lcd_putc,"%2.1fC ",temperatura);DELAY_MS(200);
if((temperatura>=33)&&(temperatura<=50))
{
lcd_gotoxy(1,1);
lcd_putc("ALTA TEMPERATURA");
lcd_gotoxy(7,2);
lcd_putc("VENTILADOR");
output_high(pin_b0);
output_low(pin_b1);
}
else if((temperatura>=0)&&(temperatura<=26))
{
lcd_gotoxy(1,1);
lcd_putc("BAJA TEMPERATURA");
lcd_gotoxy(7,2);
lcd_putc("FOCO");
output_low(pin_b0);
output_high(pin_b1);
}
ELSE {
lcd_gotoxy(1,1);
lcd_putc("TEMPERATURA:");
lcd_gotoxy(7,2);
lcd_putc("GRADOS");
output_low(pin_b0);
output_low(pin_b1);
printf(lcd_putc,"\n"); // Borro LCD
}
} }