Autor Tema: Termómetro  (Leído 1524 veces)

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

Desconectado Carabobo1

  • PIC12
  • **
  • Mensajes: 51
Termómetro
« en: 26 de Julio de 2012, 17:32:48 »
#include <16F877A.h>
#device adc=10 //Usa resolución de 10 bits
#use delay(clock=4000000)
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect

#include "lcd.c"
#use standard_io (D)


void main (void)
{
float temper,medicion;

lcd_init();                //Inicia LCD
lcd_putc(" Termometro\n"); //Saca texto
lcd_putc(" con LM35");     //Saca texto
delay_ms(2000);
lcd_putc("\f");            //Limpia pantalla
lcd_putc("Temperatura\n"); //Saca texto
lcd_putc("actual");        //Saca texto
delay_ms(1000);
lcd_gotoxy(14,2);          //Acomoda cursor LCD
lcd_putc("oC");

while (1)
{

lcd_gotoxy(8,2); //Acomoda cursor LCD
lcd_putc(" ");   //Limpia ese sector de pantalla
lcd_gotoxy(8,2); //Acomoda cursor LCD


setup_adc (adc_clock_internal);

setup_adc_ports (all_analog);

set_adc_channel (0);   //Elige canal a medir RA0
delay_us (20);
medicion=read_adc ();  //Hace conversión AD
setup_adc (adc_off);   //Apaga ADC

temper=medicion*(0.48875); //Pasa binario a °C

//////////////////////////////////////////////////////////////////////////////////
// el "0.48875" sale de dividir 5/1023 y el resultado de eso multiplicarlo por 100
// el 5 sale de los 5 voltios aplicado a el voltage de referencia, los 1023 salen
// de los 10 bit de resolucion del conversor analogico digital que seleccionamos.
// Si utlizaramos la resolucion de 8 bist del conversor analogico digital, la
// formula fuera (5/255)*100 ya que con 8 bits el numero maximo posible es de 0-255
//////////////////////////////////////////////////////////////////////////////////

printf(lcd_putc,"%02.1f",temper); //xxx.x °C
delay_ms (1000);
}
}
« Última modificación: 14 de Agosto de 2012, 14:39:50 por Carabobo1 »

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Solicito Ayuda con este Programa
« Respuesta #1 en: 26 de Julio de 2012, 18:13:48 »
Hola amigo, debes poner algo como esto luego de leer la temperatura.

if(temper > 30) {output_high(pin_b0)}
else {output_low(pin_b0)}

Saludos.

Desconectado PCCM

  • PIC16
  • ***
  • Mensajes: 109
Re: Solicito Ayuda con este Programa
« Respuesta #2 en: 26 de Julio de 2012, 18:19:34 »
solo aumentale un if despues de calculada la variable temper...

if(temper>=30)
       output_high (PIN_B0);
else
        output_low (PIN_B0);

Desconectado Carabobo1

  • PIC12
  • **
  • Mensajes: 51
Termómetro
« Respuesta #3 en: 26 de Julio de 2012, 22:49:17 »
if(temper > 30) {output_high(pin_b0)}
else {output_low(pin_b0)}

Saludos.
[/quote]

Hola Diego E. ¡ Gracias por haber respondido tan rápidamente !...
« Última modificación: 14 de Agosto de 2012, 14:43:42 por Carabobo1 »

Desconectado Carabobo1

  • PIC12
  • **
  • Mensajes: 51
Re: Solicito Ayuda con este Programa
« Respuesta #4 en: 26 de Julio de 2012, 22:51:04 »
Gracias Amigo PCCM por tu Respuesta oportuna, ¡¡¡ ha sido de Gran Ayuda !!!!

Desconectado Carabobo1

  • PIC12
  • **
  • Mensajes: 51
Termómetro
« Respuesta #5 en: 14 de Agosto de 2012, 14:41:13 »
.


 

anything