Modifications

Sauter à la navigation Sauter à la recherche
Ligne 36 : Ligne 36 :  
C'est pareil pour le bus I2C... il y a un Maître (généralement Arduino) qui envoi ses ordres a un des esclaves du bus (généralement les senseurs, sélectionné par son "adresse I2C").
 
C'est pareil pour le bus I2C... il y a un Maître (généralement Arduino) qui envoi ses ordres a un des esclaves du bus (généralement les senseurs, sélectionné par son "adresse I2C").
   −
L'esclave (le senseur) exécute l'ordre et renvoient une réponse. '''Notez qu'il y a généralement une réponse, mais cela n'est pas forcément nécessaire pour certains types d'esclaves'''.  
+
L'esclave (le senseur) exécute l'ordre et renvoient une réponse. '''Notez qu'il y a généralement une réponse, mais cela n'est pas forcément nécessaire pour certains types d'esclaves'''.
 +
 
 +
Voici un exemple démontrant l'utilisation d'un Maître (Arduino) et plusieurs esclaves (les afficheurs) sur un même Bus I2C.
 +
 
 +
[[Fichier:ADF-LED-BACKPACK-MULTI-02.jpg|500px]]<br />
 +
''Exemple à titre indicatif issus de notre tutoriel sur [[ADF-LED-BACKPACK|les contrôleurs LEDs]]'' 
    
=== L'adressage ===
 
=== L'adressage ===
 
L'adressage sert à identifier chacun des des éléments sur un bus I2C. Lorsque vous branchez un composant, il dispose généralement d'une adresse. Cette adresse est une valeur numérique qui identifie le composant sur le bus.
 
L'adressage sert à identifier chacun des des éléments sur un bus I2C. Lorsque vous branchez un composant, il dispose généralement d'une adresse. Cette adresse est une valeur numérique qui identifie le composant sur le bus.
   −
Sur un bus I2C, le maître envoi un ordre du genre: "Numero 3: lecture température!" et le numéro 3 (qui est un senseur de température) répond docilement en renvoyant la température mesurée.
+
Sur un bus I2C, le maître envoi un ordre du genre: "Hep, Numéro 3, lecture de température!" et le numéro 3 (qui serait un senseur de température) répond docilement en renvoyant la température mesurée.
    
Il va de soit qu'il ne faut qu'un seul "numéro 3" qui répondent en même temps sur le bus. C'est pour cela que cette adresse est importante et qu'elle doit aussi être unique sur le bus.
 
Il va de soit qu'il ne faut qu'un seul "numéro 3" qui répondent en même temps sur le bus. C'est pour cela que cette adresse est importante et qu'elle doit aussi être unique sur le bus.
    
Les composants disposent d'une adresse prédéfinie qu'il est généralement possible de la modifier sensiblement en soudant des "jumpers".
 
Les composants disposent d'une adresse prédéfinie qu'il est généralement possible de la modifier sensiblement en soudant des "jumpers".
L'exemple ci-dessous est issus des contrôleurs LED d'AdaFruit et présente les "jumpers" A0, A1 et A2.
     −
[[Fichier:ADF-LED-BACKPACK-ARD-01.jpg|300px]]  
+
[[Fichier:ADF-LED-BACKPACK-ARD-01.jpg|300px]]<br />
 +
''L'exemple issus des contrôleurs LED d'AdaFruit et présentant les "jumpers" A0, A1 et A2 permettant de modifier l'adresse de l'esclave''.
    
Notre tutoriel sur [[ADF-LED-BACKPACK|les contrôleurs LEDs]] explique aussi [[ADF-LED-BACKPACK-I2C-Adresse|comment calculer la nouvelle adresse]]. Vous pourrez consulter ce point plus tard lorsque vous serez familiarisé avec les concepts et premier montages I2C d'Arduino
 
Notre tutoriel sur [[ADF-LED-BACKPACK|les contrôleurs LEDs]] explique aussi [[ADF-LED-BACKPACK-I2C-Adresse|comment calculer la nouvelle adresse]]. Vous pourrez consulter ce point plus tard lorsque vous serez familiarisé avec les concepts et premier montages I2C d'Arduino
    
=== Précision ===
 
=== Précision ===
En général, le maître s'adresse à un esclave particulier. C'est le cas le plus courant et le plus usité sur Arduino.
+
En général, le maître s'adresse à un esclave en particulier. C'est le cas le plus courant et le plus usité sur Arduino.
    
Il n'empêche qu'un maître peut s'adresser à plusieurs esclaves en une seule opération (voir le concept "Master Writer" ci-dessous). Ce cas d'utilisation est plus rare.   
 
Il n'empêche qu'un maître peut s'adresser à plusieurs esclaves en une seule opération (voir le concept "Master Writer" ci-dessous). Ce cas d'utilisation est plus rare.   
   −
=== Arduino et réseaux de senseur ===
+
=== Arduino et réseaux de senseurs ===
 
Il est possible de connecter un Arduino et plusieurs senseurs sur un réseau I2C.  
 
Il est possible de connecter un Arduino et plusieurs senseurs sur un réseau I2C.  
   Ligne 63 : Ligne 68 :     
=== Des Arduinos ===
 
=== Des Arduinos ===
Ils est bien entendu possible de connecter plusieurs Arduino sur un seul bus I2C (chacun disposant d'une adresse I2C unique).
+
Il est bien entendu possible de connecter plusieurs Arduino sur un seul bus I2C (chacun disposant d'une adresse I2C unique).
   −
........ .....................
+
Dans ce cas, un des Arduino est le Maître du bus I2C et tous les autres sont les esclaves.
   −
Le concept "Master Reader"
+
== Le concept "Master Reader" ==
   −
Le "maître lit".
+
Ce concept se traduit littéralement par le "Maître lit". '''Il est le plus couramment utilisé'''.
   −
Dans ce concept, le maître se connecte sur un esclave de son choix et envoi une commande/demande à l'esclave à laquelle il attends une réponse!
+
Dans ce concept, le Maître s'adresse a un esclave de son choix et envoi une commande/demande à l'esclave à laquelle il attends une réponse!
   −
Ce concept est pratique pour collecter les informations de différents senseurs.
+
Ce concept est pratique pour collecter les informations de différents senseurs.  
    
Pour être précis, le nom complet de ce concept est "Master Reader/Slave Sender" (le maître lit et les esclaves envoient/parlent) .
 
Pour être précis, le nom complet de ce concept est "Master Reader/Slave Sender" (le maître lit et les esclaves envoient/parlent) .
   −
Le concept "Master Writer"
+
=== Le concept "Master Writer" ===
   −
Le "maître écrit".
+
Le "maître écrit". Ce concept est '''plus rarement utilisé''' mais convient bien à des applications spécifiques.
    
Dans ce concept, le maître écrit/envoi des informations vers de multiples esclaves. Ce concept est bien pratique pour commander différents actionneurs ou répartir des ordres vers les différents éléments physiques (comme, par exemple, les servos moteurs I2C d'un robots).
 
Dans ce concept, le maître écrit/envoi des informations vers de multiples esclaves. Ce concept est bien pratique pour commander différents actionneurs ou répartir des ordres vers les différents éléments physiques (comme, par exemple, les servos moteurs I2C d'un robots).
 +
 +
Bien entendu, dans ce cas de figure, le Maitre n'attend pas réponse de la part des esclaves.
 +
 +
Cette méthode de dialogue présente l'avantage de faire l'économie du temps de transmission et de traitement de la réponse (ce qui peut être important dans certains cas de figure). 
    
Pour être précis, le nom complet de ce concept est "Master Writer/Slave Receiver".     
 
Pour être précis, le nom complet de ce concept est "Master Writer/Slave Receiver".     
    
{{Arduino-I2C-Intro-TRAILER}}
 
{{Arduino-I2C-Intro-TRAILER}}
29 917

modifications

Menu de navigation