Ligne 6 : |
Ligne 6 : |
| Avec 3 MCP23017 il est possible de commander jusqu'à 48 entrées sorties. Mais pour qu'ils partagent le même même bus I2C, il faut qu'ils aient chacun une adresse I2C différentes. | | Avec 3 MCP23017 il est possible de commander jusqu'à 48 entrées sorties. Mais pour qu'ils partagent le même même bus I2C, il faut qu'ils aient chacun une adresse I2C différentes. |
| | | |
− | Un autre cas de figure qui peut se présenter: c'est qu'un autre composant sur le bus I2C utilise déjà l'adresse 0x00 par défaut. Dans ce cas, il faut également changer l'adresse du MCP23017. | + | Un autre cas de figure qui peut se présenter: c'est qu'un autre composant sur le bus I2C utilise déjà l'adresse 0x20 par défaut. Dans ce cas, il faut également changer l'adresse du MCP23017. |
| | | |
| == Changer l'adresse == | | == Changer l'adresse == |
| L'adresse I2C se configure sur les broches A0, A1, A2. | | L'adresse I2C se configure sur les broches A0, A1, A2. |
| + | |
| + | L'adresse de base du MCP23017 est 0x20 à laquelle s'ajouter la valeur calculée à partir des bits d'adresse. |
| | | |
| [[Fichier:MCP23017-layout.jpg]] | | [[Fichier:MCP23017-layout.jpg]] |
| | | |
− | Lorsque l'on raccorde les 3 broches A0, A1 et A2 sur GND/Masse alors le MCP utilise l'adresse par défaut qui est 0x00. | + | Lorsque l'on raccorde les 3 broches A0, A1 et A2 sur GND/Masse alors le MCP utilise l'adresse par défaut qui est 0x20 + (bit d'adresse=0). |
| | | |
| Chacune des broches Ax ont une valeur particulière qui intervient dans le calcul d'adresse si la broche est raccordée sur +5V: | | Chacune des broches Ax ont une valeur particulière qui intervient dans le calcul d'adresse si la broche est raccordée sur +5V: |
Ligne 20 : |
Ligne 22 : |
| * A2 = 4 | | * A2 = 4 |
| | | |
− | Si A0 et A2 sont raccordés sur +5v alors l'adresse est: Valeur de A0 + Valeur de A2 = 1 + 4 = 5. | + | Si A0 et A2 sont raccordés sur +5v alors l'adresse est: 0x20 + Valeur de A0 + Valeur de A2 = 0x20 + 1 + 4 = 0x20 + 5. |
| | | |
− | Si A1 et A2 sont raccordés sur +5v alors l'adresse est: Valeur de A1 + Valeur de A2 = 2 + 4 = 6. | + | Si A1 et A2 sont raccordés sur +5v alors l'adresse est: 0x20 + Valeur de A1 + Valeur de A2 = 2 + 4 = 0x20 + 6. |
| | | |
− | Si A0, A1 et A2 sont raccordés sur +5v alors l'adresse est: Valeur de A0 + Valeur de A1 + Valeur de A2 = 1 + 2 + 4 = 7 | + | Si A0, A1 et A2 sont raccordés sur +5v alors l'adresse est: 0x20 + Valeur de A0 + Valeur de A1 + Valeur de A2 = 0x20 + 1 + 2 + 4 = 0x20 + 7 |
| | | |
| == Exemple pratique == | | == Exemple pratique == |
Ligne 64 : |
Ligne 66 : |
| | | |
| void setup() { | | void setup() { |
− | mcp1.begin(5); // Utilise l'adresse 5 pour IC1 | + | mcp1.begin(5); // Utilise l'adresse 0x20 + 5 pour IC1 |
− | mcp2.begin(6); // Utilise l'adresse 6 pour IC2 | + | mcp2.begin(6); // Utilise l'adresse 0x20 + 6 pour IC2 |
− | mcp3.begin(7); // Utilise l'adresse 7 pour IC3 | + | mcp3.begin(7); // Utilise l'adresse 0x20 + 7 pour IC3 |
| | | |
| // Définir la sortie #0 (GPA 0, broche 21) sur IC1 comme sortie | | // Définir la sortie #0 (GPA 0, broche 21) sur IC1 comme sortie |