Seguimos comunicando nuestra aplicación escrita en Lazarus, con una placa Arduino, usando el puerto Serie. En el post anterior de esta serie habíamos construido una aplicación para recibir datos desde nuestro Arduino.

Ahora vamos a construir una aplicación para enviar datos.

Realizaremos una aplicación dónde le enviaremos un texto a nuestra placa Arduino, y esta nos contestará diciendo que ha recibido el texto, además de devolvernos el texto enviado.

Creando la aplicación

Empieza creando una aplicación como has hecho hasta ahora. En la parte superior añade un componente TPanel. Borrar el contenido de su propiedad Caption. Su propiedad Align ajústala a alTop para que siempre esté en la parte superior de la ventana.

Añade un componente TMemo y cambia su propiedad Align al valor alClient para que ocupe el espacio restante de la ventana. También pon su propiedad ScrollBars al valor ssAutoBoth para que muestre barras de desplazamiento si las necesita, según se llene de texto.

Coloca, por suesto el componente TLazSerial.

Ahora añade tres TButon sobre el componente TPanel que pusimos antes. Nómbralos como btConectar, btConfigurar, btEnviar. Y en sus propiedad Caption ponles lo siguiente: Conectar, Configurar, Enviar. Además añade un componente TEdit, y ajusta su propiedad Name con el valor edTexto, y borrar el contenido de su propiedad Text.

Coloca los componentes como se muestra en la imagen siguiente:

Pon la propiedad Enabled al valor False, del botón BtEnviar, y del componente TEdit. De esta manera cuando la aplicación se ejecute, los componentes estarán desactivados y no funcionarán. Ya que el botón de enviar, así como el componente Tedit, solo deberán estar activos cuando esté la aplicación conectada al Arduino.

Así que el código del evento OnClick, del botón Conectar, se encargará de iniciar la conexión serie y activar los controles que tenemos desactivados.

Ahora debemos usar el evento Onclick del botón Enviar para enviar al Arduino, el texto que tenemos en el componente TEdit.

El evento OnClick del botón configurar será igual que el que hicimos en la entrada anterior.

Ya solo queda escribir el código para recibir la información de la placa Arduino. Esto se realiza en el evento Serial1RxData del componente TLazSerial. Dentro de este evento debemos capturar la información que nos envía Arduino por el puerto serie, y escribirla en el TMemo mmRecibir. El código sería el siguiente:

Código del Arduino

El código fuente del Arduino es muy sencillo, ya que solamente capturaremos el texto recibido. Sabemos que se el texto está completo por que se recibe el carácter salto de línea y le añadiremos la frase: «Hola, he recibido esto:».

Este es el código fuente del Arduino:

Puliendo detalles.

Si te fijas el texto que captura nuestra aplicación no aparece en una sola línea. Esto es debido a que tal como llegan la información la escribimos sin esperar al final de línea.

Para solucionar esto, debemos enviar un final de línea desde Arduino, y capturarlo en nuestra aplicación.

El código en Arduino sería el siguiente:

Y en el evento LazSerial1RxData, lo modificamos, de modo que iremos guardando la información recibida en una variable llamada Texto, que hemos definido en la sección Private de nuestro aplicación, de manera que está disponible para todo el formulario.

Si el último carácter de la cadena es un retorno de carro, o un salto de línea, añadiremos una línea en el componente mmRecibir con el contenido de Texto. Y luego borraremos su contenido.

Con esto tenemos nuestra aplicación lista.

Saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.