Está en la página 1de 23

CÓDIGO: DEE-TC-GUIA 01

LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 1 / 23

LABORATORIO Nº 01
“USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO CON LA PC Y ENTRE
PLACAS ARDUINO”

Información general:

1. Centro de estudios : Tecsup-Norte

2. Ubicación : Victor Larco-Trujillo

3. Curso : Sist. De Control Mecatronico

4. Ciclo : VI

5. Docente :Sandoval Colmenares, Eduardo

N° APELLIDOS Y NOMBRES FOTOGRAFÍA NOTA


1 Gálvez Caballero Luis

FECHA DE ENTREGA:

2022 – I
Trujillo – Perú

1
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 2 / 23

ÍNDICE

RECOMENTACIONES GENERALES DE SEGURIDAD…………………………………………………..3


ANÁLISIS DE TRABAJO SEGURO (ATS)…………………………………………………………………..4
1. OBJETIVOS…………………………………………………………………………………… …….5
2. DOCUMENTOS O NORMAS DE REFERENCIA…………………………………………………5
3. DESCRIPCIÓN DEL PROCESO……………………………………………………………… …..5
3.1. FUNDAMENTO TEÓRICO…………………………………………………………………………..5
3.2. RECURSOS…………………………………………………………………………………………....1
3.3. CARACTERIZACIÓN DEL PROCESO…………………………………………………………..….1
4. EVALUACIÓN………………………………………………………………………………… ………1
5. CONCLUSIONES………………………………………………………………………………………..…..
6. OBSERVACIONES DEL DOCENTE………………………………………………………………..1

2
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 3 / 23

RECOMENDACIONES GENERALES DE SEGURIDAD

Antes de iniciar con las actividades, se tendrá en cuenta lo siguiente:

A. Condiciones obligatorias para el uso del ambiente.


B. Respuesta a emergencias.
C. Vías de acceso y evacuación.
D. Equipos de respuesta a emergencias.
E. Señalización de seguridad.
F. Normas de seguridad generales.

3
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 4 / 23

ANÁLISIS DE TRABAJO SEGURO (ATS)

4
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 1 / 23

1. OBJETIVOS

• Manejo de la instrucción Serial.begin, Serial.print. Ajuste de la velocidad de


transmisión.
• Uso del ADC del ARDUINO para medir temperatura ambiental usando un
sensor LM35.
• Activar en el software ARDUINO el monitor serial.
• Comprobar que el cálculo que se hace en la placa Arduino con el dato del
ADC se transfiera a la PC.

2. DOCUMENTOS O NORMAS DE REFERENCIA

• Ley N° 29783, Ley de seguridad y salud en el trabajo DS N° 005-2012-TR.


• Reglamento de la ley de seguridad y salud en el trabajo RM N° 050-2012-TR.
• Formatos referenciales con la información mínima que deben contener los
registros obligatorios del sistema de gestión de seguridad y salud en el trabajo
NTP 350.043-1 2011.
• Extintores portátiles NTP 399.010-1 2015 Señales de seguridad

3. DESCRIPCIÓN DEL PROCESO

3.1 FUNDAMENTO TEÓRICO


Los puertos de comunicación serial nos proporcionan la forma más efectiva de
comunicar la placa de Arduino con nuestro ordenador, y como se podrá notar a
través de esta comunicación podremos mandar diferentes órdenes a nuestro
Arduino para automatizar procesos o incluso recibir informaciones importantes para
mostrarlas en la pantalla de nuestro computador.

La comunicación serial entre dos dispositivos únicamente utiliza 3 líneas las cuales
son:

1. Línea de recepción de datos (RX)


2. Línea de transmisión de datos (TX)
3. Línea común (GND)
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 2 / 23

El GND, el RX y TX del Arduino son fácilmente identificables en la placa. A


continuación, se enumeran cuantos puertos seriales y los pines que tiene el Arduino
UNO, mini pro, MEGA y Due.

1. Arduino UNO y Mini Pro: Pines 0 (RX) y 1 (TX);


2. Arduino Mega y Arduino Due: son cuatro puertos de serie.
0. puerto serie 0: pines 0 (RX) y 1 (TX)
1. puerto serie 1: pines 19 (RX) y 18 (TX)
2. puerto serie 2: pines 17 (RX) y 16 (TX)
3. puerto serie 3: pines 15 (RX) Y 14 (TX)

¿Qué es TX y RX en Arduino?

El TX y RX del Arduino son los dos pines que emplea el dispositivo para realizar la
comunicación por medio del protocolo serial. Los datos, por lo tanto son transmitidos
en la línea o pin TX y son recibidos por la línea o pin RX.

Comunicación UART Arduino

La comunicación serial entre dos dispositivos se realiza a través del intercambio de


una secuencia de bits, donde se transmite bit a bit, uno por vez, donde, aunque es
lenta la comunicación, tiene la ventaja de poder ser transmitida a mayores distancias
y utilizar menos líneas de comunicación.
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 3 / 23

En sistemas embebidos es común referirse a los puertos series


como UART (universally asynchronous receiver/transmitter) la cual simplemente es
una unidad que nos indica la conversión de los datos a una secuencia de bits donde
posteriormente son transmitidos o recibidos a una velocidad determinada.

La comunicación serial también se da mediante variaciones de voltaje, donde


dispositivos TTL (transistor transistor logic) realizan la comunicación mediante
variaciones de señal entre 0 y 5v o entre 0 y 3.3v.

Por último, también es conocida como comunicación serial RS232 el cual es un


protocolo muy común utilizado industrialmente por diversos dispositivos y equipos.
La comunicación serial de Arduino RS232 puede ser utilizada para adquisición de
datos, control, depuración de código, etc.

Puerto Serie del Arduino

Las placas de Arduino poseen unidades UART que operan a nivel TTL 0 / 5v, lo
que las vuelve compatibles con la conexión USB.

Como ya vimos los pines de los puertos seriales, podemos notar también que la
mayoría de Arduinos disponen de un conector USB que nos permite una conexión
serie instantánea con nuestro ordenador.

Comunicación Serial Arduino PC

Conectamos nuestro Arduino a nuestro computador a través del cable USB, y


dentro del IDE de Arduinos debemos abrir el Monitor Serial
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 4 / 23

El monitor serie de Arduino es una interfaz gráfica integrada al IDE Standard que
nos permite recibir o transmitir datos utilizando el protocolo de comunicación serial,
por lo tanto, dicho monitor serial dispone de ambas zonas (recepción y transmisión)

Pasos para trabajar con la comunicación serial con Arduino


Definir dentro del void setup del Arduino la comunicación serial mediante la
siguiente instrucción

Serial.begin(velocidad);

Donde velocidad puede tomar los siguientes valores: 300, 600, 1200, 2400, 4800,
9600, 14400, 19200, 28800, 38400, 57600 o 115200.

La unidad de medida de las velocidades es el Baudio correspondiente al número de


cambios en una señal por segundo.

Cuando realizamos una comunicación serial con Arduino será necesario establecer
los Baudios del Arduino y los Baudios del dispositivo al que nos vamos a comunicar
(Ambos dispositivos deben tener la misma velocidad en baudios).

1. Dentro del void loop, se pueden imprimir o mostrar los datos en el Monitor
Serial mediante la instrucción:

Serial.print(dato);

2. También puede mostrar el dato con un enter al final

Serial.println(dato);

3. Para leer datos desde el puerto serial se usa:

dato = Serial.read();

4. Para escribir en el puerto serie de Arduino, datos en forma de bytes se usa:

Serial.write(dato);

5. Para conocer si existen datos pendientes en el bus de comunicación serial


usamos:

Serial.available()
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 5 / 23

Esta instrucción retorna un TRUE si es verdad o un FALSE si es falso.

6. Para deshabilitar el puerto serial y de esa forma poder usar los


pines TX y RX como pines digitales, usamos:

Serial.end()

7. Si deseamos preguntar si el puerto serial está listo para efectuar la


comunicación:

if (Serial)

Devuelve true si el puerto serial el cual se ha especificado está disponible.

8. Para leer los datos del buffer y buscar un string especifico usamos el comando:

Serial.find(string);

9. Si se desea configurar el máximo de milisegundos que desea esperarse mientras


llega un dato por el puerto serial (por defecto es 1000ms), se usa:

Serial.setTimeout(time);

10. Para saber cuándo los datos están disponibles y poder


utilizar Serial.read() para capturar estos datos usamos la siguiente instrucción que
actualmente no es compatible con Esplora, Leonardo o Micro

serialEvent();

11. Para esperar a que se complete la transmisión de los datos seriales salientes.

Serial.flush();

12. Para devolver el siguiente byte (carácter) de los datos en serie entrantes sin
eliminarlos del búfer interno se usa:

Serial.peek();

13. Para leer caracteres del buffer serie y guardarlos en un string hasta que se
produzca un timeout usamos:

Serial.readString();
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 6 / 23

Arduino Mega o Due con más de 1 puerto serial

En el caso de trabajar con una placa que poseea más de 1 puerto serial como es el
caso del Arduino Mega o el Due, las instrucciones a usar son exactamente las
mismas, con excepción de que el puerto serial por defecto (el que está conectado al
USB o puerto serial 0) se conoce como Serial, el puerto serial 1, 2 y 3 se conocen
como Serial1, Serial2 y Serial3 respectivamente.

Por lo tanto, para imprimir o leer datos puede hacerse de la siguiente forma:

Serial1.print(dato); //Imprime en el puerto serie 1


dato = Serial3.read(); //lee el puerto serie 3
Serial2.write(dato); //Escribe el dato en puerto serie 2

Ejemplos y Códigos en Arduino

Veamos cómo usar el monitor serial de Arduino utilizando el protocolo de


comunicación serial

Recibir datos serial desde el Arduino

Recibir el valor de una variable contador enviado desde la placa Arduino a través del
puerto de comunicación serial y mostrarlos en el monitor serial.

//Creamos un contador
int contador=0;

void setup() {
//Configuramos el puerto serial
Serial.begin(9600);
}

void loop(){
//Imprimimos el valor del contador en el monitor serial
Serial.print("Contador: ");
Serial.println(contador);
//incrementamos el contador y esperamos medio segundo
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 7 / 23

contador++;
delay(500);
}

3.2 RECURSOS
• Computadora
• Software ARDUINO
• Placa ARDUINO
• Jumper, sensor LM35

3.3 CARACTERIZACIÓN DEL PROCESO

Leer el sensor de temperatura LM35 en Arduino para luego leer el dato


en la PC.

En este fragmento de código se procede a demostrar cómo debemos leer el sensor


de temperatura LM35 en Arduino. La Temperatura es una magnitud que influye de
manera importante en todo proyecto electrónico, puesto que el funcionamiento de
los semiconductores se ve afectado por la temperatura ambiental. En este caso se
ha optado por un sensor bastante normal que detecta temperaturas desde -55ºC a
150ºC, 1ºC equivale a 10mV y soporta tensión de alimentación entre 4V y 30
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 8 / 23

Cuando leemos un sensor analógico con Arduino se realiza a través de la


función analogRead que nos da un valor entre 0 y 1023, lo que significa un total de
1024 valores posibles. Si tenemos 0V a la entrada el, ADC del Arduino nos devolverá,
el número 0 y si tenemos 5V, ADC del Arduino nos devolverá, el número 1023.

A partir de esta información podemos obtener una fórmula matemática que nos
calcule la temperatura en función de la tensión que nos entrega el LM35 en su patilla
OUTPUT, con respecto de tierra.

Temperatura = Valor que entrega el ADC * 5 * 100 / 1024

Si la tensión máxima a ingresar en la entrada analógica es 5V y el número


máximo de cuentas son 1023, entonces a resolución es de 5/1023= 0.0048875V,
es decir 4.8845mV.
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 9 / 23

Según como vamos a utilizar el LM35, conexión, nos entregará una tensión de
10mV por cada grado de temperatura, es decir que a 100 °C la tensión que
entregará el LM35 será de 1V. Aplicando el dato de la resolución, el número
que obtendremos del ADC del Arduino, con el 1V que equivale a los 100°C, será
de 1V/ 0.0048875V el valor resultado será 204.6035. Si aplicamos ese dato a la
fórmula que se proporcionó, podemos comprobar que obtendremos el número
100, que se refiere a los 100°C a los que se someterán al LM35.

Lo primero es ver cómo se conecta el LM35 con la placa Arduino, se muestra en


la fotografía como se conectará:

El código que debemos de subir a nuestra placa sería el siguiente:

// Declaración de variables globales


int tempC; // Variable para almacenar el valor obtenido del sensor (0 a 1023)
float tempeC;
int pinLM35 = 0; // Variable del pin de entrada del sensor (A0)

void setup() {
// Configuramos el puerto serial a 9600 bps
Serial.begin(9600);
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 10 / 23

void loop() {
// Con analogRead leemos el sensor, recuerda que es un valor de 0 a 1023
tempC = analogRead(pinLM35);

// Calculamos la temperatura con la fórmula


tempeC = (5.0 * tempC * 100.0)/1024.0;

// Envía el dato al puerto serial


Serial.print("Salida ADC: ");
Serial.print(tempC);
Serial.print("cuentas");
Serial.print("\n");
Serial.print("Temperatura: ");
Serial.print(tempeC);
Serial.print("°C sensor LM35");
// Salto de línea
Serial.print("\n");
Serial.print("Buenos Aires Sur");
Serial.print("\n");

// Esperamos un tiempo para repetir el loop


delay(2000);
}
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 11 / 23

Dos cosas a tener en cuenta son la utilización del monitor serie y de la


función delay. El puerto serie nos permite ver el resultado de una forma rápida a
través del entorno de desarrollo de Arduino. Se utiliza la función begin para iniciar
la comunicación con el monitor serie y para escribir cada línea utilizamos la
función print. Una vez cargado el código en nuestra placa, puedes ver el monitor
serie si accedes a Herramientas/Monitor serie o con el atajo de
teclado Ctrl+Mayús+M.

Por otro

lado utilizamos la función delay para esperar 1 segundo a volver a tomar la


temperatura. Si no esperáramos este tiempo se producirían muchas lecturas en 1
segundo y para este ejemplo no es necesario.
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 12 / 23
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 13 / 23

Transmisión de datos de una placa ARDUINO a otra placa ARDUINO.

Se necesitan dos placas Arduino y la comunicación se establece usando los pines


número 0 y número 1:

El pin número 0 corresponde a la función de RECEPCIÓN y el pin número 1


corresponde a la función de TRANSMISIÓN.

En la siguiente imagen se nota que para establecer la comunicación entre


las dos placas se debe cruzar las conexiones entre las placas ARDUINO, Es decir,
el pin RECEPTOR de una placa se debe conectar a pin TRANSMISOR de la otra
placa y viceversa.

Los pines 0 y 1, en el ARDUINO UNO corresponden al mismo puerto de


comunicación serie del que se dispone en el conector USB tipo B, por tal razón la
transmisión del código al ATMEGA del ARDUINO se debe realizar con la conexión
entre placas DESHECHA, de otra forma se interrumpirá la transmisión y no será
posible grabar el código en el ATMEGA.
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 14 / 23

Se indica el código que se programará en la placa ARDUINO que cumplirá la


función de TRANSMISOR:
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 15 / 23

Se verifica el ajuste de la velocidad de transmisión a 9600 baudios.


A continuación dentro del void loop se ordena transmitir un número 1 por el
puerto serial y para luego demorar ese estado durante 3000 milisegundos. La
siguiente instrucción ordena transmitir un número 2 por el puerto serial y mantiene
esa situación durante 1000milisegundos, sigue cerrar la llave, entonces se repetirá
la primera instrucción, un loop o lazo.
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 16 / 23

A continuación se indica el código que se programará en la placa ARDUINO


que cumplirá la función de RECEPTOR:

En el encabezado se declaran dos variables del tipo entero int. En el void setup se
declara activar la comunicación serial a una velocidad de 9600 baudios además se
define que el pin 13 se comporte como salida. Se debe recordar que el pin 13 está
relacionado con el Led llamado L.

La función Serial.available ( ) en Arduino obtiene los bytes almacenados del


puerto serie que están disponibles para lectura. Son los datos, que ya están
almacenados y llegaron al búfer en serie. El búfer serial en Arduino contiene los 64
bytes.

La función Serial.available ( ) hereda de la clase de utilidad denominada flujo. La


secuencia solo se invoca cuando se llama a la función que depende de ella. La
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 17 / 23

clase de flujo se considera como la clase base para flujos binarios y basados en
caracteres.
En este escenario se verifica si se produce transmisión de datos, por eso
usa la comparación “mayor que” > 0.
Si se detecta la transmisión de datos [Serial.read] que se almacena en dato
y corresponde al valor “1”, se activará la salida 13 y lo contrario con el número “2”

La comprobación del funcionamiento será que si se mantiene la conexión


entre los puertos seriales de las placas el led de la placa RECEPTOR deberá
oscilar y si se abre la conexión la oscilación se detendrá.
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 18 / 23

4. EVALUACIÓN

Realizar un código con el que en una placa se lea la temperatura y en otra


placa se active una salida de acuerdo al valor de la temperatura.
CÓDIGO: DEE-TC-GUIA 01
LABORATORIO N° 01
USO DE LA COMUNICACIÓN DE LA PLACA ARDUINO EMISION: 13/05/2022
CON LA PC Y ENTRE PLACAS ARDUINO
PAGINA: 19 / 23

5. CONCLUSIONES
Anote sus conclusiones por cada una de las experiencias realizadas.

- El docente explico conceptos claves, uso de las placas Arduino juntamente Y


aplicaciones del sensor LM35

- Se Manejo de la instrucción Serial.begin, Serial.print. Ajuste de la velocidad de


transmisión.

- Se uso el ADC del ARDUINO para medir temperatura ambiental usando un


sensor LM35.

- Se activo el software ARDUINO el monitor serial.

- Se comprobó el cálculo que se hace en la placa Arduino con el dato del ADC que
se transfiere a la PC.

- Se realizo un código con el que en una placa Arduino se lea la temperatura y en


otra placa se active una salida de acuerdo al valor de la temperatura.

6. OBSERVACIONES DEL DOCENTE

También podría gustarte