Stap 4: Meer over I2C
Kort om door te gaan de theorie, I2C vereist twee digitale lijnen: seriële Data lijn (SDA) overdracht van gegevens en Seriële klok lijn (SCL) om de klok te houden. Elke I2C-verbinding kan hebben één master en meerdere slaven. Een meester kunt schrijven aan slaven en de slaven te geven gegevens aanvragen, maar geen slaaf kan rechtstreeks schrijven aan de kapitein of een andere slaaf. Elke slaaf heeft een uniek adres op de bus, en de kapitein moet weten de adressen van elke slaaf die het wil openen.
Elke I2C-bus kan ondersteunen maximaal 112 apparaten. Alle apparaten moeten delen GND. De snelheid is ongeveer 100 kb/s— niet erg snel, maar nog steeds respectabele en heel bruikbaar. Het is mogelijk om meer dan één master op een bus, maar het heeft echt ingewikkeld en in het algemeen vermeden.
Een heleboel sensoren I2C gebruiken om te communiceren, meestal Inertial maateenheden, barometers,
temperatuursensoren, en sommige sonar. Vergeet niet dat de I2C niet ontworpen voor lange kabellengtes is. Afhankelijk van het kabeltype gebruikt, kan 2 meter al problemen veroorzaken.
I2C is een ingewikkeld transmissieprotocol, maar het is zeer nuttig. Alle Arduinos uit te voeren, met een paar verschillen in pin-toewijzingen:
I2C pinnen aan boord
Uno, Pro Mini A4 (SDA), A5 (SCL)
Mega, verschuldigde 20 (SDA), 21 (SCL)
Leonardo, Yun 2 (SDA), 3 (SCL)