Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

16/11/2012 #1


Sensor de temperatura con NTC
Soy nuevo en foro,me pareció interesante este foro ya que vi mucho proyectos. Eh estado elaborando un sensor de temperatura con PIC 16F876 en programación C para la universidad . Esto recién lo estoy aprendiendo y se me esta haciendo complicado. Aquí les dejo la programación con el circuito con el diagrama. Tengo una consulta. ¿Como podría hacer para que cuando mi sensor me detecte mas de 50°C en el puerto B3 se me active un led?

El programa es el siguiente
Código:
#include "16f876.h"
#device adc=10
#fuses XT,NOWDT
#use delay(clock=4000000)
#include <math.h>                
#include <lcd.c>

void main() {
   float tv,tr,temp,y;                 //Variables de ecuación
   int16 value;
   lcd_init();
   setup_port_a( ALL_ANALOG );
   setup_adc( ADC_CLOCK_INTERNAL );
   set_adc_channel( 0 );
   delay_us(10);
   do {
      value = Read_ADC();
      tv = 5.0 * value / 1024.0;
      tr = tv * 10000.0 / (5.0 - tv);
      y = log(tr/20000.0);
       y = (1.0/298.15) + (y *(1.0/4050.0));
      temp=1.0/y;
      temp = temp -273.15;
      printf(lcd_putc,"\nT = %04.2fC", temp);
   } while (TRUE);
}
16/11/2012 #2


Hola ditmar

Si el puerto B3 te permite utilizarlo como salida puedes:
Agregar allá;

do {
value = Read_ADC();
tv = 5.0 * value / 1024.0;
tr = tv * 10000.0 / (5.0 - tv);
y = log(tr/20000.0);
y = (1.0/298.15) + (y *(1.0/4050.0));
temp=1.0/y;
temp = temp -273.15;
printf(lcd_putc,"\nT = %04.2fC", temp);

// agregar aquí el código y establecer el limite En una variable para compararla con tu variable temp
// por ejemplo If temp es mayor que 50
// encender LED en B3
// si no apagar el LED en B3.
// hay que definir el puerto B3 como salida.

} while (TRUE);

si no te lo permite utiliza otro puerto.

saludos
a sus ordenes
17/11/2012 #3


Justo en el punto que te ha indicado MrCarlos y de acuerdo a sus indicaciones, puedes colocar el siguiente código:
Código:
if(temp > 50)
   output_low(PIN_B3);
else
   output_high(PIN_B3);
Debes conectar el ánodo del LED al positivo y el cátodo al pin B3 a través de una resistencia de acuerdo al voltaje que estés usando. Lo que no es necesario, en este caso, es definir el puerto B3 como salida, ya que de acuerdo a la configuración actual el mismo compilador se encarga de hacer que un pin sea de entrada o salida cada vez que se use. Ver comando #use standard_io() del compilador CCS C.

Saludos!
18/11/2012 #4


Gracias por la ayuda,funciono correctamente.Seguire subiendo proyectos.
29/11/2012 #5


Amigos del foro, antemano les agradezco por la ayuda anterior, bueno ahora mi duda es que ahora me han dicho que transmita mi temperatura recibida,con el mismo pic. Es necesario que haga algún cambio al programa ya que yo estoy pensando usa un transmisor RF. Cualquier aporte , estaré agradecido .
29/11/2012 #6

Avatar de carepatacon

No creo que tengas que hacerle nada mas al programa, que transmisor vas a utilizar? si es algo como el de los coches RC sólo deberías activar una de las señales con el PIN que enciende el LED, puede ser a través de un transistor.

saludos.
29/11/2012 #7


Voy a utilizar un transmisor RF , mi duda era , como eh notado que el pic 16f876 tiene un pin de Tx yRx ,no se si necesariamente debo activar estos pines por medio del programa.
29/11/2012 #8

Avatar de carepatacon

Quieres transmitir el valor de la temperatura leida?
29/11/2012 #9


si hacia otro pic 16f877
29/11/2012 #10

Avatar de carepatacon

http://www.forosdeelectronica.com/bu...ss=578j89870j5


Busca aquí en el foro, ahí te mando un link con el resultado de la búsqueda "USART" puedes mirar información acerca de utilizar el USART, inclusive hay alguien que publicó un fragmento de código.

No puedo ayudarte un poco más, debido a que sólo trabajo con microcontroladores ATMEL.

saludos.
29/11/2012 #11


ok gracias de todos modos . Su aporte es de ayuda.
29/11/2012 #12

Avatar de Juanjogc

Puedes utilizar como emisor el C0503 y como receptor el C0504 que son módulos de RF distribuidos por CEBEK y cuestan alrededor de los 8 euros
Gran parte de la información que circula en la red sobre la transmisión de datos por RF entre dos PIC es algo confusa.
Si puedes utilizar la USART del PIC, estupendo, ya tienes la mitad del trabajo solucionado, sino puedes hacerte tu propio protocolo de comunicaciones, mucho más tedioso pero más reconfortante.

Saludos y suerte.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.