Salve, è possibile scegliere su quali Pin avviare la comunicazione i2c?
NO, sono fissati nell'hardware della MCU.
Guglielmo
gpb01:
NO, sono fissati nell'hardware della MCU.Guglielmo
Ah ho capito, quindi per avere più comunicazioni i2c ci vorrebbe ad esempio l'Arduino mega , giusto ? Che ha 2 Pin SDA e 2 SCL
Premetto che non so niente di elettronica, ma la cosa dovrebbe essere cosi ![]()
Puoi collegare più dispositivi allo stesso bus i2c, se ad esempio hai più sensori i2c, puoi collegarli agli stessi pin. La comunicazione avviene tramite indirizzo del dispositivo collegato al bus, per cui 5 sensori con 5 indirizzi diversi permette la comunicazione.
Il bus è solo un canale di comunicazione, più dispositivi non interferiscono tra loro, per cui posso controllare un lcd i2c e sensori i2c, su gli stessi pin.
torn24:
Puoi collegare più dispositivi allo stesso bus i2c, se ad esempio hai più sensori i2c, puoi collegarli agli stessi pin. La comunicazione avviene tramite indirizzo del dispositivo collegato al bus, per cui 5 sensori con 5 indirizzi diversi permette la comunicazione.
Si questo è vero, il problema è scegliere gli indirizzi. Ne ho 10 che scelgono tutti lo stesso indirizzo XD sono sensori MPU6050, e c'è la possibilità di scegliere tra due indirizzi in base a come collego un Pin particolare che si chiama A0. Per arrivare a 10 mi sa allora che dovrò usare 3 Arduini mega che comunicano in seriale. Perchè dato che posso scegliere tra due indirizzi per gli MPU, con due comunicazioni i2c per ciascun Arduino mega, arrivo a 12 dispositivi possibili
... se li cerchi vedrai che esistono "multiplexer I2C" che ti permettono proprio di gestire su un unico canale I2C più devisces tutte con lo stesso indirizzo.
Guglielmo
gpb01:
... se li cerchi vedrai che esistono "multiplexer I2C" che ti permettono proprio di gestire su un unico canale I2C più devisces tutte con lo stesso indirizzo.Guglielmo
Ti ringrazio, è vero ne ho visto uno della adafruit e ha 8 canali. Con quello dovrei riuscire a gestire fino a 16 accelerometri