3
ING. ELECTRÓNICA. COMUNICACIONES 1 PRÁCTICA #2: Comunicación serial (manejo de entradas y salidas analógicas) Sandra Chacha Quille. Manuel Sagbay Asitimbay. Universidad Politécnica Salesiana. Cuenca - Ecuador. [email protected] [email protected] Abstract—En esta práctica se pretende llevar a cabo una comu- nicación serial de tal manera que dispongamos datos analógicos y digitales de forma bidireccional entre el Arduino UNO y Labview. I. OBJETIVOS. A. Objetivo general. Establecer una comunicación serial Labview - Microcon- trolador. B. Objetivos específicos. Comunicación desde Labview al microcontrolador. Controlar 4 leds mediante 4 pulsantes. Controlar la velocidad de un motor DC mediante un Slide. Comunicación desde el microcontrolador a Labview. Controlar 4 Leds mediante 4 pulsantes. Enviar el dato del valor analógico y realizar la conversión adecuada en Labview. II. DESARROLLO Y PROCEDIMIENTOS. Para llevar a cabo esta práctica debemos entender primero el funcionamiento del bufer de recepción de los dispositivos, en este caso Arduino UNO tiene un buffer de 64 bytes es decir podemos almacenar hasta 64 caracteres, sin embargo al momento de realizar la lectura de una comunicación serial únicamente se lee la posición 0 del buffer, y el momento que se realiza la lectura de forma interna los demás bytes del buffer se recorren una posición hacia abajo, es decir el byte en la posición uno bajará a la posición cero y así sucesivamente cada se lea el buffer serial. A. Programa en arduino. La programación de arduino los datos que se reciben son: Primero el valor de los leds en el primer byte y se realiza un programación bit a bit de la variable para encender o apagar el led en el puerto correspondiente. Además en esta sección del programa se verifica el estado de cada uno de los pulsantes y de igual forma se almacena su valor lógico en una variable de . bit a bit de forma que solo usamos una variable para transmitir los datos de los cuatro pulsante. El segundo dato que se lee es directamente guardado en escrito en puerto que se encuentra conectado el motor DC de tal forma que controle el ancho de pulso por dicho pin. A continuación se muestra el código del programa realizado en Arduino. Figure 1. Captura de pantalla de la parte de lectura serial.

Comunicacion Serial (manejo de entradas y salidas analógicas con Labview)

Embed Size (px)

DESCRIPTION

Se realiza la comunicación serial desde Arduino a Labview con el manejo de entradas y salidas analógicas.

Citation preview

Page 1: Comunicacion Serial (manejo de entradas y salidas analógicas con Labview)

ING. ELECTRÓNICA. COMUNICACIONES 1

PRÁCTICA #2: Comunicación serial (manejo deentradas y salidas analógicas)

Sandra Chacha Quille.Manuel Sagbay Asitimbay.

Universidad Politécnica Salesiana.Cuenca - Ecuador.

[email protected]@est.ups.edu.ec

Abstract—En esta práctica se pretende llevar a cabo una comu-nicación serial de tal manera que dispongamos datos analógicos ydigitales de forma bidireccional entre el Arduino UNO y Labview.

I. OBJETIVOS.

A. Objetivo general.

• Establecer una comunicación serial Labview - Microcon-trolador.

B. Objetivos específicos.

• Comunicación desde Labview al microcontrolador.– Controlar 4 leds mediante 4 pulsantes.– Controlar la velocidad de un motor DC mediante un

Slide.• Comunicación desde el microcontrolador a Labview.

– Controlar 4 Leds mediante 4 pulsantes.– Enviar el dato del valor analógico y realizar la

conversión adecuada en Labview.

II. DESARROLLO Y PROCEDIMIENTOS.

Para llevar a cabo esta práctica debemos entender primeroel funcionamiento del bufer de recepción de los dispositivos,en este caso Arduino UNO tiene un buffer de 64 bytes esdecir podemos almacenar hasta 64 caracteres, sin embargo almomento de realizar la lectura de una comunicación serialúnicamente se lee la posición 0 del buffer, y el momento quese realiza la lectura de forma interna los demás bytes del bufferse recorren una posición hacia abajo, es decir el byte en laposición uno bajará a la posición cero y así sucesivamentecada se lea el buffer serial.

A. Programa en arduino.

La programación de arduino los datos que se reciben son:Primero el valor de los leds en el primer byte y se realiza unprogramación bit a bit de la variable para encender o apagar elled en el puerto correspondiente. Además en esta sección delprograma se verifica el estado de cada uno de los pulsantes yde igual forma se almacena su valor lógico en una variable de

.

bit a bit de forma que solo usamos una variable para transmitirlos datos de los cuatro pulsante.

El segundo dato que se lee es directamente guardado enescrito en puerto que se encuentra conectado el motor DC detal forma que controle el ancho de pulso por dicho pin.

A continuación se muestra el código del programa realizadoen Arduino.

Figure 1. Captura de pantalla de la parte de lectura serial.

Page 2: Comunicacion Serial (manejo de entradas y salidas analógicas con Labview)

ING. ELECTRÓNICA. COMUNICACIONES 2

B. Programa en Labview.

1) Escritura serial.: En esta parte del programa se crea unvector de bytes en donde, el primer byte corresponde al datodel Knob que controla el ancho de pulso con el que se alimentael motor DC en arduino. El segundo byte es el valor numéricodel estado booleano de cada pulsante.

Figure 2. Captura de pantalla de la parte de escritura serial.

2) Lectura del serial.: En esta parte del programa se puedenrecibir hasta 5 bytes de manera que el primer byte correspondeal valor boolean del vector de pulsantes convertido a unnúmero, y el resto de bytes corresponde a el valor analógicodel potenciómetro que puede ir desde 1 byte hasta 4 bytes yaque la conversión se realiza a 10bits con un valor máximo de1023.

Figure 3. Captura de pantalla de la parte de lectura serial.

A continuación se indica todo el programa en Labview.

Figure 4. Captura de pantalla de la parte de lectura serial.

III. RESULTADOSA continuación se muestra una captura en donde ya se ha

realizado la comunicación serial con el arduino y variado elvalor analógico del mismo.

Figure 5. Interfaz gráfica en Labview.

Tal como se puede ver en la figura en este caso el puertoCOM al que se encuentra asignado nuestro dispositivo Ar-duino, es el COM18 con una transmisión a una velocidad de115200 baudios. Además se puede apreciar el valor analógicotanto en la gráfica como su valor numérico en el cuadro detexto que se encuentra en la parte superior.

En la siguiente figura se ilustra el circuito armado con elarduino.

Figure 6. Circuito implementado en el protoboard.

Page 3: Comunicacion Serial (manejo de entradas y salidas analógicas con Labview)

ING. ELECTRÓNICA. COMUNICACIONES 3

IV. CONCLUSIONES Y RECOMENDACIONES.

A. Conclusiones.

Realizada la práctica se pudo verificar la conexión de varioselementos los cuales son controlados mediante la comuni-cación serial haciendo uso del buffer serial en el cual nosotrospodemos almacenar hasta 64bytes de forma que estaríamoslimitados a ese valor elementos que podríamos controlar.

Aunque solo se dispone de 64bytes en el buffer serial, esposible controlar 8 elementos como pulsantes o leds, ya quesolo se requiere un bit por cada uno de ellos, por lo quepodemos almacenar en un solo byte los datos correspondientesde hasta 8 de estos elementos.

B. Recomendaciones.

Para mejorar la velocidad de transmisión deberíamos incre-mentar la tasa de baudios hasta el valor máximo que soporta midispositivo conectado, de tal forma que el retardo en la comu-nicación sea mínimo, sin embargo hay que tener en cuenta eltiempo de adquisición de datos por serial del microcontroladorya que ese sería nuestro límite de velocidad debido a que siescribimos en el buffer serial a mayor velocidad los datosseguirán guardándose en las demás posiciones del buffer demanera que lo que leamos no siempre puede ser la informacióncorrecta para el fin que se ha establecido.