Está en la página 1de 4

Laboratorio 5

Comunicación serial

1. Objetivos

 Controlar el encendido y apagado de un led a través de un programa en cualquier lenguaje de


programación.
 Utilizar microcontroladores o plataforma Arduino para conectar el hardware con el software.
 Establecer comunicación serial entre una aplicación informática y un led.

2. Fundamento teórico

Comunicación serial

La comunicación serie o comunicación secuencial, en telecomunicaciones e informática, es el proceso


de envío de datos de un bit a la vez, de forma secuencial, sobre un canal de comunicación o un bus.
En cambio, en la “comunicación en paralelo” todos los bits de cada símbolo se envían al mismo tiempo,
y por ello debe haber al menos tantas líneas de comunicación como bits tenga la información a transmitir.
La ventaja de la comunicación serie es que necesita un número más pequeño de líneas de transmisión
que una comunicación paralela que transmita la misma información. Esta última necesita tantas líneas de
transmisión como la cantidad de bits que componen la información, mientras que la primera se puede
llevar a cabo con una sola línea de transmisión. Por otra parte, surgen una serie de problemas en la
transmisión de un gran número de bits en paralelo, como los problemas de interferencia o
desincronización.
A la misma frecuencia de transmisión, la comunicación paralela tiene un mayor rendimiento. La
comunicación serie tiene que compensar esta debilidad con una frecuencia más alta.

La comunicación en serie es muy sencilla, bastan dos hilos para enviar una diferencia de tensión entre
ellos y poder marcar niveles alto (5V) y bajo (0V) y con esto podemos transmitir información digital.
Ahora solo falta pactar dos cosas entre quien envía y quien recibe:

 Un código común para codificar los caracteres que enviamos.


 Un acuerdo de velocidad para saber a qué ritmo hay que leer los datos.
El código común a usar con Arduino se llama código ASCII y es estándar en todos los ordenadores. Es
una forma de codificar las letras mediantes números que representan estos caracteres. Así por ejemplo
la letra A se representa por el número 65, la B con el 66, C el 67, y así sucesivamente. Prácticamente
todos los ordenadores actuales utilizan este código y eso incluye a Windows, Mac y Linux, pero es
importante comprender que esté es uno más entre varios códigos de caracteres posibles (EBCDIC por
ejemplo).
Actualmente, en realidad, se suele usar una extensión del código ASCII (llamada Unicode) que permite
el uso de caracteres no incluidos en la tabla original, y que permite representar caracteres como las Ñ, o
los acentos para el español, pero también alfabetos distintos como el Kanji chino o el alfabeto cirílico. Y
este es el motivo por el que se puede leer las letras chinas o rusas en páginas de internet de estos países.
El otro factor a pactar para realizar una comunicación serie es la velocidad. Dado que solo se disponen
de dos hilos para transmitir, es necesario saber cuándo hay que leer la línea y esto se hace estableciendo
un acuerdo de velocidad. Si la velocidad de envío es distinta de la velocidad de lectura, el mensaje final
será irreconocible. Esta velocidad se mide en bits por segundo y Arduino soporta diferentes velocidades
de comunicación serie.

3. Desarrollo

Para el presente laboratorio se eligió JAVA como el lenguaje de programación para escribir las sentencias
que irán a controlar el estado del led, ya sea que esté encendido o apagado.
Inicialmente, para lograr una conexión entre JAVA y la placa Arduino Uno, se agregó una librería en el
proyecto de JAVA que se creó en el entorno de desarrollo integrado Netbeans. Esta librería fue
descargada de un sitio web de desarrolladores JAVA que gratuitamente brindan el código que escriben
para su descarga e instalación sin restricciones, contribuyendo así con el crecimiento y desarrollo de la
comunidad que utiliza este lenguaje de programación, la página web se llama http://panamahitek.com.
La librería destinada para la conexión de JAVA con Arduino se llama PanamaHitek_Arduino y la versión
utilizada para el proyecto es la número 3.0.0; dicha librería tiene la extensión .jar, para poder ser
reconocida por el sistema como un elemento adicional que se agrega para obtener diferente
funcionalidades.

A continuación, se procederá a describir el código escrito en JAVA para el control del encendido y
apagado del led.

Importar las librerías


al proyecto

Uso del método


ArduinoTX
Método Descripción
Este método se utiliza para iniciar la conexión de Java con Arduino
arduinoRX(string SOLAMENTE PARA LA RECEPCIÓN DE DATOS. En el nombre de
nombre del puerto, int puerto se coloca el COM#, o sea el puerto COM donde esté conectado
time out, int baud rate) Arduino, el time out es el tiempo de espera, el baud rate debe ser el mismo
que se usa en Arduino IDE (generalmente 9600).
Este método se utiliza para iniciar la conexión de Java con Arduino
arduinoTX(string nombre
SOLAMENTE PARA LA TRANSMISIÓN DE DATOS. Esta conexión
del puerto, int time out,
debe ser iniciada como ArduinoTX debido a que se va a transmitir
int baud rate)
información.

En el formulario se colocan dos botones, uno para encender y


otro para apagar, también se puede agregar una imagen de
fondo en el formulario. Se programa las acciones de los
respectivos botones con el siguiente código.

Método sendData

Método Descripción
Método utilizado para enviar datos a Arduino. Los datos se deben enviar
sendData(String data)
como cadena de texto (string).

Después de escribir el código en JAVA, se procede a escribir el código en Arduino,para poder controlar
el harware.
Inicio de la
comunicación serial

Pin físico de la placa


Arduino que se
conecta al led.

Cambio de estado del


led dependiendo del
String (cadena) que
envía el programa en
JAVA

La correspondencia que hay entre el programa en JAVA son los Srings (cadenas) que envían los botones
cuando son presionados mientras el programa está en ejecución.

4. Conclusiones

Se controló el encendido y apagado de un led a través de un programa escrito en JAVA y un programa


en Arduino para controlar el hardware.
Se programó el microcontrolador de la placa Arduino para conectar el hardware (led y placa Arduino)
con el software (aplicación en JAVA) y se logró el control deseado.
Se estableció la comunicación serial entre la placa Arduino y el programa en JAVA, se controlaron las
características como taza de baudios para lograr la comunicación correcta.

También podría gustarte