Scusate la domanda forse banale.
Sto studiando il modulo GY-521 che si collega ad arduino col protocollo I2C e scopro che i terminali SDA e SDC sono collegati a due pin analogici (A4 e A5).
Come mai? Non è un protocollo digitale I2C?
Quei pin hanno funzioni multiple. Possono funzionare da pin analogici OPPURE da pin i2c. Se li usi in un modo non puoi usarli nell'altro.
I pin i2c non sono mappati su A4/A5 su tutti gli Arduino. Ad esempio sulla Mega o sulla Leonardo sono diversi, perché usano microcontrollori diversi. Per questo sono stati introdotti dei connettori fissi per l'i2c sulle schede più nuove (tipo la Uno Rev 3), posizionati oltre il pin 13, in modo da averli in un posto sempre consistente.
SukkoPera:
Quei pin hanno funzioni multiple. Possono funzionare da pin analogici OPPURE da pin i2c. Se li usi in un modo non puoi usarli nell'altro.
... non solo, aggiungerei che qualsiasi pin analogico A0 .. A5 di Arduino UNO può tranquillamente essere usato come pin digitale, basta che lo si inizializzi correttamente con la pinMode() e lo si usi con le digitalRead() e digitalWrite(), come qualunque pin di I/O.
Grazie mille per le delucidazioni molto precise.
Io ho una UNO Rev 3, se non ho capito male i pin specifici del i2c sono sono quelli oltre il 13? Oppure usando la libreria Wire assume che colleghi il GY-521 ai pin A4/A5?