# protocole-i2c

## Le protocole I2C

* [Pourquoi des resistances de tirage par Sparkfun](https://learn.sparkfun.com/tutorials/pull-up-resistors "https://learn.sparkfun.com/tutorials/pull-up-resistors")
* [L'I2C explique par Sparkfun](https://learn.sparkfun.com/tutorials/i2c "https://learn.sparkfun.com/tutorials/i2c")

### La bibliothèque Wire

Wire est une bibliothèque Arduino qui permet de gérer l'I2C (cf [Référence](https://www.arduino.cc/en/Reference/Wire "https://www.arduino.cc/en/Reference/Wire")).

Pour entamer une communication avec un appareil:

```c
Wire.beginTransmission(<addresse>);
Wire.write(<octet>);
...
Wire.write(<octet>);
Wire.endTransmission();
```

On peut aussi attendre des données d'un appareil:

```c
Wire.requestFrom(<addresse>, <nombre octets>)
```