In questo progetto vedremo come controllare una scheda Arduino tramite un’altra scheda Arduino. Per questo utilizzeremo una libreria chiamata Software Serial che consentirà la comunicazione tra i due tramite collegamento UART. Questa libreria esiste già nell’IDE Arduino e non richiede alcun download.

Per poter controllare la prima scheda utilizzeremo il monitor seriale. Questo ci consentirà di controllare il LED dalla prima scheda Arduino. Questa connessione consentirà di accendere o spegnere un LED.

Difficoltà:

Attrezzatura necessaria

Adesso recupereremo il materiale necessario per il progetto:

  • Una scheda Arduino Uno
  • Un LED rosso
  • Un resistore da 220 ohm
  • 3 fili di collegamento

Schema del progetto

Come funziona?

Per comunicare tramite UART tra le due schede vengono utilizzati due pin: TX e RX della scheda Arduino ricevente e due pin digitali della scheda trasmittente. Utilizziamo quindi i due monitor seriali delle due schede per poter gestire la comunicazione tra di esse.

Programma del progetto

Con questo programma, per accendere il LED, basta aggiungere 1 nel monitor seriale e poi 0 per spegnerlo:

Ecco il programma:
#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');
  }
}

Come installare la libreria Software Serial?

La libreria Software Serial è già inclusa nell’IDE Arduino, quindi non sarà necessario installarla.

Come modificare il programma?

Questo programma attualmente consente di accendere o spegnere il LED. Tuttavia, è possibile adattare questo programma al proprio progetto, facendolo accendere un motore o un altro componente.

Per attivare un componente puoi aggiungere qualsiasi cosa tu voglia nel parametro if. Puoi anche sostituire 1 con qualcos’altro come “On”:

  if (input == 1){
    Serial.println('1');
    serial1.println('1');
  }

Per poter disattivare questo componente, è necessario farlo in “input = 0”. È possibile modificare lo 0 in Off, ad esempio:

 if (input == 0){
    Serial.println('0');
    serial1.println('0');
  }

Simulazione del progetto

Ecco la simulazione del progetto su Tinkercad: