SoloCodigo

Programación Específica => Microcontroladores => Mensaje iniciado por: borgo en Lunes 20 de Marzo de 2006, 00:00

Título: Termómetro
Publicado por: borgo en Lunes 20 de Marzo de 2006, 00:00
Hola amigos  :hola:

 Me ha surgido la inquietud de construir un termómetro de 4 canales para cuatro acuarios, buscando ideas en la red me encontré con esto cuya imagen adjunto.
Es un trabajo completo sobre un termómetro de dos canales controlado por la PC.
Toda la información está en  en la parte de biblioteca
Electrónica Digital > Microcontroladores > Microchip > TermoDual.zip y en la parte de Programación estan las fuentes en C del soft en el archivo Conversor_1.zip, lo construí y funciona my bien pero en dos canales  :( . El tema es que no entiendo bien algo y esa es mi consulta. El conversor tiene 10 bits por lo tanto deberé tranasmitir a la PC dos bytes uno para leer los 8 bits y otro para extraer los 2 bits restantes, en el código fuente de firtec se puede ver el algoritmo que se usó para recomponer los datos, ok eso está entendido pero, el tema del sincronismo entre partes de datos y canales, es decir que la cosa quedaría mas o menos asi:
pido datos indicando que canal leo, pic contesta con la pare menos significativa del dato, le digo que ok, pic envia la parte mas significativa del dato, digo ok y envio el nuevo canal, Uffffffff es eso correcto??? Y como me aseguro de que no se ha perdido el sincronismo entre datos y canales  :(
 
Gracias por su tiempo y un cordial saludo.  :hola:  

   Angel (http://http)
Título: Re: Termómetro
Publicado por: Huguen_aus_Tirol en Lunes 20 de Marzo de 2006, 23:06
Hola Borgo! No me puse a ver el adjunto, pero te tiro una idea...
Podrías hacer la medición de los cuatro canales y luego envias a la PC un bloque de datos, digamos que con 8 bytes te alcanzaría justo; donde los dos primeros bytes son el canal 1, los bytes 3 y 4 el canal 2, y asi. O mejor, envias un paquete de 16 bytes; el primer byte contiene siempre el mismo valor y te sirve de referencia (para saber que es el inicio de un bloque válido), y luego los datos que quieres que lleguen al PC.
Esto ya lo he utilizado y funciona bien ;)
Espero te sirva!

Saludos :hola:
Título: Re: Termómetro
Publicado por: borgo en Martes 21 de Marzo de 2006, 13:23
Ok gracias Huguen
Ya tengo algo funcionando de la siguiente forma:
La pc envía una solicitud de de datos enviando un 0x01 para el canal 1, el micro envia la parte baja de los 10 bits levanta una bandera para indicar que ya envió la parte baja, la pc solicita de nuevo datos el micro consulta la bandera y sabe que debe enviar la parte alta de ese canal.
Luego mando el 0x02 para el segundo canal y la historia se repite aparentemente funciona bien me falta ajustar los tiempos un poco pero funciona.
La electrónica que estoy usando es la misma del ejemplo que comentaba antes repetida cuatro veces.
Saludos.   :hola:

  Angel M.
Título: Re: Termómetro
Publicado por: el_riveraa en Miércoles 5 de Abril de 2006, 19:43
porque se coje la parte baja? y no los bits mas significativos?
Título: Re: Termómetro
Publicado por: borgo en Jueves 6 de Abril de 2006, 18:54
Los bits mas significativos??
A ver, el sistema en teoría puede medir hasta 102,3 grados digo en teoría por la lim del sensor, como estos microsmno tienen punto decimal lo único que hice fué como en el ejemplo de la pagina mencionada, ajustar la ganancia de los operacionales de tal forma que cuando el sensor de temperatura da 20,0 el conversor genera el número 200 yo me encargo de ponerle la coma y se ve 20,0 20,1 grados numero 201 y asi sucesivamente, por eso necesito leer del conversor la parte alta y la baja.
y la verdad funciona muy bien.

Saludos  :hola:
   Angel