SoloCodigo
Programación Específica => Microcontroladores => Mensaje iniciado 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)
-
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:
-
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.
-
porque se coje la parte baja? y no los bits mas significativos?
-
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