Arduino Forum

International => Italiano => Software => Topic started by: Piero78 on Jan 25, 2013, 11:34 pm

Title: Trasmissione tra 2 schede Arduino
Post by: Piero78 on Jan 25, 2013, 11:34 pm
Ciao, sto cercando di effettuare una comunicazione tra 2 schede Arduino, nello specifico tra una Arduino UNO e una Romeo della DFRobot (basata su Arduino UNO).

La situazione è questa:
- La Arduino UNO è collegata ad una basetta dove sono presenti dei led da accendere per confermare l'avvenuta comunicazione.
Su di essa gira questo sketch:
Code: [Select]
const unsigned int ledPin = 13; // Settaggio del PIN a cui è connesso il led verde
const unsigned int ledPin2 = 12; // Settaggio del PIN a cui è connesso il led rosso
const unsigned int ledPin3 = 11; // Settaggio del PIN a cui è connesso il led giallo

void setup()
{
 pinMode(ledPin, OUTPUT); // Settaggio del programma per lavorare in OUTPUT sul PIN 13
 pinMode(ledPin2, OUTPUT); // Settaggio del programma per lavorare in OUTPUT sul PIN 12
 pinMode(ledPin3, OUTPUT); // Settaggio del programma per lavorare in OUTPUT sul PIN 11
 Serial.begin(9600); // Avvio la comunicazione seriale
}

void loop()
{
 if (Serial.available()) // Se ci sono dati in lettura
 {
   int car = Serial.read(); // Leggo il dato
   switch (car)
   {
     case '1':
          digitalWrite(ledPin, HIGH); // Accendo il LED verde
          break;
     case '2':
          digitalWrite(ledPin, LOW); // Spengo il LED verde
          break;
     case '3':
          digitalWrite(ledPin2, HIGH); // Accendo il LED rosso
          break;
     case '4':
          digitalWrite(ledPin2, LOW); // Spengo il LED rosso
          break;
     case '5':
          digitalWrite(ledPin3, HIGH); // Accendo il LED giallo
          break;
     case '6':
          digitalWrite(ledPin3, LOW); // Spengo il LED giallo
          break;
   }
 }
}


- La Romeo è connessa alla Arduino UNO sfruttando la classe SoftSerial.h, attende comandi dal PC tramite la porta seriale hw e dovrebbe inviarli alla Arduino UNO.
Lo sketch che gira su di essa è il seguente:
Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial SerialeUNO(12, 13); // RX, TX 12(romeo)->1(UNO) 13(romeo)->0(UNO)

void setup()
{
 Serial.begin(9600); // Seriale a cui è connesso il modulo bluetooth
 SerialeUNO.begin(9600); // Seriale connessa all'Arduino UNO
}

void loop()
{
 if (Serial.available()) // Se ci sono dati in lettura
 {
   int car = Serial.read(); // Leggo il dato
   switch (car)
   {
     case '1':
          SerialeUNO.print(1);
          SerialeUNO.println();
          //digitalWrite(ledPin, HIGH); // Accendo il LED verde
          break;
     case '2':
          SerialeUNO.print("2");
          SerialeUNO.println();
          //digitalWrite(ledPin, LOW); // Spengo il LED verde
          break;
     case '3':
          SerialeUNO.print("3");
          SerialeUNO.println();
          //digitalWrite(ledPin2, HIGH); // Accendo il LED rosso
          break;
     case '4':
          SerialeUNO.print("4");
          SerialeUNO.println();
          //digitalWrite(ledPin2, LOW); // Spengo il LED rosso
          break;
     case '5':
          SerialeUNO.print("5");
          SerialeUNO.println();
          //digitalWrite(ledPin3, HIGH); // Accendo il LED giallo
          break;
     case '6':
          SerialeUNO.print("6");
          SerialeUNO.println();
          //digitalWrite(ledPin3, LOW); // Spengo il LED giallo
          break;
   }
 }
}


Quando invio il comando dal PC verso la Romeo, il comando viene ricevuto, ma la comunicazione con la Arduino UNO non avviene.
Qualche suggerimento?
Grazie!
Title: Re: Trasmissione tra 2 schede Arduino
Post by: uwefed on Jan 26, 2013, 01:56 am
hai collegato TX con RX e viceversa e la massa dei 2 Arduini?
Ciao Uwe
Title: Re: Trasmissione tra 2 schede Arduino
Post by: Piero78 on Jan 26, 2013, 06:38 am
Azz... ho collegato TX con RX e viceversa, ma non la massa...   :smiley-red:

Una domanda, posso creare una porta seriale sw anche sulla Arduino UNO ed usare quella invece di quella hw (pin 0 e 1)?
In pratica lavorerei su 2 porte sw, una su ogni scheda.
Title: Re: Trasmissione tra 2 schede Arduino
Post by: leo72 on Jan 26, 2013, 08:03 am

Azz... ho collegato TX con RX e viceversa, ma non la massa...   :smiley-red:

Una domanda, posso creare una porta seriale sw anche sulla Arduino UNO ed usare quella invece di quella hw (pin 0 e 1)?
In pratica lavorerei su 2 porte sw, una su ogni scheda.

Certo che puoi, usando la SoftwareSerial:
http://arduino.cc/en/Reference/SoftwareSerial
Title: Re: Trasmissione tra 2 schede Arduino
Post by: uwefed on Jan 26, 2013, 10:34 am

Azz... ho collegato TX con RX e viceversa, ma non la massa...   :smiley-red:

centrato e affondato.
Buon lavoro ciao Uwe
Title: Re: Trasmissione tra 2 schede Arduino
Post by: Piero78 on Jan 26, 2013, 11:48 pm
Problema risolto, grazie!
Title: Re: Trasmissione tra 2 schede Arduino
Post by: brainbooster on Jan 27, 2013, 04:38 pm
aggiugi la dicitura "risolto" nel titolo
Title: Re: Trasmissione tra 2 schede Arduino
Post by: lollo1100 on Feb 05, 2013, 12:56 pm
Ciao, ma nel tuo esperimento da quanto ho capito hai collegato fisicamente i piedini delle due schede? Giusto?