Академический Документы
Профессиональный Документы
Культура Документы
LINEAS DE TRANSMISION Y
PROPAGACION
TRABAJO PRACTICO
Estudiantes :
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í.
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:
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>
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);
Programa que recibe un carácter a través del puerto serie "mySerial" creado por software:
ESQUEMA DE CONEXION
+-----+
| +-----+ |
| GND/RST2 [ ][ ] |
| MOSI2/SCK2 [ ][ ] A5/SCL[ ] |
| 5V/MISO2 [ ][ ] A4/SDA[ ] |
| AREF[ ] |
| GND[ ] |
| [ ]N/C SCK/13[ ] |
| [ ]IOREF MISO/12[ ] |
| [ ]5v -| A |- 9[ ]~|
| [ ]GND -| R |- 8[ ] |
| [ ]GND -| D |- |
+5V | [ ]Vin -| U |- 7[ ] |
| -| I |- 6[ ]~|
| [ ]A1 -| O |- 4[ ] |
| [ ]A3 INT0/2[ ] |
| [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] |
| [][][] |
\_______________________/
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>
char estado;
void setup()
void loop()
if (mySerial.available())
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')
digitalWrite(LED, LOW);
}
CONCLUCIONES:
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 .