Вы находитесь на странице: 1из 14

UNIVERSIDAD MAYOR DE SAN SIMÒN

FACULTAD DE CIENCIAS Y TECNOLOGIA


DEPARTAMENTO DE ELECTRONICA

LINEAS DE TRANSMISION Y
PROPAGACION
TRABAJO PRACTICO

COMUNICACIÓN SERIAL ENTRE 2 ARDUINOS

Docente: Boris Alfaro

Estudiantes :

MAURICIO CLAUDIO MONTAÑO ZEBALLOS

KEVIN CARTAGENA MARIACA

Fecha de entrega: 12/12/2017

SEMESTRE II /2017
Comunicación serie entre dos Arduinos

En este POST vamos a conectar dos Arduinos UNO Rev.3 a través de un puerto serie
denominado “mySerial” que he creado mediante software, gracias a la librería , en los
pines digitales 10 (Recepción  RX) y 11 (Emisión  TX) de cada uno de los Arduinos. Es
necesario realizar dos montajes, el del “Arduino Emisor”, que va a ser el que tiene
conectado el pulsador (pin digital 4) y está alimentado a través del puerto USB de nuestro
PC, y el del ”Arduino Receptor” que es el que tiene conectado el LED (pin digital 5) y que
está alimentado directamente a través del pin Vin mediante los +5V que entrega el
“Arduino Emisor”. Las masas (GND) de ambos Arduinos deben estar conectadas entre sí.

Diagrama de conexión serie RX/TX entre los Arduinos

Para realizar una comunicación serie unidireccional satisfactoria entre los dos Arduinos,
simplemente tenemos que conectar el pin 11 (TX) del “Arduino Emisor” al pin 10 (RX) del
“Arduino Receptor”, para posteriormente cargar los correspondientes programas. Si todo
está correcto veremos que el LED conectado al “Arduino Receptor” permanecerá
encendido mientras estemos presionamos el pulsador conectado al “Arduino Emisor”. Es
un ejemplo muy sencillo al cual vosotros podéis ir añadiendo mayor número de
componentes y que se ejecuten muchas más funciones (podéis intentar realizar una
comunicación bidireccional entre los dos Arduinos). Para mayor información consultar los
comentarios del código del programa.

Lista de Materiales:

 2 Arduinos UNO Rev.3.


 Cable USB tipo A-B.
 Pulsador.
 LED de 3mm (de cualquier color).
 Resistencias de 220Ω y 10KΩ.
 Protoboard.
 Cables de conexión.

Código del programa:

Emisor serie (TX) :

/* TITULO: Comunicación serie entre dos Arduinos - Emisor_serie_TX

DESCRIPCIÓN DEL PROGRAMA

Programa que envía un caracter "H" (presionado) o "L" (no presionado), a través del
puerto serie
"mySerial" creado por software, en función del estado en el que se encuentre el
pulsador.

ESQUEMA DE CONEXION

+-----+
+----[PWR]-------------------| USB |--+
| +-----+ |
| GND/RST2 [ ][ ] |
| MOSI2/SCK2 [ ][ ] A5/SCL[ ] |
| 5V/MISO2 [ ][ ] A4/SDA[ ] |
| AREF[ ] |
| GND[ ] |
| [ ]N/C SCK/13[ ] |
| [ ]IOREF MISO/12[ ] |
| [ ]RST MOSI/11[ ]~| Pin RX del "Arduino Receptor"
| [ ]3V3 +---+ 10[ ]~|
| [ ]5v -| A |- 9[ ]~|
| [ ]GND -| R |- 8[ ] |
| [ ]GND -| D |- |
| [ ]Vin -| U |- 7[ ] |
| -| I |- 6[ ]~|
| [ ]A0 -| N |- 5[ ]~|
| [ ]A1 -| O |- 4[ ] | PA
| [ ]A2 +---+ INT1/3[ ]~|
| [ ]A3 INT0/2[ ] |
| [ ]A4/SDA RST SCK MISO TX>1[ ] |
| [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] |
| [][][] |
| UNO_R3 GND MOSI 5V ____________/
\_______________________/

NOTAS:

- Los pulsadores suelen tener dos pines, que vamos a denominar PA y PB (si es de 4 sólo
usamos 2 de ellos)
- Conexión PULL-DOWN del pulsador.
- PB conectado a VCC.
- PA conectado a GND a través de una R=10K ohms.
- Las masas de los dos Arduinos tienen que estar unidas entre sí.

*/

// Incluimos la librería
#include <SoftwareSerial.h>

const int Pulsador = 4; // Pin digital para el pulsador


int estadoPulsador = 0; // Variable para ver el estado del pulsador

// Declaro un nuevo puerto para la comunicación serie


SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
{
mySerial.begin(9600); // Comienzo de la comunicación serie
pinMode(Pulsador, INPUT); // Pin digital 4 como entrada
}
void loop()
{
// Lee y almacena el estado del pulsador
estadoPulsador = digitalRead(Pulsador);

// Si el pulsador está presionado


if (estadoPulsador == HIGH)
{
mySerial.write('H'); // Enviamos 'H' por el puerto serie (TX)
}
else
{
mySerial.write('L'); // Enviamos 'L' por el puerto serie (TX)
}
}

Receptor serie (RX) :

/* TITULO: Comunicación serie entre dos Arduinos - Receptor_serie_RX

DESCRIPCIÓN DEL PROGRAMA

Programa que recibe un carácter a través del puerto serie "mySerial" creado por software:

- Si el carácter recibido es "H" se enciende el LED (pulsador presionado).

- Si el carácter recibido es "L" se apaga el LED (pulsador no presionado).

ESQUEMA DE CONEXION

+-----+

+----[PWR]-------------------| USB |--+

| +-----+ |

| GND/RST2 [ ][ ] |

| MOSI2/SCK2 [ ][ ] A5/SCL[ ] |
| 5V/MISO2 [ ][ ] A4/SDA[ ] |

| AREF[ ] |

| GND[ ] |

| [ ]N/C SCK/13[ ] |

| [ ]IOREF MISO/12[ ] |

| [ ]RST MOSI/11[ ]~|

| [ ]3V3 +---+ 10[ ]~| Pin TX del "Arduino Emisor"

| [ ]5v -| A |- 9[ ]~|

| [ ]GND -| R |- 8[ ] |

| [ ]GND -| D |- |

+5V | [ ]Vin -| U |- 7[ ] |

| -| I |- 6[ ]~|

| [ ]A0 -| N |- 5[ ]~| LED(+)

| [ ]A1 -| O |- 4[ ] |

| [ ]A2 +---+ INT1/3[ ]~|

| [ ]A3 INT0/2[ ] |

| [ ]A4/SDA RST SCK MISO TX>1[ ] |

| [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] |

| [][][] |

| UNO_R3 GND MOSI 5V ____________/

\_______________________/

NOTAS:

- Cátodo(-) del LED (pata más corta) a GND a través de una R=220 omhs.

- Este Arduino se alimenta conectando el pin "Vin" a los +5V del "Arduino Emisor".

- Las masas de los dos Arduinos tienen que estar unidas entre sí.

*/
// Incluimos la librería

#include <SoftwareSerial.h>

const int LED = 5; // Pin digital para el LED

char estado;

// Declaro un nuevo puerto para la comunicación serie

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()

mySerial.begin(9600); // Comienzo de la comunicación serie

pinMode(LED, OUTPUT); // Pin digital 5 como salida

void loop()

// Si por el puerto serie llegan datos (RX)

if (mySerial.available())

// Almaceno el carácter que llega por el puerto serie (RX)

estado = mySerial.read();

// Si es una 'H'

if (estado == 'H')

{
// Enciendo el LED (nivel ALTO)

digitalWrite(LED, HIGH);

// Si es una 'L'

if (estado == 'L')

// Apago el LED (nivel BAJO)

digitalWrite(LED, LOW);

}
CONCLUCIONES:

En el osciloscopio no se podía observar de manera adecuada la señal transmitida a travez del


cable, por tanto se utilizo un analizador de espectros para observar la señal de manera mas clara.

No se corto el cable ya que la señal que mostraba con los 35m era bastante buena y no se vio
motivos para cortar .

Вам также может понравиться