I2C un protocollo molto utile ma per me molto sconosciuto

Ciao a tutti, avendo in casa 2 schede arduino, ho voluto provare a farle comunicare tra loro (utile anche per il mio progetto) utilizzando i collegamenti I2C, per fare delle prove e capire come funziona prima di iniziare con le modifiche personali ho utilizzato i 2 metodi trovati qui sul sito, ai link:

http://www.arduino.cc/en/Tutorial/MasterWriter http://www.arduino.cc/en/Tutorial/MasterReader

Prima di tutto io ho messo in collegamento un arduino due e un arduino uno R3, usando invece che i pin A4-A5 ho usato quelli specifici SDA-SCL, nn ho trovato da nessuna parte che debbano essere definiti, confermate?

Detto questo il problema principale per entrambi sul seriale nn vedo nessun dato, qualcuno paziente che mi spiega come si programma il sistema I2C, anche perché nel mio progetto i dati che voglio mostrare li passo sul lcd nn nel seriale, già vedere qualcosa lì sarebbe tanto..

Grazie ;)

Lascia stare; rischi di rompere l'Arduino DUE (se non é giá rotto) perché funziona a 3,3V. O usi 2 Arduini che funzionano entrambi a 5V o entrambi a 3,3V oppure devi mettere un level shifter in mezzo.

Ciao Uwe

bhe tecnicamente se glieli hanno messi si possono usare... uso i 3,3V invece che i 5V dove sta il problema... se ci sono altri metodi spiegatemeli, perché nn ne conosco :P

Erik84: dove sta il problema... se ci sono altri metodi spiegatemeli, perché nn ne conosco :P

La I2C della DUE non è compatibile, come livelli logici, con la I2C della UNO, come ti ha già detto Uwe stai rischiando di danneggiare la DUE, in mezzo ci deve mettere un level shifter inoltre ti serve un device I2C Master e uno Slave, e non due Master.

Quindi, con il level shifter la UNO la posso configurare come slave e la DUE come master? (il mio intento era di usare la DUE come master e la UNO come slave, addirittura ne avrei volute implementare altre) ma se mi dici così, deciderò di usare o solo UNO o solo la DUE.

E c'è un modo per capire se ho già fatto dei danni sulla DUE provando i metodi dei link precedenti?

Quindi, con il level shifter la UNO la posso configurare come slave e la DUE come master?

Il Level Shifter non è altro che un circuitino che fa' da adattatore di livello tra il bus a 5V e quello a 3.3V Ecco un esempio di adattatore di livelli level shifter Messo questo tra le due schede, devi configurarne una come Master e l'altra come Slave, quale delle due ( la UNO o la DUE ) lo dedici tu Nei tutorial che hai linkato, ci sono in ognuno dei due gli esempi per le due modalita'.

ah grazie, stamattina son riuscito a darci un'occhiata e pensavo di utilizzare questo https://www.sparkfun.com/products/12009 così da poter collegare più di un dispositivo (se nn ho capito male)

Per quanto riguarda configurare il master e lo slave penso di averlo capito, il codice master è: Wire.beginTransmission(1);

mentre per lo slave è: Wire.begin(1);

con il primo identifico a quale indirizzo mandare il segnale e con il secondo identifico l'indirizzo dello slave

perdonatemi se nn ho messo i dati per mandarvi direttamente al sito, ma nn mi ricordo come si fa e essendo a lavoro nn dovrei neanche farlo :P