![]() |
Ejecutar un procedimiento a intervalos regulares
Hola, estoy haciendo un programa en delphi para leer los datos que me tira un adaptador usb-usart para leer la temperatura de un sensor, uso la libreria comport en delphi 7, para leer la temperatura tengo un boton, pero la idea es que la lectura del puerto se haga a intervalos regulares automaticamente al iniciar el programa. Los datos que me tira el microcontrolador es la temperatura en forma continua, por ejemplo si lee 21 grados, tira: 2121212121212121... Los valores de la temperatura pueden llegar a los 125 grados, defini el buffer de entrada con tamaño de 2 bytes, no se si esta bien.Otro problema es que el valor de la temperatura no se actualiza bien, quizas esta en 31 grados y si leo el puerto con mi programa me da 29 y no cambia. Me puden dar una mano. El video youtube:
|
Hola soymoe, bienvenido a Club Delphi :)
Como a todos cuando inician, te invitamos a que leas nuestra guía de estilo. Para la toma de temperatura a intervalos regulares podes usar un TTimer (pestaña System). Un ejemplo simple, pone en tu formulario un TTimer, un TLabel y dos TButton: (*) No he usado la librería ComPort (y mucho menos adaptador usb-usart), por lo que simulé la toma de temperatura con una función que devuelve valores aleatorios para hacer funcional el ejemplo. Saludos :) |
El problema aquí es que hay varias cosas mezcladas.
Cita:
Otro tema es que hay muchos de estos sensores que permiten dos modos, un modo continuo (parece ser el que tienes activado ahora) y otro bajo petición, podrías mirar si al que te estás conectando lo permite. Cita:
Cita:
En estos casos, yo propongo siempre utilizar diretamente el HyperTerminal de Windows (sin Delphi, sin componentes,...) de esa forma te aseguras de lo que estás leyendo. Una vez que la lectura ahí sea correcta, vas al programa. De esta forma eliminas posibles errores intermedios. Lo que leas ahí seguro que es lo que está llegando del puerto. Revisa la configuración del sensor y si tiene varios modos. |
Cita:
|
Cita:
|
| La franja horaria es GMT +2. Ahora son las 09:25:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi