En este proyecto veremos cómo controlar una placa Arduino con otra placa Arduino. Para ello utilizaremos una librería llamada Software Serial que permitirá la comunicación entre ambos vía enlace UART. Esta biblioteca ya existe en Arduino IDE sin necesidad de descargar nada.

Para poder controlar la primera tarjeta utilizaremos el monitor serie. Esto nos permitirá controlar el LED desde la primera placa Arduino. Esta conexión le permitirá encender o apagar un LED.

Dificultad:

Equipo necesario

Ahora conseguiremos el material necesario para el proyecto:

  • Una placa Arduino Uno
  • Un LED rojo
  • Una resistencia de 220 ohmios
  • 3 cables de conexión

Esquema del proyecto

¿Cómo funciona?

Para la comunicación vía UART entre las dos tarjetas se utilizan dos pines: el TX y RX de la tarjeta Arduino receptora y dos pines digitales de la tarjeta transmisora. Luego utilizamos los dos monitores seriales de las dos tarjetas para poder gestionar la comunicación entre ellas.

programa del proyecto

Con este programa, para encender el LED solo necesitas agregar un 1 en el monitor serial y luego un 0 para apagarlo:

Aquí está el programa:

#include "SoftwareSerial.h" 
SoftwareSerial serial1(2,3); 

int input; 

void setup()
{
  Serial.begin(9600); 
  serial1.begin(9600); 
}

void loop() 
{
  while (Serial.available()>0){
    input = Serial.parseInt(); 
  if (input == 1){
    Serial.println('1');
    serial1.println('1');
  }
  if (input == 0){
    Serial.println('0');
    serial1.println('0');
  }
}

¿Cómo instalar la librería Software Serial?

La biblioteca Software Serial ya está incluida en Arduino IDE, por lo que no necesitarás instalarla.

¿Cómo modificar el programa?

Este programa actualmente le permite encender o apagar el LED. Sin embargo, puedes adaptar este programa a tu proyecto haciendo que encienda un motor u otro componente.

Para activar un componente puedes agregar lo que quieras en el if. También puedes reemplazar el 1 con algo más como «On»:

  if (input == 1){
    Serial.println('1');
    serial1.println('1');
  }
Para poder apagar este componente debes hacerlo en el “input=0”. Puedes cambiar el 0 para ponerlo en Off por ejemplo:
 if (input == 0){
    Serial.println('0');
    serial1.println('0');
  }

Simulación de proyecto

Aquí está la simulación en tinkercad del proyecto: