TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: doppel en 04 de Agosto de 2005, 12:52:00
-
Hola amigos!
Tengo que hacer un medidor de temperatura con un 16f84 y indicarla en 3 displays de 7segmentos, hasta acá todo bien jeje.-
El tema es que busqué por todo el foro y la mayoria de los circuitos y proyectos que encuentro son en base al 16f877 por tener ADC.-
Todavia no tengo resuelto que sensor voy a ultilizar ya que desconozco cual sería el mejor y cual es el más fácil de conseguir en Argentina, el circuito se usará para tomar la temperatura del agua de un motor.-
Mas que nada necesito ayuda con la logica y el circuito adaptador entre el sensor con el 16f84.-
He encontrado un circuito que trabaja con dos sensores uno es el que toma la temperatura y otro que trabaja por comparacion pero como les he dicho antes mi problema es la logica para leer el sensor.
La idea es hacerlo en protón.-
Muchas gracias, espero puedan darme algún consejo.-
saludos
-
Hola. Puedes usar sensores de temp. con salida digital de Maxim-Dallas , ej : DS18B20, DS1821 tienen un rango de medicion que va de -55 a +125 grados centigrados
http://www.maxim-ic.com/quick_view2.cfm?qv_pk=2812
http://pdfserv.maxim-ic.com/en/ds/DS1821.pdf
Si te decides , te puedo pasar el fuente en PBP.
Un abrazo.
-
Hola muchas gracias Sanpic!
estuve mirando el datasheet y está mas que interesante, realmente no tengo experiencia con este tipo de sensores, pero por lo que estuve leyendo con solo tirarle los comandos el sensor directamente envia los datos? es asi? la forma de conectarlo seria directamente al puerto?
saludos
-
Es correcto lo que dices amigo Doppel. Solo necesitas 1 pin del pic para controlarlo.
Si necesitas algun codigo para controlarlo , no dudes en pedirlo.
Un abrazo.
-
Hola Sanpic!!
Si tienes algún ejemplo por ahí, bienvenido sea! todavia no me decido por cual sensor si el DS1820 o el LM35H y todo debido a que no cuál voy a conseguir con mas facilidad en mi zona! por eso estoy leyendo acerca de los dos! Pero cualquier ayuda será bienvenida.-
saludos!!
-
aqui te dejo un ejemplo que funciona muy bien, espero te sirva:(http://)
DEVICE = 16F877A
XTAL = 4
CONFIG HS_OSC , WDT_OFF , PWRTE_ON , BODEN_OFF , LVP_OFF
delayms 500
all_digital=true
declare lcd_dtpin portb.4
SYMBOL DQ = PortA.0 ' Place the DS1820 on bit-1 of PORTA
DIM Temp AS WORD ' Holds the temperature value
dim grad as word
DIM C AS word ' Holds the counts remaining value
DIM CPerD AS word ' Holds the Counts per degree C value
CLS ' Clear the LCD before we start
Again:
OWRITE DQ, 1, [$CC, $44] ' Send Calculate Temperature command
REPEAT
DELAYMS 25 ' Wait until conversion is complete
OREAD DQ, 4, [C] ' Keep reading low pulses until
UNTIL C <> 0 ' the DS1820 is finished.
OWRITE DQ, 1, [$CC, $BE] ' Send Read ScratchPad command
OREAD DQ, 2,[Temp.LOWBYTE,Temp.HIGHBYTE,C,C,C,C,C,CPerD] ' Calculate the temperature in degrees Centigrade
Temp = (((Temp >> 1) * 100) - 25) + (((CPerD - C) * 100) / CPerD)
temp = temp/8
print at 1,3,"TEMPERATURA"
Print $FE,$40,$07,$05,$07,$00,$00,$00,$00,$00
PRINT AT 2,6, DEC Temp / 100, ".", DEC2 Temp," ", AT 2,10,0,"C"
GOTO Again