Autor Tema: Controlador de Temperatura  (Leído 2280 veces)

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

Desconectado alejo8032

  • PIC10
  • *
  • Mensajes: 3
Controlador de Temperatura
« en: 02 de Enero de 2007, 20:52:41 »
 Hola a todos

Estoy incursionando con el c y me parece excelente, quiero proponerles este proyectito
 
tiene los siguientes objetivos

- Al pulsar un boton mostrar la temperatura Actual en un display de 7 seg 2 digitos
- Al pulsar un boton incrementar temperatura deseada
- al pulsar un boton decrementar temperatura deseada
- si la temperatura es menor en .5 grados activa un salida
- si es mayor en 0.5 grados desactiva la salida

el circuito incluye un lm35 

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Controlador de Temperatura
« Respuesta #1 en: 03 de Enero de 2007, 15:31:19 »
También te lo propondrás tú mismo, ¿no?  :shock:


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado Marioguillote

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: Controlador de Temperatura
« Respuesta #2 en: 03 de Enero de 2007, 15:48:59 »
Hola alejo !  :)  Bienvenido al foro !

Buen proyecto. Utilizando el buscador del foro, seguramente encontrarás mucho material para desarrollarlo.

Particularmente yo; le agregaría un dígito más, para leer la temperatura con décimas de grado. Multiplexar tres dígitos no te será complejo.
Y al primer botón, lo usaría para entrar en el modo set (ajustes) y salir de él.

Se vé prometedora la propuesta.
Seguramente, al hacer y publicar las primeras pruebas, van a aparecer amigos que te sumen más "agregados funcionales" y desafíos ( aparte de críticas, obvio  :D ) .

Éxitos !
Saludos
Mario

Desconectado quirogaareal

  • PIC16
  • ***
  • Mensajes: 180
Re: Controlador de Temperatura
« Respuesta #3 en: 04 de Enero de 2007, 13:13:51 »
Hola Ale :
Mira yo tambien soy novato y hace un tiempo termine un medidor con termocupla y lo publique  .
Esta en este link

http://www.todopic.com.ar/foros/index.php?topic=13583.0

Espero que te sea de ayuda

Saludos desde Cordoba Argentina
Recuerda : Si una mujer te ama de verdad no te pedira ni Matrimonio, Ni concubinato , Ni hijos, No te mentira , ni buscara que cambies de opinion con respecto a las tres primeras opciones.

Saludos

desde Cordoba Argentina

Desconectado alejo8032

  • PIC10
  • *
  • Mensajes: 3
Re: Controlador de Temperatura
« Respuesta #4 en: 04 de Enero de 2007, 20:53:05 »

Gracias por tu colaboracion me sera de mucha ayuda, hasta ahora estoy comenzando
a medida que lo haga voy mostrando avances :

Desconectado alejo8032

  • PIC10
  • *
  • Mensajes: 3
Re: Controlador de Temperatura
« Respuesta #5 en: 10 de Enero de 2007, 15:28:16 »
Hola a todos e avanzado un poco , revise el programa de la termocupla tengo un error decompilacion
itoa(temp,10, tempBCD);  me sale como indefinido

sin empargo hice algo pero con la Lcd no es mucho

#include <16f873.h>               //pic a utilizar
#device *=16
#device adc=8
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT,NOCPD, NOWRT,NODEBUG                  //No Debug mode for ICD
#use delay (clock=4000000)            //Fosc=4Mhz
#define use_portb_lcd TRUE
#include <vs_saa1064M.c>
#include <lcd.c> //libreria para lcd
#byte sale_c = 7
#use fast_io(C)

///PROGRAMA
void main(void)
{

char decimal, unidad, decena, centena,t1,t2,t3,t4,lm35;
   //setup_oscillator(OSC_4MHZ);         //configuracion del oscilador interno a 4MHz
set_tris_c(0b00000011);  // Puerta A se configura como entrada


t2 = 25;
lcd_init( ); //inicializamos lcd
lcd_putc("  Medidor de \n  temperatura");
delay_ms(1000);
lcd_putc("\f");


sale_c = 0;
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);

while(1)
{


   set_adc_channel(0);//seteo y lectura de termocupla 1
   delay_ms(100);
   t1=read_adc();
   lcd_putc("   Controlnet ");
   lcd_gotoxy(2,2);
   printf(lcd_putc,"t1:%u ",t1);

   lcd_gotoxy(9,2);
   printf(lcd_putc,"t2:%d ",t2);



   if(input(PIN_C0))
    {
      delay_ms(100);
      t2++;
      if(t2>30)
        t2=25;
    }
    if(input(PIN_C1))
    {
      delay_ms(100);
      t2--;
      if(t2<20)
        t2=25;
    }
    if(t1>t2)
    {
    output_high(PIN_C2);
    }
    else
    output_low(PIN_C2);
    }
}



 

anything