Wire
Description :
Cette bibliothèque vous permet de communiquer avec des périphériques I2C, une fonctionnalité présente sur toutes les cartes Arduino. I2C est un protocole très courant, principalement utilisé pour la lecture et l’envoi de données vers/depuis des composants I2C externes. Pour en savoir plus, consultez cet article consacré à Arduino et I2C.
En raison de la conception matérielle et des différences architecturales, les broches I2C sont situées à des emplacements différents. Le plan des broches ci-dessous présente les broches par défaut, ainsi que les ports supplémentaires disponibles sur certaines cartes.
Board | I2C Default | I2C1 | I2C2 | Notes |
---|---|---|---|---|
UNO R3, UNO R3 SMD, UNO Mini LE | A4(SDA), A5(SCL) | I2C également disponible sur le SDA / SCL pins (digital header). | ||
UNO R4 Minima, UNO R4 WiFi | A4(SDA), A5(SCL) | Qwiic: D27(SDA), D26(SCL) | I2C également disponible sur le SDA / SCL pins (digital header). | |
UNO WiFi Rev2, Zero | 20(SDA), 21(SCL) | |||
Leonardo, Micro, Yùn Rev2 | D2(SDA), D3(SCL) | |||
Nano boards | A4(SDA), A5(SCL) | |||
MKR boards | D11(SDA), D12(SCL) | |||
GIGA R1 WiFi | 20(SDA), 21(SCL) | D102(SDA1), D101 (SCL1) | D9(SDA2), D8 (SCL2) | Utiliser Wire1.begin() pour I2C1, et Wire2.begin() pour I2C2. |
Due | 20(SDA), 21(SCL) | D70(SDA1), D71(SCL1) | Utiliser Wire1.begin() pour I2C1 | |
Mega 2560 Rev3 | D20(SDA), D21(SCL) |
Cette bibliothèque hérite des fonctions Stream, ce qui la rend cohérente avec les autres bibliothèques de lecture/écriture. De ce fait, send() et receive() ont été remplacés par read() et write().
Les versions récentes de la bibliothèque Wire peuvent utiliser des timeouts pour éviter un blocage en cas de problèmes sur le bus, mais cette option n’est pas (encore) activée par défaut. Il est recommandé de toujours activer ces timeouts lors de l’utilisation de la bibliothèque Wire. Consultez la fonction Wire.setWireTimeout pour plus de détails.
Remarque : Il existe des versions 7 et 8 bits des adresses I2C. 7 bits identifient le périphérique, et le huitième bit détermine s’il est en cours d’écriture ou de lecture. La bibliothèque Wire utilise des adresses 7 bits. Si vous disposez d’une fiche technique ou d’un exemple de code utilisant une adresse 8 bits, il est conseillé de supprimer le bit de poids faible (c’est-à-dire de décaler la valeur d’un bit vers la droite), ce qui donne une adresse comprise entre 0 et 127. Cependant, les adresses de 0 à 7 ne sont pas utilisées car elles sont réservées ; la première adresse utilisable est donc 8. Veuillez noter qu’une résistance de rappel est nécessaire pour connecter les broches SDA/SCL. Veuillez consulter les exemples pour plus d’informations. La carte Mega 2560 est équipée de résistances de rappel sur les broches 20 et 21.
L’implémentation de la bibliothèque Wire utilise une mémoire tampon de 32 octets ; toute communication doit donc respecter cette limite. Tout dépassement d’octets lors d’une transmission unique sera supprimé.
Pour utiliser cette bibliothèque :
#include <Wire.h>
Fonctions :
- begin()
- end()
- requestFrom()
- beginTransmission()
- endTransmission()
- write()
- available()
- read()
- setClock()
- onReceive()
- onRequest()
- setWireTimeout()
- clearWireTimeoutFlag()
- getWireTimeoutFlag()
Source : https://docs.arduino.cc/language-reference/en/functions/communication/wire/