Sensor de temperatura (LM35) con tres niveles y dos ventiladores.

#1
Hola amigos, presento un inconveniente para realizar un proyecto electrónico. El proyecto consiste en implementar un cooler (2 ventiladores 12 Vdc) con tres niveles de temperatura(T) sensado con un LM35. Temperatura baja (T<40°C), temperatura media (40°<T<60° C) y temperatura alta (>60°C). Los dos ventiladores deberán trabajar proporcional al nivel de temperatura por ejemplo 50%, 75% y 100% respectivamente. Según mis investigaciones sé que debo utilizar primero un acondicionador de señal, luego un comparador ventana y un controlador para los ventiladores PWM con un 555. El problema es que no sé como acoplar el comparador ventana con el 555. Gracias espero me puedan ayudar. ...
 
Última edición:
#2
El acondicionador de señal puede ser solamente un amplificador operacional en modo no inversor, que te lleve el nivel de la señal del LM35 al proporcional que necesitas con respecto a la referencia que uses para los comparadores.
Buscá cómo hacer comparadores con amplificadores operacionales y el resto debería salir solo.

Saludos.
 
#4
El acondicionador de señal puede ser solamente un amplificador operacional en modo no inversor, que te lleve el nivel de la señal del LM35 al proporcional que necesitas con respecto a la referencia que uses para los comparadores.
Buscá cómo hacer comparadores con amplificadores operacionales y el resto debería salir solo.

Saludos.
hola amigo, Te saluda Antonio, una consulta, tengo un circuito de temperatura con lm35, deseo agregar mas niveles de control, puedo utilizar el nivel de tension de la salida inversora y agregar a varias etapas compradoras con diferentes set points de control? al hacer esto como me afectaría la medición del sensor, pienso que termino el circuito con los sensores y re calibro la ganancia de tensión en la etapa inversora y así continuar, que te parece, funcionaria asi? gracias por tu opinión
 
#7
dejo código y simulación abajo.



Código:
//TERMÓMETRO DIGITAL A PARTIR DE UN LM35



#include <16F877A.h>

#device adc=8

#device *=16

#FUSES, XT, NOPROTECT, NOWDT, PUT, NOLVP

#use delay (clock=4000000)

#include <lcd.c>

#use fast_io(A)

#use fast_io(D)

#use fast_io(B)

#use fast_io(C)

float temperatura, temp_final;

float factor=0.5882;

#bit PA0=0x05.0

#bit PB0=0x06.0

#bit PB1 =0x06.1           

#bit PB2=0x06.2

#bit PC3=0X07.0





//Funciones



void inicializar(){

   PA0=0; //Limpio Puerto

   set_tris_b(0X00);

   set_tris_a(0b00000001); //RA0 (Entrada)

   set_tris_c(0X00);

   //setup_adc_ports(A0_RA1_ANALOG_RA3_REF);

   setup_port_a(ANALOG_RA3_REF);

   setup_adc(ADC_CLOCK_INTERNAL);

   set_adc_channel(0);

   lcd_init();

   PB0 =0;

   PB1=0;             

   PB2=0;   

   PC3=0;



}



//Programa Principal



void main(){

   inicializar(); //Llamamos a inicializar

      while(TRUE){   //Se inicia ciclo sin fin



         if (temp_final>=10&&temp_final<=30)

         {

             PB0=1;

             PB1=0;

             PB2=0;

             PC3=0;

         }

         if (temp_final>=31&&temp_final<=50)                             

         {

            PB0=0;

            PB1=1;

            PB2=0;

            PC3=1;

         }

         if (temp_final>=51&&temp_final<=70)

         {

            PB0=0;

            PB1=0;

            PB2=1;

            PC3=1;

 

          }

      temperatura=read_adc();

      temp_final=temperatura*factor;

      lcd_gotoxy(1,1); //Posiciono cursor del LCD en posición (1,1)

      printf(lcd_putc, "TEMPERATURA=%f3.2Grados", temp_final); //Se imprimirá temp_final

                                                            //%=Indica que mandaremos a imprimir variable

                                                               //f=Variable de Tipo Flotante

                                                            //3=3 Cifras Enteros



                                                             //2=2 Cifras Decimales



   }

}
 

Adjuntos

#8
Hola...Para los que no usan o tienen instalado el C que tu usaste podrías subir el archivo ya compilado("hex") que no esta incluidos en el archivo "rar".

Saludos

Ric.
 
Última edición:
Arriba