Comunicazione tra 2 Arduino Uno

Ciao ragazzi,
siccome per il mio progetto ho necessità di utilizzare una quantità di pin che la Ethernet Shield non ha, stavo pensando che potrei far comunicare la Ethernet (montata ovviamente sul primo Arduino Uno), con un altro Arduino, collegando i pin 0 e 1.
E' fattibile?
So che Arduino Mega mette a disposizione molti più pin, ma ho già 3 Arduino Uno in casa e non vorrei comprarne un'altra :roll_eyes:
inoltre mi sembra più interessante farle comunicare tra di loro, dato che è un progetto che devo presentare in una scuola!
Che ne pensate? Si può fare?

Puoi collegarli tramite seriale ai pin 0 e 1 ma poi hai problemi di programmare gli Arduino perche l' upload usa gli stessi pin.
Puoi usare l' emulazione software della seriale.

Ciao Uwe

uwefed:
Puoi usare l' emulazione software della seriale.

... come suggerisce Uwe, anche io ti sconsiglio di usare la vera seriale che ti può sempre servire per fare debug e colloquiare, via USB, con un PC.

Prendi due pin liberi e usa la SoftwareSerial ... più o meno le stesse chiamate della Serial ... :wink:

Guglielmo

C'è una libreria che permette di trasferire strutture dati tra due Arduino in modo semplice --> http://www.billporter.info/2011/05/30/easytransfer-arduino-library/

Innanzitutto grazie per le risposte.
In queste ore ho trovato una soluzione al mio progetto (progetto di domotica gestito da un sito web locale) che non prevede più l'uso della Ethernet, infatti sto mandando tutti i comandi via seriale. (utilizzo quindi IDE Arduino + Processing).

Se volessi quindi collegare le due Arduino Uno, mi basta collegarle con i cavetti utilizzando due pin liberi ?
E usando questo metodo e la SoftwareSerial, come funziona poi la comunicazione ? Lo sketch viene caricato nella mia Arduino "master" che invia comandi all'Arduino "slave" ? E come faccio nello sketch a specificare che l'eventuale pin appartiene allo slave e non al master ?
Ho le idee un po' confuse! :roll_eyes:

La SoftwareSerial non fa altro che crearti una porta seriale aggiuntiva ... diciamo "virtuale" usando due pin liberi, uno per il RX ed uno per il TX ...
... come poi fai parlare tra di loro le due schede ... devi deciderlo tu ... probabilmente dovrai scriverti un protocollo di colloquio ... come del resto avresti fatto se usavi la vera seriale ... non cambia nulla ... :roll_eyes:

Guglielmo

Con questo:

Serial.println("ciao");

spedisci verso la seriale fisica, con il cavo USB spedisci al PC e quindi al monitor dell'IDE.

Con

SoftwareSerial mySerial(10, 11); // RX, TX
...
mySerial.begin(4800);
mySerial.println("Hello, world?");

spedisci attraverso quei pin. Dall'altra l'altro Arduino riceve i dati.

Oltre a RX e TX devi mettere in comune il GND, altrimenti i dati tra le due schede potrebbero essere male interpretati o non interpretati affatto.