Microcontroladores - LM35 con microcontrolador

 
Vista:

LM35 con microcontrolador

Publicado por FMartinez (1 intervención) el 09/12/2016 22:22:55
Hola, estoy realizando un circuito con un pic18f4550, el cual quiero controlar la temperatura y el encendido y apagado de unos focos, todo a través de un modulo de bluetoth, el problema viene que solo me muestra la lectura de la temperatura hasta q le envio un dato, es decir, hasta q yo enciendo o apago un foco el micro me muestra la lectura del lm35, quisiera q me ayudaran con el codigo en C para q me este enviando constantemente la temperatura y poder activar o desactivar los focos, este es el codigo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <18f4550.h>
#use delay(crystal =4MHz)
#include <string.h>
 
#fuses HS
#fuses NOPROTECT
#fuses NOPUT
#fuses NOWDT
#fuses MCLR
 
#use rs232(UART1, baud= 9600, xmit=pin_c6, rcv=pin_c7, parity=n, bits=8, stop=1)
#use standard_io(b)
#use standard_io(a)
 
#define lled1   pin_b0
#define led2    pin_b1
 
char dato;
float temperatura;
long valor;
 
 
}
 
void main()
{
 
 
   while(true)
   {
 
 
      dato=getc();
 
      setup_adc(adc_clock_internal);
      setup_adc_ports(all_analog);
      delay_us(20);
 
      set_adc_channel(0);
      delay_us(50);
      valor=read_adc();
      //temperatura=(0.488758*(float)valor);
      temperatura=(0.48875*(float)valor);
      printf("%2.1f\n\r",temperatura);
      delay_ms(2000
 
      switch (dato)
      {
         case 'a':
            output_high(led);
         break;
 
         case 'b':
            output_high(led2);
         break;
      }
   }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder