Come far dialogare due schede arduino

Ciao a tutti.
Sto sviluppando un robot autonomo 24 ore su 24 solare.
Mi servirebbe sapere come far parlare due arduini e se c'è la possibilità di far gestire a uno i sensori e all'altro il movimento. E' possibile?
Con che porta si fa? :sunglasses:

Pensandoci bene non penso di avere bisogno di una connessione biunivoca tra i due controller, mi basterebbe che uno dicesse che dati sta ottenendo all'altro.

Ciao, io proverei a farli comunicare via SPI settando un arduino come master ed uno come slave. Usando i normali piedini per l' SPI ovvero:

pin 13 SCK SPI clock
pin 12 MISO SPI master in, slave out
pin 11 MOSI SPI master out, slave in
pin 10 SS SPI slave select

lato master..

pinMode(MOSI, OUTPUT);
pinMode(MISO, INPUT);
pinMode(SCK,OUTPUT);
pinMode(SS,OUTPUT);

lato slave direi l'opposto... gli output del master sono gli input dello slave

come codice il master deve selezionare lo slave tramite lo slave select e legger/srivere i dati dallo slave.

lo slave potrebbe far eun polling sul suo piedino di slave select per vedere quando il master lo attiva.

Oppure potrebbe essere attivato via interrupt.

Mi sembra che ci sia tutto...

ciao ciao facci sapere

Ma e' meglio via spi, piuttosto che via seriale?

io uso l'i2c
anche perchè ci faccio passare anche altri dati che così sono disponibili a tutti con pochi cavi...
ho solo un problema in quanto non mi legge i primi due byte o meglio mi dà caratteri strani..

Ciao eccomi.
Non conosco l'SPI. Scusa ma non sono così esperto :P.
In cosa consiste?
Con la porta seriale non è più semplice?
Anche se me la sarei tenuta per un piccolo display non retroilluminato...

C'e' una libreria con la quale, da due pin a caso dell'arduino, puoi creare una seriale. Quindi, puoi averne molte.

Federico, hai il riferimento di questa libreria?
Potrebbe essere comoda anche a me...Ma quindi puoi usare qualsiasi piedino (digitale o analogico?) come se fosse RX o TX?
E puoi usarli in concomitanza con RX/TX nel senso che con i piedini X e Y trasmetti da una parte e con RX/TX da un'altra?

COme scrivevo in un mio post di qualche giorno fa, ho provato questa lib con gli xbee http://sundial.org/arduino/index.php/newsoftserial/

Esempio

#include <NewSoftSerial.h>

// Here's a GPS device connect to pins 3 and 4
NewSoftSerial gps(4,3);

// A serial thermometer connected to 5 and 6
NewSoftSerial therm(6,5);

// An LCD connected to 7 and 8
NewSoftSerial LCD(8,7); // serial LCD

void loop()
{
...
// collect data from the GPS unit for a few seconds
read_gps_data(); // use gps as active device
// collect temperature data from thermometer
read_thermometer_data(); // now use therm
// LCD becomes the active device here
LCD.print("Data gathered...");
...
}

Ottimo, no?

il primo tra i i due che inizializzi è tx o rx?
(tx,rx) o (rx,tx)

Sono andato a controllare...

RX,TX

grazie
sto iniziando ad usare un gps e ho vari problemi... almeno questo risolto
grazie ancora

Ciao grazie a tutti per il supporto, non ho ancora sotto mano il secondo controller perchè le mie due schede sono entrambe occupate in due progetti diversi :wink:

Esistono altri progetti all'interno del forum che utilizzino questo tipo di connessione tra piu' arduini?

ragazzi mi consigliate una buona guida di c per capire come si programma? io riesco a copiare incollare scopiazzare e fare aggiuntine, ecco vorrei capire davvero il codice. :o