Autor Tema: ayuda con control de temperatura  (Leído 8329 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado djblackmagic

  • PIC10
  • *
  • Mensajes: 12
Re: ayuda con control de temperatura
« Respuesta #15 en: 24 de Febrero de 2011, 00:39:43 »
ok, mira: el valor de pot=pot*50/1023; lo sque del foro y es para obtener la conversion a grados centigrados y es de la formula: T°=Vref*Escala*read_adc()/(2^n-1)

el otro valor: t1=pot-(pot*20/100); es ´porque t1 es el 20% por debajo de el valor de pot y t2 es el 20% por arriba del valor de pot. esto lo hice porque cuando la temperatura que sense el lm35 este 20% arriba que la del potenciometro active una salida, y cuando este 20% por debajo del valor del potenciometro active otra, ojala y me hayas entendido, y en cuanto al capacitor, la verdad es que no se lo puse, y como va el capacitor, entre vcc y masa , o a que te refieres con cerca de los pines de alimentacion del micro?

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: ayuda con control de temperatura
« Respuesta #16 en: 24 de Febrero de 2011, 00:53:44 »
exactamente entre vcc y masa, pero lo mas cerca del micro posible, no se si tendras osciloscopio, yo tengo uno portatil y bueno me llevaba loco ese problema, hasta que medi los pines de alimentacion y aparecia un ruido generado por el cristal y ahi fue cuando inserte mi capacitor y me soluciono todo.
ahora entiendo bien lo de tus operaciones jajaja. cada dia se aprende algo nuevo en este foro por pequeño que sea.
entonces ahora me tiro mas claramente a que hay un ruido electrico, y que deberias desabilitar las entradas analogicas que no utilices.
y los delay para las lecturas de las entradas analogicas lo dejaria en delay_us(20), porque en milisegundos es muy lento, en microsegundos y 20 es mas que suficiente.
#use standard_io(b)
#use fast_io(a)

y nose me ocurre otra cosa

cualquier cosilla, estamos en contacto...

Saludos!!
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado djblackmagic

  • PIC10
  • *
  • Mensajes: 12
Re: ayuda con control de temperatura
« Respuesta #17 en: 24 de Febrero de 2011, 01:02:43 »
ok, mira he intentado habilitar nada mas ra0 y ra1 como entradas analogicas, sin embargo a la hora de compilar el programa me marca error, la verdad no se porque, asi que tuve que habilitar todas y asi fue como jalo.

estoy mirando el comportamiento del circuito y veo que el descontrol lo hace cuando las dos señales se aproximan, es decir ahi es cuando empieza a activar una salida y la otra, intercambiandose, como si el pic no supiera para cual lado irse jajaja, checare lo del capacitor y cambiare a 20 us..saludos y gracias

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: ayuda con control de temperatura
« Respuesta #18 en: 24 de Febrero de 2011, 18:02:50 »
Hola djblackmagic, fijate en el archivo .h del PIC.  allí te muestra cuales entradas análogas puedes activar a la vez.  También lo puedes ver en la hoja de datos del PIC.

Saludos!

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: ayuda con control de temperatura
« Respuesta #19 en: 24 de Febrero de 2011, 21:01:04 »
y djblackmagic como te fue ahora con tu experiencia?

Saludos!
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado djblackmagic

  • PIC10
  • *
  • Mensajes: 12
Re: ayuda con control de temperatura
« Respuesta #20 en: 24 de Febrero de 2011, 23:20:58 »
que tal, pues de tanto probar y probar logre que mas o menos funcionara, y pues al parecer para las condiciones que necesito anda bien, lo que hice fue solo hacer el retardo mas grande en cada comparacion y al parecer con eso,..... de todos modos sigo abierto a sugerencias para mejorarlo...gracias y saludoss

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: ayuda con control de temperatura
« Respuesta #21 en: 24 de Febrero de 2011, 23:48:37 »
Código: [Seleccionar]
#include <16f876a.h>
#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOPUT
#use delay(clock=4000000)
#use fast_io(a)
#use standard_io(b)
#define FOCO PIN_B2
#define CALENTARCEL PIN_B1
#define ENFRIARCEL PIN_B0
#define COMPRESOR PIN_B3

float pot,sensor,t1,t2;

void main(void) {
set_tris_b(0x00);
set_tris_a(0xff);
setup_adc_ports(ALL_ANALOG);//entrada 0 y 1 como analogicas
setup_adc(ADC_CLOCK_INTERNAL); //configura el converso




while(true){

// Lectura del canal 0 por AN0
set_adc_channel(0);
delay_us(20);
pot=read_adc();
delay_us(20); //para que se estabilice
pot=pot*50/1023;
delay_ms(50);
t1=pot-(pot*20/100);
delay_ms(50);
//lectura del canal 1 por AN1
set_adc_channel(1);
delay_ms(20);
sensor=read_adc();
delay_ms(20);
sensor=sensor*50/1023;
delay_ms(50);
t2=pot+(pot*20/100);
delay_ms(50);

 if(sensor<t1)//prende foco
   {
    output_high(foco);//se prende foco
    output_low(compresor);//esta en apagado compresor
    output_low(enfriarcel);//apagada la parte que enfria de la celda
    output_low(calentarcel);//apagada la parte que calienta de la celda
    //delay_ms(100);
   }
   if (sensor>=t1 && sensor<=t2)
    {
    output_low(compresor);
    output_low(foco);
    //delay_ms(100);

     if(pot>=sensor)//calentar
       {
        output_low(enfriarcel);
        output_high(calentarcel);
        output_low(foco);
        output_low(compresor);
        //delay_ms(100);
       }
     if(pot<sensor)//enfriar
       {
        output_high(enfriarcel);
        output_low(calentarcel);
        output_low(foco);
        output_low(compresor);
       //delay_ms(100);
       }
     if(pot==sensor)//no hagas nada
       {
        output_low(enfriarcel);
        output_low(calentarcel);
        output_low(foco);
        output_low(compresor);
       // delay_ms(100);
        }
 }
 if(sensor>=t2)
   {
   output_low(foco);
   output_high(compresor);
   output_low(enfriarcel);
   output_low(calentarcel);
  // delay_ms(100);
  }


}
}

yo lo he probado asi con mi pequeño 16f877a, y por lo que interprete del circuito funciona bastante bien, no tuve inconvenientes con mi micro y el ruido...
me surge otra duda ahora..
el circuito donde lo tienes montado??
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado djblackmagic

  • PIC10
  • *
  • Mensajes: 12
Re: ayuda con control de temperatura
« Respuesta #22 en: 25 de Febrero de 2011, 20:27:36 »
que tal, pues lo he montado en una protoboard, para hacer las pruebas , despues cuando lo arme ya seria en un circuito impreso, que raro que te funciona bien, a mi me da muchos problemas

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: ayuda con control de temperatura
« Respuesta #23 en: 26 de Febrero de 2011, 11:32:06 »
bueno, ahi puede estar el pequeño gran problema, con las protoboard te puedes esperar cualquier cosa, pero cualquiera, yo he comprado hasta la mas cara y me han traido siempre problemas, que por el ruido, que por los contactos, que la corriente y bla bla bla.
asi que ese puede ser otro inconveniente que puedes tener, quisiera que algun administrador venga a revisar y dar su opinion... (pienso en voz alta jeje)...
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: ayuda con control de temperatura
« Respuesta #24 en: 26 de Febrero de 2011, 12:47:01 »
Hola djblackmagic, uno de los problemas que le veo al circuito que subiste en proteus y también a tu código, es que tienes como voltaje de referencia para las entradas análogas a V+ (5V), por lo que en la práctica ves tanta inestabilidad.  Te recomendaría un circuito como este (Respuesta #3), que usa una referencia de voltaje más baja.
También creo que estaría bien hacer lo que te sugiere korpaztk en usar las variables que toman los valores de ADC (pot y sensor) como variables int16.

Saludos!
« Última modificación: 26 de Febrero de 2011, 12:56:56 por bmb »

Desconectado djblackmagic

  • PIC10
  • *
  • Mensajes: 12
Re: ayuda con control de temperatura
« Respuesta #25 en: 27 de Febrero de 2011, 20:05:58 »
gracias por sus consejos y pues lo que me resta es probar cada una de sus sugerencias, voy a checarlo con lo del circuito para el voltaje de referencia y lo de las declaracion de las varibles, saludos despues comento reultados, gracias de nuevo