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édenteProchaine révisionLes deux révisions suivantes | ||
start:arduino:i2c [2020/12/04 16:58] – [Le protocole I2C] gerardadmin | start:arduino:i2c [2023/02/03 10:39] – [Liens utiles] gerardadmin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
======== Bus I2C ======== | ======== Bus I2C ======== | ||
+ | |||
+ | {{ : | ||
=== Le protocole I2C=== | === Le protocole I2C=== | ||
Ligne 21: | Ligne 23: | ||
Il existe cinq vitesses de transmission : | Il existe cinq vitesses de transmission : | ||
- | | + | *Standard mode (Sm) » ≤ 100 kbit/s, |
- | * Fast mode (Fm) » ≤ 400 kbit/s, | + | |
- | * Fast plus mode (Fm+) » ≤ 1 Mbit/s, | + | |
- | * High-speed mode (Hs-mode) » ≤ 3,4 Mbit/s, | + | |
- | * Ultra-fast mode (UFm) » ≤ 5 Mbit/s, unidirectionnel uniquement. | + | |
+ | |||
+ | |||
+ | |||
+ | ==== 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 39: | Ligne 117: | ||
[[https:// | [[https:// | ||
+ | |||
+ | |||
+ | ====== Avenir de L I2C ==> I3C ====== | ||
+ | |||
+ | [[https:// |
/home/chanteri/www/fablab37110/data/pages/start/arduino/i2c.txt · Dernière modification : 2023/02/03 10:45 de gerardadmin