Obsah:

NODEMCU LUA ESP8266 s 8 bitovým portovým expandérom MCP23008 IC: 6 krokov
NODEMCU LUA ESP8266 s 8 bitovým portovým expandérom MCP23008 IC: 6 krokov

Video: NODEMCU LUA ESP8266 s 8 bitovým portovým expandérom MCP23008 IC: 6 krokov

Video: NODEMCU LUA ESP8266 s 8 bitovým portovým expandérom MCP23008 IC: 6 krokov
Video: NodeMCU V3 ESP8266 - обзор, подключение и прошивка в Arduino IDE 2024, November
Anonim
NODEMCU LUA ESP8266 s 8 bitovým portovým expandérom MCP23008 IC
NODEMCU LUA ESP8266 s 8 bitovým portovým expandérom MCP23008 IC

MCP23008 je 8-bitový I/O expandér so sériovým rozhraním a pracuje medzi 1,8 až 5,5 voltov, takže je ideálny pre čipy ESP8266, Arduino, Raspberry Pi, PIC a ďalšie.

Ak ste videli môj ďalší inštrukčný na MCP23017, možno by vás zaujímalo, prečo robím aj pre MCP23008, pretože je to skutočne menšia verzia toho istého.

Dôvodom je, že jeho registre sa líšia v názve aj v čísle a rád by som ukázal, ako používať hotový knižničný modul. Nie každý je zdatný v používaní NodeMCU lua, preto by som rád ukázal tento aspekt programovania a tiež spôsob použitia MCP23008.

Knižnica a programy sú dostupné na github.com.

Dátový list pre MCP23008 je k dispozícii od spoločnosti Microchip.

Krok 1: Zapojenie MCP23008

Zapojenie MCP23008
Zapojenie MCP23008

MCP23008 IC má jednoduché rozloženie a zostavenie dosky je pre neho skutočne jednoduché. Okruh môžete nastaviť aj na doske na chlieb.

Pripojenia pinov na mojej doske

  • Kolík 18 (VDD) na 3v3
  • Kolík 9 (VSS) na GND
  • Kolík 7 (NC) na GND (nie je potrebné)
  • Pin 1 (SCL) na ESP GPIO2
  • Pin 2 (SDA) na ESP GPIO0
  • Kolík 5 (A0) na GND
  • Kolík 4 (A1) na GND
  • Kolík 3 (A2) na GND
  • Kolík 6 (RESET) na 3v3

Pripojte piny, ktoré chcete čítať, do Gnd na porte A (piny 10 - 17)

Poznámka: tu sú všetky kolíky adries pripojené k Gnd, aby používali MCP23008 na adrese 0x20 na zbernici adries I2C.

Ak by ste používali adresu 0x21, potom by A0 bolo pripojené k 3,3 V, pričom A1 a A2 by boli pripojené k Gnd.

Podobne, ak by sa použila adresa 0x22, potom by musel byť A1 pripojený k 3,3 V s A0 a A2 pripojenými k Gnd.

atď…

Krok 2: Konštrukcia dosky

Konštrukcia dosky
Konštrukcia dosky

Na konštrukciu svojej dosky som použil dosku Pero 25 mm x 64 mm (9 radov x 25 otvorov). Je to trochu tesné, ale pretože väčšina pinov, ktoré potrebujete, je na oboch stranách integrovaného obvodu, je postačujúce na to, čo má robiť.

Na port A som použil 8 pinov a 8 zásuviek záhlavia, aby som mohol zapojiť svoje rôzne moduly a ďalšie káble pre rôzne projekty. Pridal som ďalšie piny Gnd a 3,3 V, pretože som zistil, že pri spájaní modulov je ich vždy nedostatok.

Krok 3: Použitie modulu knižnice

Použitie knižničného modulu
Použitie knižničného modulu

Knižničné moduly obvykle obsahujú výber čiastkových rutín, funkcií a premenných, ku ktorým má prístup iný program. Samotný program nebeží, ale k jeho funkciám má prístup volajúci program. Znamená to, že môžete mať svoje čiastkové rutiny v knižnici a vyvolať ich, kedykoľvek ich potrebujete, čím vytvoríte malý volací program. Stane sa to cennejším, ak máte mnoho rôznych programov používajúcich rovnaké podradené rutiny, nie je potrebné zahrnúť ich do každého programu.

Poznámka: Program mcp23008.lua je potrebné načítať do pamäte ESP8266 ako ostatné programy.

Zahrnul som sem programy github.com a jednoduchý program (test.lua), ktorý ukazuje, že knižnica funguje.

Knižnicu môžete do svojho programu zahrnúť najmenej dvoma spôsobmi.

vyžadovať ("mcp23008")

mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)

alebo

mcp = vyžadovať ("mcp23008")

mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)

Oba vyššie uvedené robia to isté, ale druhá metóda vám umožňuje použiť namiesto názvu programu vlastnú premennú.

Krok 4: Program Kitt Car

Program Kitt Car
Program Kitt Car

Zahrnul som program KittCar23008.lua a KittLib.lua, ktoré v knižnici ukazujú rozdiely v spôsobe písania programov týmto spôsobom. Oba programy robia to isté.

Osem LED diód je k dispozícii od spoločnosti Ebay ako súprava a je známa ako 8 -kanálová súprava LED DIY súpravy s tečúcou vodou, 99p z Číny. Musíte to spájkovať sami.

Poznámka: Ak máte problém so spustením programu KittLib.lua, skúste na chvíľu pripojiť kolík RESET MCP23008 RESET do Gnd. Viem, že to spôsobí priamy skrat (pretože je pripojený k 3,3 V) a musíte resetovať všetko ostatné. Funguje to aj tak, že sa pripojíte k Gnd prostredníctvom odporu 10 ohmov, pravdepodobne je to lepší spôsob.

Tiež som zistil, že KittLib.lua pobeží bez problémov po spustení test.lua (Nepýtajte sa ma prečo?)

Skúsil som rôzne spôsoby, ako vyriešiť problém s programom KittLib.lua, ale zatiaľ som nenašiel žiadny logický dôvod, prečo sa zrúti. Máte niekto nejaké nápady?

Nenapísal som všetky tieto programy sám, takže nemôžem povedať, prečo je problém, aj keď po pohľade na kódovanie zjavne nie je nič zlé.

Krok 5: 7 Segmentová LED

7 segmentová LED dióda
7 segmentová LED dióda

Rovnako ako pre program KittCar.lua vyššie som zahrnul samostatný program a program závislý od knižnice na ovládanie 7 -segmentového LED displeja.

Oba programy opäť robia to isté, ale ukazujú, ako používať modul knižnice, ktorý ste napísali vy alebo niekto iný.

Krok 6: Záver

Záver
Záver

Pokúsil som sa predviesť, ako používať moduly kódu v prostredí Lua a súčasne ich aplikovať na konkrétne IC.

Aj keď som s tým mal problém, myslím si, že je toho dosť na to, aby sa ukázalo, ako tieto moduly fungujú, a tiež na ukážku aplikácie v reálnom živote.

Odporúča: