Go Down

Topic: Trasmissione variabile tra due arduino (Read 382 times) previous topic - next topic

Artal

Mettiamo il caso che io debba condividere il valore di due variabili tra due arduino, completi o stand alone che siano, così da demandare al primo la creazione di tali variabili tramite l'interazione con l'utente, ad al secondo l'elaborazione...come è meglio fare?
Diciamo che le variabili siano 2 ad hanno entrambi valori da 0 a 16 e che quindi siano necessari 4 bit per la trasmissione, per un totale di 8 bit, inizialmente pensavo di poter semplicemente collegare in parallelo bit per bit ai pin (in tal caso come sarebbe meglio...serve una resistenza di pull-up o pull-down?) ma poi ho pensato che utilizzare 8 bit per comunicare semplicemente 1 byte è un bello spreco quando con l'I2C ne basterebbero 2...per quanto non un fulmine è pur sempre 1 byte!
La domanda a questo punto è: essendo le due variabili non necessariemente modificate allo stesso momento, è possibile comunicare un valore da attribuire ad una variabile o si può semplicemente inviare un valore assoluto?

leo72


Mettiamo il caso che io debba condividere il valore di due variabili tra due arduino, completi o stand alone che siano, così da demandare al primo la creazione di tali variabili tramite l'interazione con l'utente, ad al secondo l'elaborazione...come è meglio fare?
Diciamo che le variabili siano 2 ad hanno entrambi valori da 0 a 16 e che quindi siano necessari 4 bit per la trasmissione, per un totale di 8 bit, inizialmente pensavo di poter semplicemente collegare in parallelo bit per bit ai pin (in tal caso come sarebbe meglio...serve una resistenza di pull-up o pull-down?) ma poi ho pensato che utilizzare 8 bit per comunicare semplicemente 1 byte è un bello spreco quando con l'I2C ne basterebbero 2...per quanto non un fulmine è pur sempre 1 byte!

:smiley-eek:
Ho perso il filo...
Non capisco cosa c'entrino le resistenze col pilotaggio dei pin manipolando direttamente le porte logiche del chip.
Non capisco alla fine quando dici che per spedire 8 bit su I2C ne impieghi solo 2.

Quote

La domanda a questo punto è: essendo le due variabili non necessariemente modificate allo stesso momento, è possibile comunicare un valore da attribuire ad una variabile o si può semplicemente inviare un valore assoluto?

Se "spedisci" un valore, spedisci questo valore, non mandi un riferimento o quant'altro.

Questo link intanto ti può chiarire come assegnare contemporaneamente agli 8 pin agganciati ad una stessa porta lo stato che devono assumere:
http://www.arduino.cc/en/Reference/PortManipulation

Artal


Non capisco cosa c'entrino le resistenze col pilotaggio dei pin manipolando direttamente le porte logiche del chip.
Non capisco alla fine quando dici che per spedire 8 bit su I2C ne impieghi solo 2.


Il fatto è che provando ad utilizzare un interruttore, senza resistenze di pull down i valori che leggono le porte a volte sono sballati...e mi chiedevo quindi se collegando un pin in output di un arduino ad un pin di input direttamente non si incorra nello stesso problema...
Per quanto riguarda l'I2C dicevo che per spedire un byte in quel modo impiegherei solo 2 pin contro gli 8 necessari in parallelo


Quote

Se "spedisci" un valore, spedisci questo valore, non mandi un riferimento o quant'altro.

Questo link intanto ti può chiarire come assegnare contemporaneamente agli 8 pin agganciati ad una stessa porta lo stato che devono assumere:
http://www.arduino.cc/en/Reference/PortManipulation



Il link è molto interessante, fa proprio al caso mio, anche perchè da quanto mi dici l'I2C non permette di specificare altro se non un valore, a quel punto la cosa da fare nell'arduino slave sarebbe quella di interpretare tale valore e ricostruire le due variabili separatamente no?

Go Up