Utiliser un MCP23017 pour ajouter 16 entrées/sorties à votre Arduino
Nous venons de publier le tutoriel MCP23017 - GPIO Expander sur notre wiki
Derrière ce nom barbare et son prix démocratique se cache un outil important facile à mettre en oeuvre.
Voici quelques éléments de notre tutoriel.
Description
Le MCP23017 utilise 2 broches I2C pins (qui peuvent être partagées avec d'autres périphériques I2C), et en échange, il fournit 16 broches d'utilisation générale en plus.
MCP23017 disponible chez MCHobby |
Ce composant est celui utilisé dans le shield LCD RGB pour contrôler l'afficheur LCD et le clavier (KeyPad) à 5 boutons. C'est un composant fiable et facile à mettre en oeuvre.
Chacune des 16 broches peut être configurée:
- en entrée (input)
- en sortie (output)
Il est même possible d'obtenir un signal d'interruption via une broche externe lorsqu'une entrée change d'état... comme cela, il n'est nécessaire de continuellement vérifier l'état des entrées par votre programme (cette méthode s’appelle du "pooling" en anglais).
Fiche technique
Layout du MCP23017 - cfr Tutoriel MCP23017 |
Les broches intéressantes sont les suivantes:
Alimentation
Attention de ne pas inverser le sens de raccordement.- VDD: Alimentation
- VSS: GND, la masse.
Les entrées/Sorties
Notées GPAx et GPBx. Toutes les entrées/sorties GPAx sont codées sur un octet (byte) tandis que toutes les entrées/sorties GPBx sont codées sur un autre octets.Si vous utilisez moins de 8 entrées/sorties, il est préférable de les regrouper sur GPAx... car du coup, elles peuvent toutes être commandées en même temps avec un seul octet.
Bus I2C
Le bus I2C est est pris en charge par les broches.- SCL : Signal d'horloge. SCL signifie Serial CLock ("horloge série" car ce signal cadence l'échange d'information sur le bus I2C).
Connecté sur Arduino UNO A5 - SDA : Signal de donnée. SDA signifie Serial DAta ("Donnée série car" car les données sont envoyée en série sur cette ligne).
Connecté sur Arduino UNO A4
Changement d'adresse
Les circuits intégrés se trouvant sur un Bus I2C ont chacun une adresse (un peut comme un numéro de maison dans une rue). Cela permet de connecter plusieurs circuit sur un même bus (les même fils SDA et SCL) et de pouvoir s'adresser à un circuit bien particulier en utilisant sont adresse. Il ne peut pas y avoir deux circuits différents avec la même adresse sur le Bus.Si l'on veut mettre plusieurs fois le même circuit sur un bus I2C alors il faut pourvoir en changer l'adresse... C'est justement la fonction des broches A0, A1, A2. Elle permet de modifier l'adresse par défaut du composant sur le Bus I2C. C point est abordé plus en détail dans le tutoriel.
Fiche technique
Vous pouvez trouver la fiche technique du MCP23017 ici.
Activer une sortie
Cet exemple présente le montage pour commander une broche du MCP23017 comme sortie.
Le but du montage est de faire clignoter une LED sur la sortie #0 (GPA0) du MCP27013.
Afin de rendre le fonctionnement du programme plus évident (ou
vous assurer que le programme fonctionne bien sur votre Arduino), nous
avons également fait clignoté la LED de votre Arduino (celle raccordée
sur la sortie 13).
26/08/2020: Attention, sur le schéma ci-dessous, la LED est raccordée sur GPA 2 et non GPA 0! Il faut donc modifier le raccordement.
Exemple de montage en sortie sur le MCP23017 (crf Tutoriel MCP23017) |
/* Exemple toggle.pde Utilise la librairie Adafruit-MCP23017 pour changer une sortie du MCP23017. Code écrit par LadyAda pour AdaFruit Industries [www.adafruit.com], Domaine Publique TRADUCTION FRANCAISE par Meurisse D. pour MCHobby.be [www.mchobby.be], CC-BY-SA pour tâche de traduction. COMPLEMENT DU CODE par Meurisse D. pour MCHobby.be [www.mchobby.be], Domaine publique... comme AdaFruit TUTORIEL complémentaire EN FRANCAIS par MCHobby.be sur (voir wiki pour licence tutoriel) http://mchobby.be/wiki/index.php?title=MCP23017 Acheter un MCP23017 http://mchobby.be/PrestaShop/product.php?id_product=218 */ #include#include "Adafruit_MCP23017.h" // Test de base d'ecriture d'état pour un "MCP23017 I/O expander" // Domaine publique (code d'origine)! // Connectez la broche #12 du MCP23017 sur Arduino broche Analogique A5 (Horloge I2C, SCL) // Connectez la broche #13 du MCP23017 sur Arduino broche Analogique A4 (Données I2C, SDA) // Connectez la broche #15, 16 et 17 du MCP23017 sur DNG (Sélection de l'adresse) // Connectez la broche #9 du MCP23017 sur 5V (Alimentation) // Connectez la broche #10 du MCP23017 sur GND (Masse commune) // Sortie #0 (GPA0) est sur la Broche 21 du MCP, vous pouvez y connecter une LED // ou autre choses (lui même raccordé vers la masse/GND) // Ajout MCHobby: // - Connectez la broche #18 du MCP23017 sur 5V (désactiver la ligne Reset) // - Activer la broche 13 pour faire clignoter la LED sur la carte Arduino au même rythme // (sert de témoin d'exécution et permet de détecter les erreurs de montage. // - Utiliser un délai de pause de 1 seconde au lieu de 100ms // Adafruit_MCP23017 mcp; void setup() { mcp.begin(); // Utilise l'adresse par défaut qui est 0 // Définir la sortie 13 comme sortie pinMode( 13, OUTPUT ); // Définir la sortie #0 (GPA 0, broche 21) comme sortie mcp.pinMode(0, OUTPUT); }
Utiliser une broche comme entrée
Il est également possible d'utiliser les broches du MCP23017 comme entrée (en combinaison avec des sorties).
26/08/2020: Attention, sur le schéma ci-dessous, la LED est raccordée sur GPA 2 et non GPA 0! Il faut donc modifier le raccordement.
Commander une broche du MCP23017 comme entrée (cfr tutoriel MCP23017) |
Ce point complémentaire, résistance de protection, code d'exemple sont tous disponible ici dans notre tutoriel
Tutoriel
Notre tutoriel sur le MCP23017 est disponible ici. Il contient de nombreuses autres informations qui ne peuvent pas être reprises dans ce billet
Vous aimez notre documentation? Aidez nous à en produire plus en achetant vos produits chez MCHobby.
Où acheter
Le MCP23017 est disponible ici chez MCHobby
C yres instructifs et exhaustif, merci beaucoup
RépondreSupprimerIl semblerait que vous utilisez la sortie GPA2 et non la GPA0 sur les schémas ! Est ce normal ?
RépondreSupprimerMerci julien d'avoir révélé la coquille. J'ai ajouté une petite note dans l'article.
SupprimerBonjour
RépondreSupprimerLes entrées peuvent elles être de type analogiques pour récupérer l'info d'un potard?
Fred
Le MCP23017 est exclusivement numérique.
SupprimerPour les mesures analogiques, il faut utiliser un ADC comme MCP3008 ( https://shop.mchobby.be/fr/ci/170-mcp3008-convertisseur-adc-a-8-canaux-3232100001701.html ) ou ADS1115 pour les mesures en haute précision
C'EST À CAUSE DE
RépondreSupprimerBENOÎT PAYAN, GRÉGORY DOUCET ,
ANNE HIDALGO, PIERRE HURMIC, GEORGES MARSAN,MARTINE AUBRY,GÉRARD LARRAT,FRANÇOIS REBSAMEN,DAVID LISNARD,ARNAUD ROBINET,JUSTIN PAMPHILE ET BRUNO NESTOR-AZÉROT
SI LE CANNABIS EST TOUJOURS INTERDIT EN FRANCE ET QU ON A PAS LE DROIT D'EN FAIRE POUSSER OU D'EN CULTIVER.
C'EST À CAUSE DE
BENOÎT PAYAN, GRÉGORY DOUCET ,
ANNE HIDALGO, PIERRE HURMIC, GEORGES MARSAN,MARTINE AUBRY,GÉRARD LARRAT,FRANÇOIS REBSAMEN,DAVID LISNARD,ARNAUD ROBINET,JUSTIN PAMPHILE ET BRUNO NESTOR-AZÉROT
SI LE CANNABIS EST TOUJOURS INTERDIT EN FRANCE ET QU ON A PAS LE DROIT D'EN FAIRE POUSSER OU D'EN CULTIVER.
C'EST À CAUSE DE
BENOÎT PAYAN, GRÉGORY DOUCET ,
ANNE HIDALGO, PIERRE HURMIC, GEORGES MARSAN,MARTINE AUBRY,GÉRARD LARRAT,FRANÇOIS REBSAMEN,DAVID LISNARD,ARNAUD ROBINET,JUSTIN PAMPHILE ET BRUNO NESTOR-AZÉROT
SI LE CANNABIS EST TOUJOURS INTERDIT EN FRANCE ET QU ON A PAS LE DROIT D'EN FAIRE POUSSER OU D'EN CULTIVER.
C'EST À CAUSE DE
BENOÎT PAYAN, GRÉGORY DOUCET ,
ANNE HIDALGO, PIERRE HURMIC, GEORGES MARSAN,MARTINE AUBRY,GÉRARD LARRAT,FRANÇOIS REBSAMEN,DAVID LISNARD,ARNAUD ROBINET,JUSTIN PAMPHILE ET BRUNO NESTOR-AZÉROT
SI LE CANNABIS EST TOUJOURS INTERDIT EN FRANCE ET QU ON A PAS LE DROIT D'EN FAIRE POUSSER OU D'EN CULTIVER.
C'EST À CAUSE DE
BENOÎT PAYAN, GRÉGORY DOUCET ,
ANNE HIDALGO, PIERRE HURMIC, GEORGES MARSAN,MARTINE AUBRY,GÉRARD LARRAT,FRANÇOIS REBSAMEN,DAVID LISNARD,ARNAUD ROBINET,JUSTIN PAMPHILE ET BRUNO NESTOR-AZÉROT
SI LE CANNABIS EST TOUJOURS INTERDIT EN FRANCE ET QU ON A PAS LE DROIT D'EN FAIRE POUSSER OU D'EN CULTIVER.
C'EST À CAUSE DE
BENOÎT PAYAN, GRÉGORY DOUCET ,
ANNE HIDALGO, PIERRE HURMIC, GEORGES MARSAN,MARTINE AUBRY,GÉRARD LARRAT,FRANÇOIS REBSAMEN,DAVID LISNARD,ARNAUD ROBINET,JUSTIN PAMPHILE ET BRUNO NESTOR-AZÉROT
SI LE CANNABIS EST TOUJOURS INTERDIT EN FRANCE ET QU ON A PAS LE DROIT D'EN FAIRE POUSSER OU D'EN CULTIVER.
C'EST À CAUSE DE
BENOÎT PAYAN, GRÉGORY DOUCET ,
ANNE HIDALGO, PIERRE HURMIC, GEORGES MARSAN,MARTINE AUBRY,GÉRARD LARRAT,FRANÇOIS REBSAMEN,DAVID LISNARD,ARNAUD ROBINET,JUSTIN PAMPHILE ET BRUNO NESTOR-AZÉROT
SI LE CANNABIS EST TOUJOURS INTERDIT EN FRANCE ET QU ON A PAS LE DROIT D'EN FAIRE POUSSER OU D'EN CULTIVER.