Controlla una scheda Arduino da un Arduino!

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: