Autor Tema: Muestra temperaturas =) LM35 y Pic16f877a  (Leído 8011 veces)

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

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Muestra temperaturas =) LM35 y Pic16f877a
« en: 08 de Noviembre de 2010, 10:06:02 »
bueno aqui les dejo un proyectito que he hecho con pic16f877a, este en verdad fue un pequeño ''Trabajito'' q me pidieron pero no es para nada serio, solo debia sensar las temperaturas de 4 sensores, compararlas con 2 referencias (una de temp alta y otra de baja) si estaba entre los rangos enciende un led verde y sino uno rojo.
Para setear los rangos presionamos (en proteus) el boton setear esperamos unos segudos y podremos subir o bajar la temperatura max y si presionamos de vuelta setear ajustaremos la minima,
cuando apretemos setear los cambios se guardan en la rom, tiene un menu q es intuitivo no va a ser falta explicarlo por ahora, si quieren ver las temperaturas de otros sensores deberan apretar subo o bajo dependiendo del sensor que quieran medir, en los sensores pueden observar que no estan conectados directamente, sino que les he hecho un circuito de un lazo de corriente de 4 a 20ma (que ofrece la hoja de datos del lm35), calibrados ya, en la vida real las resistencias de este circuito deben ser al 1% de tolerancia.
no es un gran aporte pero queria compartirlo con ustedes.
tambien espero comentarios y sugerencias ya que soy novato en estoo, y disculpen por el programa porque es muy largo y rustico jeje
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado wolfman77

  • PIC12
  • **
  • Mensajes: 82
    • Dos en la ruta
Re: Muestra temperaturas =) LM35 y Pic16f877a
« Respuesta #1 en: 12 de Noviembre de 2010, 11:47:21 »
Buenisimo! voy a probarlo haber si me da alguna idea para controla la temperatura de casa :D

saludos!
Volviendo al mundo de los PIC....

Desconectado Chrisbaf

  • PIC16
  • ***
  • Mensajes: 178
Re: Muestra temperaturas =) LM35 y Pic16f877a
« Respuesta #2 en: 13 de Noviembre de 2010, 15:28:45 »
gracias por compartir.... :lol:

Desconectado UNDERJULIO22

  • PIC10
  • *
  • Mensajes: 2
Re: Muestra temperaturas =) LM35 y Pic16f877a
« Respuesta #3 en: 10 de Febrero de 2012, 19:05:57 »
HOLA QUE TAL ME PODRIAS AYUDAR O UNA  DARME IDEA   PARA HACER UN TERMOSTATO tengo el PIC16F873 y lo quiero hacer con lm35 para sensar la temperatura, TTENGO Q HACER Q unos ventiladores  prendan cuando PASE CIERTA  temperatura  y adaptada  pero ya no se como hacerle para el programa en basic , ya tengo el display armado con el pic antes mensionado pero quisiera saber como hacer el otro circuito para poner el lm35 con 3 botones  para poder manipular  la temperatura y los ventiladores prendan cuando se pase de cierta temperatura espero me puedas ayudar gracias por tu atencion,  el circuito con el display y el pic ya lo tengo listo pero necesito el circuito del lm35 botones espero haberme explicado bien de antemano gracias por tu atencion

Desconectado josezumino

  • PIC10
  • *
  • Mensajes: 4
Re: Muestra temperaturas =) LM35 y Pic16f877a
« Respuesta #4 en: 27 de Abril de 2014, 18:18:58 »
Hola korpaztk .!
    Espero tener suerte y que leas este mensaje pronto. Te cuento que en estos días estuve leyendo mucho del sensor LM35 y en el datasheet y fue cuando encontré tu APORTE muy lindo y completo. Vos para ser un novato sabés un montón. Tu esquema como circuito acondicionador para trabajar con corriente y no tensión está excelente acondicionador/conversión. El circuito que estuve simulando en PROTEUS te lo adjunto al mail. He modificado las resistencias y coloqué preset. Probé con diferentes valores hasta entender cuales eran los trabajos de cada una. Ganancia / Amplitud / Regulación fina. He logrado acomodar el circuito en el rango de temperatura que necesitaba desde los –30 ºC hasta los 101 ºC.
    Los valores son
            a) –30 ºC obtengo 4mA con un voltaje de 1v
            b)  101ºC obtengo 20mA con un voltaje de 5v
    Hasta allí todo perfecto. Logré lo que necesitaba. Mi problema ahora es que no entiendo cual es la formula que debo colocar en el código .C (CCS) de mi software para visualizar el mismo valor del LM35 en el display LCD de mi circuito. Adapte mi esquema a tu circuito, pero no coincide la lectura del LM35 con lo que visualiza el LCD. Lamentablemente no entiendo mucho el tema de la entrada del AD. He notado cuando el LM35 REGISTRA 65 ºC el display muestra la misma temperatura. Es como si la línea de lectura y el cálculo en el PIC coinciden, pero si luego subo o bajo se aleja de ese valor. Es obvio que el problema se encuentra en adaptar la formula para el nuevo rango (-30 ºC a 100 ºC).
    Según el datasheet para el circuito propuesto como acondicionador tiene el rango de 0 ºC a 100 ºC lo que correspondería a un rango de 0v a 1.00v. Mi voltaje ahora es de 1v a 5v para las temperaturas de –30 ºC a 100 ºC.
    En tu caso el rango de temperaturas está definido para -20ºC y 92 ºC. ¿¿¿Me podrías explicar como implemente la formula para poder leer los valores de mi esquema???
    ¿Me orientas? porque la verdad que estoy leyendo tantas cosas y ya estoy algo mareado y ligeramente desorientado.
Tu rutina para la lectura es:

void lee_canales_ad()       //Rutina para leer los sensores
{   for(k=0;k<4;k++)               
     {   set_adc_channel(k);      //Elijo el canal a leer
     delay_us(20);         //Espero 20 microsegundos para que se elija bien el canal
     ecu=read_adc();      //En temper_1 se guarda el valor que obtengamos del conversor
     ecu=((ecu*488)/1000);   //Aqui tenemos la temperatura en milivoltios (5/1024=4.88 e-3) conversor de 10 bits
     guarda[k]=ecu;
      }
lcd_gotoxy(1,1);
lcd_putc("T:");                     
}   

No entiendo porque lo divides por 1000 cuando en otros foros leí que se devide por 1023 y 1024.
Gracias
« Última modificación: 28 de Abril de 2014, 15:37:36 por josezumino »