#include <16f877a.h>
#fuses xt,NOPROTECT
#device ADC=8
#use delay(clock=4M)
#include "DRIVER_DHT22.c"
#include "lcd.c"
#define use_portd_lcdTRUE
int8 temp1;
float temp,dhthum,dhttemp;
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
set_tris_a(0b111111); // comprobar puertos
set_tris_b(0b00000000);
set_tris_d(0b00000000);
output_high(pin_b0),output_high(pin_b1),output_high(pin_b2),output_high(pin_b3),output_high(pin_b4),output_high(pin_b5),output_high(pin_b6),output_high(pin_b7);
lcd_init(); //INICIALIZA EL LCD
lcd_putc(" Planata de "); //MUESTRA EN PANTALLA
lcd_gotoxy(2,2); //COLOCA EL CURSOR EN COLUMNA 2 FILA 2
lcd_putc(" secado "); //IMPRIME EN PANTALLA
delay_ms(500); //ESPERA 2 SEGUNDOS
lcd_putc("\f"); //LIMPIA PANTALLA
while(true){
float dhthum,dhttemp;
setup_adc(ADC_CLOCK_INTERNAL);
Setup_adc_ports(RA0_ANALOG); //PONE PUERTO RA0 ANALOGO
set_adc_channel(0); // INDICA EL PIN A LEER RA0
delay_us(20);
temp1=read_adc(); //LEE EL VALOR DEL PIN
temp=(temp1*0.01960784314*100); //CONVIERTE EL VALOR LEIDO DE HEXA AL REAL el numero 0.01960784314 viene de dividir (5/255) y el resultado se multiplica por 100 para alcanzar 150 grados
lcd_gotoxy(1,1);
printf(lcd_putc
,"Temp= %2.2f C",temp
); //MUESTRA EN EL LCD EL VALOR DE TEMPERATURA delay_ms(500);
leer_dht22(dhthum,dhttemp);
delay_ms(10);
lcd_gotoxy(1,2);
printf(lcd_putc
,"Humedad= %2.1f %%",dhthum
); delay_ms(1);
while(input(pin_a2)==0){
float dhthum,dhttemp;
setup_adc(ADC_CLOCK_INTERNAL);
Setup_adc_ports(RA0_ANALOG); //PONE PUERTO RA0 ANALOGO
set_adc_channel(0); // INDICA EL PIN A LEER RA0
delay_us(20);
temp1=read_adc(); //LEE EL VALOR DEL PIN
temp=(temp1*0.01960784314*100); //CONVIERTE EL VALOR LEIDO DE HEXA AL REAL el numero 0.01960784314 viene de dividir (5/255) y el resultado se multiplica por 100 para alcanzar 150 grados
lcd_gotoxy(1,1);
printf(lcd_putc
,"Temp= %2.2f C",temp
); //MUESTRA EN EL LCD EL VALOR DE TEMPERATURA delay_ms(500);
leer_dht22(dhthum,dhttemp);
delay_ms(10);
lcd_gotoxy(1,2);
printf(lcd_putc
,"Humedad= %2.1f %%",dhthum
); delay_ms(1);
if(input(pin_a5)==1){ //CONDICION DE TEMPERATURA Y SENSOR DE HUMEDAD
lcd_gotoxy(1,1);
printf(lcd_putc
,"Temp= %2.2f C",temp
); //MUESTRA EN EL LCD EL VALOR DE TEMPERATURA delay_ms(500);
output_low(pin_b5);//ENERGIZA MOTOR DE CINTA
delay_ms (3000);
output_low(pin_b0); //ABRE TOLVA
delay_ms (500);
output_high(pin_b0);
delay_ms (500);
output_low(pin_b2); //CIERRA TOLVA
delay_ms (500);
output_high(pin_b2);
output_low(pin_b4); //LEVANTA BRAZO DE SALIDA
delay_ms(500);
output_high(pin_b4);
delay_ms(500);
leer_dht22(dhthum,dhttemp);
delay_ms(10);
lcd_gotoxy(1,2);
printf(lcd_putc
,"Humedad= %2.1f %%",dhthum
); delay_ms(1);
while(input(pin_a2)==0){
lcd_gotoxy(1,1);
printf(lcd_putc
,"Temp= %2.2f C",temp
); //MUESTRA EN EL LCD EL VALOR DE TEMPERATURA delay_ms(500);
leer_dht22(dhthum,dhttemp);
delay_ms(10);
lcd_gotoxy(1,2);
printf(lcd_putc
,"Humedad= %2.1f %%",dhthum
); delay_ms(1);
if(temp<120&&dhthum>50){ //CONDICION DE TEMPERATURA Y SENSOR DE HUMEDAD
output_low(pin_b3),output_high(pin_b0);//ENERGIZA CALEFACTOR//TOLVA SE MANTIENE CERRADA//
output_low(pin_b4); //LEVANTA EL BRAZO DE SALIDA
delay_ms(500);
output_high(pin_b4);
delay_ms(500);
} else {
output_high(pin_b3);
}
if(temp<120&&dhthum>50)
{ //CONDICION DE TEMPERATURA Y SENSOR DE HUMEDAD
output_low(pin_b3),output_high(pin_b0);//ENERGIZA CALEFACTOR//TOLVA SE MANTIENE CERRADA
output_low(pin_b4);
delay_ms(500);
output_high(pin_b4);
delay_ms(500);
} else {
output_high(pin_b3);
}
if(temp>120&&dhthum>50)
{ //CONDICION DE TEMPERATURA Y SENSOR DE HUMEDAD
output_high(pin_b3),output_high(pin_b0);//DESNERGIZA CALEFACTOR//TOLVA SE MANTIENE CERRADA
output_low(pin_b4);
delay_ms(500);
output_high(pin_b4);
delay_ms(500);
} else {
output_low(pin_b3);
}
if (temp>120&&dhthum>50)
{
output_low(pin_b4);
delay_ms(500);
output_high(pin_b4);
delay_ms(500);}
if (temp>120&&dhthum<50)
{
output_high (pin_b3);//DESENERGIZA CALEFACTOR
delay_ms(3000);
output_low(pin_b1);// BAJA BRAZO DE SALIDA DE MATERIAL
delay_ms (500);
output_high(pin_b1);// DESCONESTA BRAZO DE SALIDA DE MATERIAL
delay_ms(500);
output_high(pin_b0),output_high(pin_b1), output_high(pin_b2);
output_high(pin_b3), output_high(pin_b4), output_high(pin_b5);
output_high(pin_b6),output_high(pin_b7);
lcd_putc("\f");
}
lcd_putc("\f");
}
output_high(pin_b0),output_high(pin_b1), output_high(pin_b2);
output_high(pin_b3), output_high(pin_b4), output_high(pin_b5);
output_high(pin_b6),output_high(pin_b7);
lcd_putc("\f");
}
}
}
}