Autor Tema: Termostato con DS18B20 y PIC18F2550  (Leído 9527 veces)

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

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Termostato con DS18B20 y PIC18F2550
« en: 26 de Febrero de 2014, 20:13:08 »
hola.queria compartir con todos un proyecto que me ha llevado varios meses desarroyar.ya que he tenido que crear las librerias por mi cuenta.
aunque porsupuesto he tenido mucha ayuda de internet y otros usuarios de este foro.

El proyecto trata de un termostato con el sensor de temperatura DS18B20 y una LCD de 16x2 lineas.ademas de un teclado hexagesimal para
su programacion.


 libreria ds18b20_PIC18f.inc   Es la encargada de gestionar a este sensor de temperatura.tanto la lectura/escritura de registros
                                 como la correcion de errores mediante las comprobaciones del CRC.


 libreria Mensages.inc         Gestiona los mensages a visualizar en la LCD.tanto estaticos como en movimiento.


 libreria boton_puls_v2.inc    Gestiona las teclas pulsadas en un teclado hexagesimal.


Esta ultima libreria es usada para el control de un teclado de 16 teclas ampliables mediante solo 3 cables.hay un proceso de programacion
del teclado para su posterior uso.todo esta explicado en diferentes comentarios de la libreria.

y en todas las librerias se comentan su utilizacion.





El circuito utiliza un pic18f2550.la LCD se conecta al nible bajo del PORTB y el control de la LCD esta conectado a PORTA.

RS->RA1
RW->RA2
 E->RA3

Los pin de salida para la conexion de los reles son RB4 y RB6 .Y estan invertidos entre si para utilizarlos segun nos convengan.

el sensor DS18B20 esta conectado al pin RB5 y el teclado a RA0.



Nada mas activar el circuito.si el teclado no ha sido programado.hay que proceder de la form en que se muestr el video de abajo.



Este video muestra como programar el teclado.se pueden grabar todas las teclas.aunque en este video se muestra como grabar parte de ellas.
para eso solo hay que pulsar la primera tecla que se pulso al principio de la programacion.

list=UU7mFRHKxoUtxrrRw-HaDERA&feature=c4-overview
[/youtube]


Si ya se ha programado el teclado.la funcion de las teclas se indican en el video de abajo.

feature=c4-overview&list=UU7mFRHKxoUtxrrRw-HaDERA
[/youtube]


tal y como se ve en el video.las teclas estan definidas como si fuera un gamepad.tecla 4 programacion de TL(temperatura baja).
tecla 6 programacion de TH(temperatura alta).

tecla 2 aumentar valor seleccionado con el cursor.tecla 8 disminuir valor seleccionado con el cursor.

tecla 5 guardar y salir.


Tal y como puede apreciarse en el video.el valor de la linea superior es la temperatura instantanea.
en la linea inferior a la izquierda se programa el valor del limite de temperatura baja.y en la parte de la derecha se programa el valor
de la temperatura alta.los decimales de la temperatura instantanea no es tomada en cuenta para la comparacion entre el valor instantaneo
y los valores programados.

en el video se aprecia como al aumentar la temperatura en el sensor los led verde y rojo cambian de estado.estos leds son las salidas
que hay que conectar a los optoacopladores para la activacion de los reles que activan los dispositivos a controlar.

si queremos controlar por ejemplo un frigorificos.pondremos TL al valor de temperatura que queramos que salte.por ejemplo 3ºC y el
valor de TH a 85ºC.que es un valor que sabemos que nunca va a llegar.luego usaremos la salida que mejor nos interese.estado alto o estado bajo.

si quisieramos controlar un calefactor o un termo.pondriamos TH a la temperatura de trabajo.ejem 80ºC y TL a -10ºC.una temperatura que sabemos que nunca va a llegar.
y usar la salida que se adapte mejor a nuestras necesidades.

y para activar las salidas o desactivarlas tambien lo podemos hacer jugando con estos valores de TH y TL poniendo temperaturas donde siempre
van a coincidir con la temperatura instantanea o no lleguen nunca.23:55 26/02/2014
« Última modificación: 28 de Febrero de 2014, 11:36:55 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado C. Andrew

  • PIC10
  • *
  • Mensajes: 11
    • Proyectos de electrónica caseros
Re: Termostato con DS18B20 y PIC18F2550
« Respuesta #1 en: 26 de Febrero de 2014, 21:21:30 »
Este proyecto me va ser muy útil para mi habitación ya que esta haciendo un calor tremendo aquí en mi pueblo  :5]. Estaré al pendiente de este foro por si subes mas información.
Se agradece que compartas un trabajo de mucho tiempo y esfuerzo

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Termostato con DS18B20 y PIC18F2550
« Respuesta #2 en: 27 de Febrero de 2014, 10:16:52 »
Jajaj.pues yo estoy pasando más frío que un perro chico.estoy deseandito de que llege el verano.
Que eso sí lo soportó.aunque en verano se llegan a 50,℃ a pleno sol.

Pero a lo sombrita y un ventilador se no se esta tan mal.
« Última modificación: 27 de Febrero de 2014, 18:00:40 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Termostato con DS18B20 y PIC18F2550
« Respuesta #3 en: 28 de Febrero de 2014, 11:48:22 »
cuando puse los enlaces de youtube.no entendia el porque no salia la ventana.asi que comparando otros temas.he visto que hay que quitarle a https: la s.
asi que queda asi http:


disculpad si todavia no he subido el proyecto.pero estoy haciendole unos retoques.ya que cuando programabamos la temperatura TH y TL.no habia limites
y los valores se pasaban de la temperatura que trabaja el sensor DS18B20.que es de +125ºC y -55ºC

ya esta arreglado.pero quiero introducirle algo mas.como es que al pulsar una tecla haya un proceso de repeticion con una pulsacion larga.y que asi haya
una programacion mas comoda.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Termostato con DS18B20 y PIC18F2550
« Respuesta #4 en: 08 de Marzo de 2014, 17:56:39 »
y como lo prometido es deuda.aqui subo el proyecto del preostato con pic18f2550 y sensor de temperatura ds18b20.
pongo un video de la ultima mejora que le quedaba para programar las temperaturas de salto mas rapidamente.ya que con una pulsacion larga
podemos hacer que los valores se incrementen o decrementen mas rapidamente.
aunque tambien funciona el paso a paso.
quiero decir que en el video se ve como falla aveces en el paso a paso.es porque no he puesto los valores de resistencia adecudos
para que haya una distancia prudente entre valores analogicos de tecla pulsada.en este teclado al usarse 16 teclas los valores
estan muy juntos.sobretodo en los valores mas superiores de voltage analogico.he intentado corregirlo pero habria que poner valores
de resistencia con menos tolerancia.y para un poco que falla no es necesario complicarse la vida.almenos para un circuito donde
la programacion no es una cosa que vallamos a hacer constantemente.

otra cosa seria un mando donde estubieramos en todo momento tocando las teclas.en ese caso lo mejor seria poner menos teclas
y tocar una parte del programa donde configurariamos un mayor ancho de valores analogicos.en ese caso se acertaria practicamente el 100%
ya que el ancho de valores de acierto en este momento es de 3 valores.

es decir que cuando pulsamos una tecla.el valor analogico se compara con el valor teorico de la tecla pulsada y un valor por encima y
otro por debajo.a parte de las 10 comprovaciones que se realiza para la lectura de la tecla pulsada.

asi que cada uno puede modificar la libreria a su gusto.y si en algo puedo ayudar les hecharia una mano.aunque el programa es tan grande
que cuando pase unos meses.ni yo mismo me acordare de que hay que tocar para hacer alguna funcion distinta.

list=UU7mFRHKxoUtxrrRw-HaDERA
[/youtube]



incluyo los archivos del proyecto en MPLAB en asm.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Termostato con DS18B20 y PIC18F2550
« Respuesta #5 en: 09 de Marzo de 2014, 10:05:10 »
y como lo prometido es deuda.aqui subo el proyecto del preostato con pic18f2550 y sensor de temperatura ds18b20.
pongo un video de la ultima mejora que le quedaba para programar las temperaturas de salto mas rapidamente.ya que con una pulsacion larga
podemos hacer que los valores se incrementen o decrementen mas rapidamente.
aunque tambien funciona el paso a paso.
quiero decir que en el video se ve como falla aveces en el paso a paso.es porque no he puesto los valores de resistencia adecudos
para que haya una distancia prudente entre valores analogicos de tecla pulsada.en este teclado al usarse 16 teclas los valores
estan muy juntos.sobretodo en los valores mas superiores de voltage analogico.he intentado corregirlo pero habria que poner valores
de resistencia con menos tolerancia.y para un poco que falla no es necesario complicarse la vida.almenos para un circuito donde
la programacion no es una cosa que vallamos a hacer constantemente.

otra cosa seria un mando donde estubieramos en todo momento tocando las teclas.en ese caso lo mejor seria poner menos teclas
y tocar una parte del programa donde configurariamos un mayor ancho de valores analogicos.en ese caso se acertaria practicamente el 100%
ya que el ancho de valores de acierto en este momento es de 3 valores.

es decir que cuando pulsamos una tecla.el valor analogico se compara con el valor teorico de la tecla pulsada y un valor por encima y
otro por debajo.a parte de las 10 comprovaciones que se realiza para la lectura de la tecla pulsada.

asi que cada uno puede modificar la libreria a su gusto.y si en algo puedo ayudar les hecharia una mano.aunque el programa es tan grande
que cuando pase unos meses.ni yo mismo me acordare de que hay que tocar para hacer alguna funcion distinta.

list=UU7mFRHKxoUtxrrRw-HaDERA
[/youtube]




para el montage del circuito.he desarroyado como una mini placa base donde conectaremos los cables de la lcd y del teclado ademas del sensor y
la alimentacion.

desde hace mucho tiempo he diseñado los circuitos especificos para determinados proyectos.lo bueno es que todo esta mas compactado y sin
necesidad de conexion de cables.
lo malo es que cuando necesitamos apliar una funcion a ese circuito.como puede ser usar otras salidas del pic, añadirle un modulo,o modificar
el circuito por fallos que emos cometido o porque esa determinada salida no cumple la funcion que creiamos que cumplia.

tendriamos que cortar pistas y soldar puentes.o peor volver ha hacer el circuito de nuevo.un circuito que por norma general es mas grande
que la opcion que quiero llevar a cabo.y que ya tengo casi desarroyado.

es un modulo que le llamare MiniPB_18F2550v1.es una mini placa base que aparte de tener accesibles de una manera comoda todos los pin
del microcontrolador con su respectiva masa.integra el conector icsp para su programacion y debugeado.ademas de un conector microusb
para conectar un alimentador de movil,pinhead para alimentaciones auxiliares y reset.ademas de unos led para ver el estado de funcionamiento.





tambien he realizado unos jumpers que integran unos leds smd con resistencias de 1k5.asi podemos puentear a masa las salidas del pic y
realizar comprobaciones de estado.

a la izquierda de la imagen esta el jumper con el led y resistencia smd en serie y con una gota de loctite para que no se deteriore
con el uso.tambien puede apreciarse el cristal para un oscilador de 32.768khz y pins de conexion para el alargo de los cables de conexion.

estos cables son muy baratos y nos ahorra el tener que soldarlos a la placa ya que tienen conectores hembra.



disculpad por el tamaño de la foto pero no se ponerla mas pequeña.

« Última modificación: 09 de Marzo de 2014, 10:23:56 por groundman »
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Termostato con DS18B20 y PIC18F2550
« Respuesta #6 en: 09 de Marzo de 2014, 10:58:11 »
El MiniPB_18F2550v1.estoy con los ultimos retoques.mas que nada respecto al led de estado.que lo habia puesto en MCLR pero creo haber tenido problemas.
y tambien tengo que mirar los dos diodos schottky ya que no me llegan los 5v al circuito.aunque si que me funciona.y si no los pusiera
tendria que tener cuidado cuando conectara algo al icsp y tubiera tambien la alimentacion.asi que no se que hacer con esto ultimo.


ahora.referente a la PCB.ya que voy a usar muchas en diferentes circuitos.estaba pensando en fabricarlas en serie.ya sea mediante serigrafia
o encargandolas a un chino.

si lo hago por serigrafia.he pensado en usar el sistema de pegar el toner en polvo de la impresora laser en la maya.y luego usar alguna laca
para el pintado de las placas.pero esto seria un nuevo sistema que no se si funcionaria.y no tengo tiempo de ponerme a experimentar.

y tampoco se cuanto me costaria mandar a que me fabricaran las placas.si es mas barato a una cara o a dos.o vale igual.

Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado jcrehuet

  • PIC10
  • *
  • Mensajes: 1
Re: Termostato con DS18B20 y PIC18F2550
« Respuesta #7 en: 10 de Diciembre de 2014, 13:00:27 »
Hola estaba buscando informacion sobre el 18f2550 con ICSP y me he encontrado este proyecto tuyo con componentes smd. Estoy tratando de ver como has implantado el circuito impreso pero no acabo de ver como conectas el icsp (resistencias y diodos)
¿Seria mucho pedir el esquema del PCB? No el de pistas sino el de componentes. Muchas gracias por todo.

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Termostato con DS18B20 y PIC18F2550
« Respuesta #8 en: 12 de Diciembre de 2014, 11:04:42 »
hola jcrehuet.si pones icsp en google.veras diferentes imagenes de este conector.luego solo tienes que conectarlo a los pin del pic.no hece falta poner ningun
componente especial.ni resistencias ni nada.solo que la patilla MCRl del pic este devidamente alimentada con su respectiva resistencia de 10K a Vcc.
Montando mi primera impresora 3D (Raprep Prusa i3)