Saludos.
Estoy con un super problemon, tengo este código (yo lo hice) que controla temperatura y humedad de un invernadero, bueno, lo hice por etapas, primero el testeo de esas variables, pues funcionava bien, procedi a hacer el control de esas variables, es decir, querer hacer funcionar los actuadores (motores para aire acondicionado, bomba de agua y demás), al ingresar el código para ello y las variables necesarias, pues..... me da un monton de errores (57), me dice que no declare ninguna variable, no me reconoce ninguna. Estoy utilizando la version 4.084 del compilador, para hacer algunos otros proyectos, eso me funciono muy bien, además que lo tengo bien parchado.
no se cual sea el error, , ya prove cambiando el tipo de variables, pero nada.
Estoy con un super problemon, tengo este código (yo lo hice) que controla temperatura y humedad de un invernadero, bueno, lo hice por etapas, primero el testeo de esas variables, pues funcionava bien, procedi a hacer el control de esas variables, es decir, querer hacer funcionar los actuadores (motores para aire acondicionado, bomba de agua y demás), al ingresar el código para ello y las variables necesarias, pues..... me da un monton de errores (57), me dice que no declare ninguna variable, no me reconoce ninguna. Estoy utilizando la version 4.084 del compilador, para hacer algunos otros proyectos, eso me funciono muy bien, además que lo tengo bien parchado.
Código [Seleccionar]
#include <16F877A.h>
#device adc = 10
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT
#use delay(clock=4000000)
#use fast_io(C)
#use fast_io(D)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N)
#include <LCD4x20.C>
void main()
{
set_tris_c(0xB0);
set_tris_d(0xC0);
//DECLARANDO VARIABLES DE CONTROL
short control;
short control1;
short controlh;
//FIN VARIABLES DE CONTROL
int16 hum1;
int16 hum2;
int16 hum3;
int16 temp1;
int16 temp2;
float tempt1;
float tempt2;
float humt1;
float humt2;
float humt3;
float humS;
float tempS;
float RH;
float p;
setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
control = 0;
control1 = 0;
controlh = 0;
while(1)
{
set_adc_channel(0); //CANAL 0
delay_us(10);
temp1 = (read_adc() * 100);
set_adc_channel(1); //CANAL 1
delay_us(10);
temp2 = (read_adc() *100);
tempt1 = temp1 * 0.0049;
tempt2 = temp2 * 0.0049;
tempS = (tempt1 + tempt2) / 2.0; //TEMPERATURA A MANEJAR
//*********** RUTINA DE CONTROL DE TEMPERATURA ****************
if (tempS >= 28.0)
{
if (control == 0) //AQUI TESTEAR EL RC3
{
output_high(PIN_C1);
// ir a sube y luego regresar
delay_ms(3000);
// ir a paraA y luego regresar
output_low(PIN_C1);
control = 1; //aqui ver el RC3
}
}
if (tempS <= 20.0)
{
if (control == 1)
{
output_high(PIN_C3);
//ir a baja y regresar
delay_ms(3000);
//ir a paraB y regresar
output_low(PIN_C3);
control = 0;
}
output_high(PIN_C2); //AIRE CALIENTE
control1 = 1;
}
if (control1 == 1)
{
if (tempS <= 25.0)
{
output_high(PIN_C2); //AIRE CALIENTE
} else
{
output_low(PIN_C2); //APAGA AIRE CALIENTE
control1 = 0;
}
}
//************ FIN RUTINA CONTROL TEMPERATURA *****************
set_adc_channel(2); //CANAL 2
delay_us(10);
hum1 = read_adc();
set_adc_channel(3); //CANAL 3
delay_us(10);
hum2 = read_adc();
set_adc_channel(4); //CANAL 4
delay_us(10);
hum3 = read_adc();
//hum1t = (5.0 * hum1) / 1024.0;
humt1 = hum1 * 0.0049;
humt2 = hum2 * 0.0049;
humt3 = hum3 * 0.0049;
humS = (humt1 + humt2 + humt3) / 3;
RH = (humS - 0.958) / 0.0307; // HUMEDAD HA MANEJAR
//******* RUTINA CONTROL DE HUMEDAD ****************
if (RH >= 80.0)
{
output_low(PIN_C0);
}
if (RH <= 75.0)
{
output_high(PIN_C0);
controlh = 1;
}
if (controlh == 1)
{
if (RH <= 77.0)
{
output_high(PIN_C0);
}else
{
output_low(PIN_C0);
controlh = 0;
}
}
//*********** FIN RUTINA CONTROL HUMEDAD **************
//printf(lcd_putc, "\fADC = %4ld", q);
//printf(lcd_putc, "\nVoltage = %01.2fV", p);
printf(lcd_putc, "\f TEMPERATURA ");
printf(lcd_putc, "\n %01.2f C", tempS);
printf(lcd_putc, "\n HUMEDAD ");
printf(lcd_putc, "\n%01.2f PHS", RH);
//TRANSMISION SERIAL
printf("ADC = %4ld", tempt1);
printf(" Temperatura = %01.2f C\r", tempS); // El \r permite cambiar de línea
printf("ADC = %4ld", hum3);
printf(" humedad = %01.2f RH\r", RH);
delay_ms(100);
}
}
no se cual sea el error, , ya prove cambiando el tipo de variables, pero nada.