Arduino cursus/i2c

Uit Lab
< Arduino cursus
Versie door Eelco (overleg | bijdragen) op 10 okt 2017 om 17:02 (Nieuwe pagina aangemaakt met '== I2C library (Wire) == I2C is een protocol om microcontrollers en andere onderdelen aan elkaar te verbingen, via een "bus" met 2 draden: SDA (serial data) en SCL...')
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

I2C library (Wire)

I2C is een protocol om microcontrollers en andere onderdelen aan elkaar te verbingen, via een "bus" met 2 draden: SDA (serial data) en SCL (serial clock).


De I2C-bus heeft een master-slave opzet: dit betekent dat er altijd 1 van de apparaten op de bus als "master" fungeert, en de rest als "slave". In de Arduino-voorbeelden is de Arduino de master, en zijn de andere appareten "slave".

Dit serie-protocol is indertijd door Philips bedacht voor communicatie tussen ic's met minder aansluitingen en minder draden dan de parallelle communicatie die tot dan toe gebruikelijk was. Het wordt inmiddels voor heel veel onderdelen gebruikt, van geheugens tot sensoren en actuatoren.

Je kunt een Arduino ook als slave laten functioneren: dan kun je twee Arduino's via I2C laten communiceren.

I2C-adres

Om een I2C-apparaat (device) vanuit de Arduino te kunnen gebruiken, moet je het I2C-adres van dit device weten. Dit staat vaak in de documentatie van het device. Als je het niet weet, kan de I2C-scanner helpen: deze zoekt alle (slave)devices op de I2C-bus.

Gebruik van de library

De I2C-library heet in de Arduino-IDE: Wire, zie: https://www.arduino.cc/en/Reference/Wire

De Arduino-pinnen voor de I2C bus zijn:

  • A4 - SDA
  • A5 - SCL

Andere microcontrollers hebben soms meerdere pinnen die als I2C-bus gebruikt kunnen worden.

Importeren van de library:

  • #include <Wire.h>

Voor het verdere functies en het gebruik daarvan, zie de Arduino-referentie: https://www.arduino.cc/en/Reference/Wire