Table des matières:
- Étape 1: Câblage du MCP23008
- Étape 2: Construire une planche
- Étape 3: Utilisation d'un module de bibliothèque
- Étape 4: Programme Kitt Car
- Étape 5: LED 7 segments
- Étape 6: Conclusion
Vidéo: NODEMCU LUA ESP8266 avec IC d'extension de port 8 bits MCP23008 : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Le MCP23008 est un extenseur d'E/S 8 bits avec interface série et fonctionne entre 1,8 et 5,5 volts, il est donc idéal pour l'ESP8266, Arduino, Raspberry Pi, les puces PIC et plus encore.
Si vous avez vu mon autre Instructable sur le MCP23017, vous vous demandez peut-être pourquoi j'en fais également un pour le MCP23008, car c'est vraiment une version plus petite de la même chose.
Les raisons sont que ses registres sont différents à la fois en nom et en nombre et je voudrais montrer comment utiliser un module de bibliothèque prêt à l'emploi. Tout le monde n'est pas apte à utiliser NodeMCU lua, j'aimerais donc montrer cet aspect de la programmation ainsi que comment utiliser le MCP23008.
La bibliothèque et les programmes sont disponibles sur github.com.
La fiche technique du MCP23008 est disponible auprès de Microchip.
Étape 1: Câblage du MCP23008
Le circuit intégré MCP23008 est d'une configuration simple et la construction d'une carte est vraiment facile pour lui. Vous pouvez également installer le circuit sur une planche à pain.
Pin connexions sur ma carte
- Broche 18 (VDD) à 3v3
- Broche 9 (VSS) à GND
- Broche 7 (NC) à GND (pas nécessaire)
- Broche 1 (SCL) vers ESP GPIO2
- Broche 2 (SDA) vers ESP GPIO0
- Broche 5 (A0) à GND
- Broche 4 (A1) à GND
- Broche 3 (A2) à GND
- Broche 6 (RESET) à 3v3
Connectez les broches à lire à Gnd sur le port A (broches 10 - 17)
Remarque: ici toutes les broches d'adresse sont connectées à Gnd pour utiliser le MCP23008 à l'adresse 0x20 sur le bus d'adresse I2C.
Si vous utilisiez l'adresse 0x21, A0 serait connecté à 3,3 V, avec A1 et A2 connectés à Gnd.
De même, si vous utilisez l'adresse 0x22, A1 devrait être connecté à 3,3 V avec A0 et A2 connectés à Gnd.
etc…
Étape 2: Construire une planche
J'ai utilisé une planche Vero de 25 mm x 64 mm (9 rangées x 25 trous) pour construire ma planche. C'est un peu serré, mais comme la plupart des broches dont vous avez besoin se trouvent de chaque côté du circuit intégré, cela convient à ce qu'il doit faire.
J'ai utilisé 8 broches et 8 prises d'en-tête pour le port A afin de pouvoir brancher mes différents modules ainsi que d'autres câblages pour différents projets. J'ai ajouté des broches Gnd et 3.3V supplémentaires car je trouve qu'il y en a toujours une pénurie lors de la connexion de modules ensemble.
Étape 3: Utilisation d'un module de bibliothèque
Les modules de bibliothèque contiennent normalement une sélection de sous-routines, de fonctions et de variables accessibles par un autre programme. Le programme lui-même ne s'exécute pas, mais ses fonctions sont accessibles par le programme appelant. Cela signifie que vous pouvez avoir vos sous-routines dans la bibliothèque et les appeler chaque fois que vous en avez besoin, en créant un petit programme d'appel. Cela devient plus utile si vous avez de nombreux programmes différents utilisant les mêmes sous-programmes, vous n'avez pas besoin d'inclure les sous-programmes dans chaque programme.
Remarque: le programme mcp23008.lua doit être chargé dans la mémoire ESP8266 comme les autres programmes.
J'ai inclus les programmes github.com ici ainsi qu'un programme simple (test.lua) pour montrer que la bibliothèque fonctionne.
Il existe au moins 2 façons d'inclure la bibliothèque dans votre programme.
exiger ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
ou
mcp = exiger ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Les deux méthodes ci-dessus font la même chose, mais la deuxième méthode vous permet d'utiliser votre propre variable au lieu du nom du programme.
Étape 4: Programme Kitt Car
J'ai inclus le programme KittCar23008.lua et KittLib.lua qui utilise la bibliothèque pour montrer les différences dans la façon d'écrire des programmes de cette façon. Les deux programmes font la même chose.
Le plug in 8 LED est disponible sur Ebay sous forme de kit et est connu sous le nom de kit DIY LED Flowing Water Light à 8 canaux, 99p de Chine. Vous devez le souder vous-même.
Remarque: si vous rencontrez un problème en essayant d'exécuter le programme KittLib.lua, essayez de connecter momentanément la broche RESET du MCP23008 à Gnd. Je sais que cela donnera un court-circuit direct (car il est connecté à 3,3 V) et vous devez réinitialiser tout le reste. Cela fonctionne également en se connectant à Gnd via une résistance de 10 ohms, probablement une meilleure façon de le faire.
J'ai également découvert que KittLib.lua fonctionnerait sans problème après avoir exécuté test.lua (ne me demandez pas pourquoi ?)
J'ai essayé différentes manières de résoudre le problème du programme KittLib.lua, mais jusqu'à présent, je ne trouve aucune raison logique expliquant pourquoi il se bloque. Est-ce que quelqu'un a des idées?
Je n'ai pas écrit tous ces programmes moi-même, donc je ne suis pas en mesure de dire pourquoi il y a un problème, bien qu'après avoir examiné le codage, il ne semble pas y avoir quoi que ce soit d'anormal.
Étape 5: LED 7 segments
Comme pour le programme KittCar.lua ci-dessus, j'ai inclus un programme autonome et un programme dépendant de la bibliothèque pour piloter un écran LED à 7 segments.
Encore une fois, les deux programmes font la même chose, mais montrent comment utiliser un module de bibliothèque écrit par vous-même ou par quelqu'un d'autre.
Étape 6: Conclusion
J'ai essayé de montrer comment utiliser des modules de code dans l'environnement Lua et de l'appliquer à un IC spécifique en même temps.
Même si j'ai eu un problème à faire cela, je pense qu'il y a assez pour montrer comment ces modules fonctionnent ainsi que pour démontrer une application réelle.
Conseillé:
Tutoriel sur l'accéléromètre numérique Arduino Nano - MMA8452Q 3 axes 12 bits/8 bits : 4 étapes
Tutoriel sur l'accéléromètre numérique à 3 axes 12 bits/8 bits Arduino Nano - MMA8452Q : Le MMA8452Q est un accéléromètre intelligent, à faible consommation, à trois axes, capacitif et micro-usiné avec une résolution de 12 bits. Des options flexibles programmables par l'utilisateur sont fournies à l'aide de fonctions intégrées dans l'accéléromètre, configurables à deux interruptions
DIY MusiLED, LED synchronisées avec la musique avec une application Windows et Linux en un clic (32 bits et 64 bits). Facile à recréer, facile à utiliser, facile à porter. : 3 étapes
DIY MusiLED, LED synchronisées avec la musique avec une application Windows et Linux en un clic (32 bits et 64 bits). Facile à recréer, facile à utiliser, facile à porter. : Ce projet vous aidera à connecter 18 LED (6 rouges + 6 bleues + 6 jaunes) à votre carte Arduino et analyser les signaux en temps réel de la carte son de votre ordinateur et les relayer à les leds pour les éclairer selon les effets de beat (Snare, High Hat, Kick)
Capteurs d'extension Nodemcu ESP8266 pour Weewx : 8 étapes (avec photos)
Capteurs d'extension Nodemcu ESP8266 pour Weewx : il s'agit d'une instruction pour ajouter des capteurs au logiciel de la station météo weewx. Si vous n'avez pas weewx, vous pouvez apprendre des choses dans ce didacticiel. appareil.Vous trouverez les informations weewx ici
NODEMCU LUA ESP8266 avec compteur à décades CD4017 : 4 étapes (avec photos)
NODEMCU LUA ESP8266 avec compteur à décades CD4017 : Le CD4017 est un compteur/diviseur à décades. Cela signifie que lorsqu'il reçoit une impulsion, il la compte et envoie une sortie à la broche appropriée. C'est un circuit intégré assez facile à utiliser et vous pouvez soit construire le circuit sur une planche à pain, soit en acheter un sur Ebay pour
NODEMCU LUA ESP8266 avec IC d'extension de port 16 bits MCP23017 : 6 étapes (avec photos)
NODEMCU LUA ESP8266 avec IC d'extension de port 16 bits MCP23017: Le MCP23017 est un IC relativement facile à faire 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'adresse I2C est tous ensemble aussi. Il y a 2 broches sur ce circuit intégré qui ne sont pas utilisées car il