Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Le MCP23017 est un circuit intégré relativement facile à réaliser car il a les ports A et B de chaque côté de la puce et les broches sont dans l'ordre séquentiel.
De même, le bus d'adresses I2C est également tout ensemble.
Il y a 2 broches sur ce circuit intégré qui ne sont pas utilisées car il est comparable au MCP23S17 qui utilise une interface SPI où ces broches sont utilisées.
Une fiche technique pour ce circuit intégré est disponible auprès de Microchip.
Étape 1: schéma de circuit
Le schéma de circuit montre comment connecter le circuit intégré à un ESP8266
REMARQUE: le circuit intégré fonctionne entre 2,7 et 5,5 volts.
Pin connexions sur ma carte
- Broche 9 (VDD) à 3v3
- Broche 18 (RESET) à 3v3
- Broche 17 (A2) à GND
- Broche 16 (A1) à GND
- Broche 15 (A0) à GND
- Broche 14 (NC) à GND (pas nécessaire)
- Broche 13 (SDA) vers ESP GPIO0
- Broche 12 (SCL) vers ESP GPIO2
- Pin 11 (NC) à GND (Pas nécessaire)
- Broche 10 (VSS) à GND
Étape 2: fabrication de la carte principale
La planche est simple à faire comme expliqué ci-dessus, tout est d'une disposition simple.
Ma carte principale a pris peu de temps à faire et est montrée ci-dessus.
Vous pouvez bien sûr construire ce circuit sur une maquette.
Étape 3: Cartes supplémentaires
J'ai créé des cartes 8 bits supplémentaires qui peuvent facilement être branchées sur différentes cartes de projet.
La première carte est connectée à un écran LED à 7 segments et est connectée à la broche 1 au segment a, à la broche 2 à b, etc. Il y a une petite résistance (environ 55 ohms) pour protéger les LED.
Le second est une banque de 8 commutateurs tous câblés ensemble et peut être connecté à 3,3 V ou à la terre. Je n'ai inclus aucune résistance de traction car le MCP23017 les a intégrées.
Le troisième provient d'un kit Ebay, il se compose de 8 LED et d'un réseau de résistances avec une connexion à Gnd. J'ai aussi la même carte mais j'ai installé les LED à l'envers pour qu'elle se connecte à 3,3V ou 5V au lieu de Gnd. Sur Ebay, ils sont connus sous le nom de kit DIY LED Flowing Water Light à 8 canaux, 99p de Chine.
Étape 4: Programmation
J'ai écrit les programmes pour fonctionner avec un ESP01 car celui-ci n'a que 2 broches d'E/S. Il peut bien sûr être utilisé avec n'importe laquelle des cartes ESP8266. Les broches SDA et SCL peuvent être attribuées à n'importe quelle broche entre 1 et 12.
Si vous utilisez une ancienne version de LUA (par exemple, NodeMCU 0.9.6 build 20150704 alimenté par Lua 5.1.4), l'I2C est déjà installé. Sinon, vous devez vous assurer que le module I2C est inclus dans votre build.
J'ai inclus 3 programmes Lua simples pour montrer comment l'IC peut être utilisé.
7Segment.lua pilote un affichage LED et des séquences entre les chiffres 1 à 0.
KittCar.lua pilote la carte à 8 LED pour simuler la célèbre voiture des années 80.
Reader.lua lit à partir du port B.
Étape 5: quelle épingle ?
Un programme supplémentaire que j'ai imaginé en bricolant.
Il utilise le port B comme entrée et le port A comme sortie. La photo montre des commutateurs DIP, mais vous pouvez connecter l'une des broches du port B à Gnd et l'écran LED indiquera quelle broche est connectée.
REMARQUE: cela ne fonctionne qu'avec 1 broche à la fois !
Étape 6: Conclusion
Il existe bien sûr d'autres extensions d'E/S disponibles. Certains sont en 8 bits, 16 bits et même 24 bits ! Tous fonctionnent de la même manière que le MCP23017, mais ce circuit intégré est très bon marché pour ses capacités et peut être acheté pour environ 10p chacun en Chine.
Je n'ai pas utilisé toutes les fonctionnalités de ce circuit intégré car des interruptions sont également disponibles et peuvent être utilisées. La lecture de la fiche technique explique tout sur les différents registres et les façons dont le circuit intégré peut être utilisé.
Il est possible d'avoir 8 de ces appareils sur le même bus I2C donnant 128 ports I/O tous contrôlés par 2 lignes. Pensez aux possibilités là-bas!