start:arduino:i2c
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
start:arduino:i2c [2020/12/04 16:56] – [Le protocole I2C] gerardadmin | start:arduino:i2c [2023/02/03 10:45] (Version actuelle) – [Avenir de I2C ==> I3C] gerardadmin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
======== Bus I2C ======== | ======== Bus I2C ======== | ||
+ | |||
+ | {{ : | ||
=== Le protocole I2C=== | === Le protocole I2C=== | ||
Ligne 13: | Ligne 15: | ||
- | Le nombre maximum d' | + | Le nombre maximum d' |
+ | |||
+ | Il faut savoir que des adresses sont réservées pour diffuser des messages en broadcast et que de nombreuses adresses sont déjà attribuées par les fabricants ce qui limite grandement le nombre d' | ||
+ | |||
+ | **__Temps et vitesses__** | ||
+ | |||
+ | Il existe cinq vitesses de transmission : | ||
+ | |||
+ | | ||
+ | *Fast mode (Fm) » ≤ 400 kbit/s, | ||
+ | *Fast plus mode (Fm+) » ≤ 1 Mbit/s, | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | |||
+ | ==== Librairie Wire ==== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ===Description=== | ||
+ | |||
+ | Cette librairie vous permet de communiquer avec les composants utilisant le protocole I2C / TWI (communication série sur 2 fils). | ||
+ | |||
+ | Pour plus de détails sur le bus I2C : http:// | ||
+ | |||
+ | ===Connexions=== | ||
+ | |||
+ | __Sur la plupart des cartes Arduino :__ | ||
+ | |||
+ | *la ligne SDA (ligne de données) est sur la broche analogique 4 | ||
+ | *la ligne SCL (ligne d' | ||
+ | |||
+ | __Sur la carte Arduino Mega :__ | ||
+ | |||
+ | *SDA est sur la broche numérique 20 | ||
+ | *SCL est sur la broche numérique 21 | ||
+ | |||
+ | ===Les fonctions de la librairie Wire=== | ||
+ | |||
+ | __Fonctions d' | ||
+ | |||
+ | *begin() : initialise communication avec Arduino " | ||
+ | *begin(adresse) : initialise communication avec Arduino " | ||
+ | |||
+ | __Fonctions "mode maître" | ||
+ | |||
+ | *requestFrom(adresse, | ||
+ | *beginTransmission(adresse) : débute communication avec un esclave (ouvre stockage données à envoyer avec write) | ||
+ | *endTransmission() : envoi des données vers esclave | ||
+ | *write() : écrit les données à envoyer vers esclave | ||
+ | *available() : test si données disponibles en provenance esclave (cf requestFrom) | ||
+ | *read() : lit les données en provenance de l' | ||
+ | |||
+ | __Fonctions "mode esclave" | ||
+ | |||
+ | *write() : envoie les données vers le maître après requête | ||
+ | *available() : test si données disponibles en provenance du maître (cf onReceive) | ||
+ | *read() : lit données en provenance maître | ||
+ | *onReceive(fonction) : définit la fonction à appeler sur réception de données en provenance du maître | ||
+ | *onRequest(fonction) : définit la fonction à appeler sur requête du maître | ||
+ | |||
+ | __Fonctions obsolètes__ | ||
+ | |||
+ | *send() - obsolète | ||
+ | *receive() - obsolète | ||
+ | |||
+ | __Principe d' | ||
+ | |||
+ | Pour inclure la librairie Wire dans un programme, on ajoutera au début du programme la ligne suivante : | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | [$[Get Code]] | ||
+ | </ | ||
+ | |||
+ | Pour ce faire, le plus simple est d' | ||
+ | |||
+ | Voir également l' | ||
+ | |||
+ | __Note__ | ||
+ | |||
+ | Il existe deux versions d' | ||
+ | |||
+ | *Les adresses 7 bits identifient le composant, | ||
+ | *les adresses 8 bits déterminent si on écrit ou on lit le composant. | ||
+ | |||
+ | La librairie Wire utilise les adresses 7 bits. Si vous avez une fiche technique ou un exemple de code qui utilise des adresses 8 bits, vous devrez éliminer le bit de poids faible ( en décalant la valeur de l' | ||
Ligne 27: | Ligne 117: | ||
[[https:// | [[https:// | ||
+ | |||
+ | |||
+ | ====== Avenir de I2C ==> I3C ====== | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[start: |
/home/chanteri/www/fablab37110/data/attic/start/arduino/i2c.1607097397.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)