Tartalomjegyzék:

NODEMCU LUA ESP8266 MCP23008 8 bites portbővítő IC -vel: 6 lépés
NODEMCU LUA ESP8266 MCP23008 8 bites portbővítő IC -vel: 6 lépés

Videó: NODEMCU LUA ESP8266 MCP23008 8 bites portbővítő IC -vel: 6 lépés

Videó: NODEMCU LUA ESP8266 MCP23008 8 bites portbővítő IC -vel: 6 lépés
Videó: ESP8266 NodeMCU Interface - MCP23017 i/o expender with LED Example! 2024, November
Anonim
NODEMCU LUA ESP8266 MCP23008 8 bites portbővítő IC -vel
NODEMCU LUA ESP8266 MCP23008 8 bites portbővítő IC -vel

Az MCP23008 egy 8 bites I/O bővítő soros interfésszel, és 1,8 és 5,5 volt között működik, így ideális az ESP8266, Arduino, Raspberry Pi, PIC chipekhez.

Ha látta a másik Instructable -t az MCP23017 -en, akkor elgondolkodhat azon, miért teszek én is egyet az MCP23008 -hoz, mivel valójában ugyanannak a verziónak a kisebb változata.

Ennek az az oka, hogy a regiszterei névben és számban különböznek, és szeretném bemutatni, hogyan kell használni a kész könyvtári modult. Nem mindenki ügyes a NodeMCU lua használatakor, ezért szeretném bemutatni ezt a programozási szempontot, valamint az MCP23008 használatát.

A könyvtár és a programok elérhetők a github.com webhelyen.

Az MCP23008 adatlapja elérhető a Microchip -től.

1. lépés: Az MCP23008 bekötése

Az MCP23008 bekötése
Az MCP23008 bekötése

Az MCP23008 IC egyszerű elrendezésű, és a tábla felépítése viszonylag egyszerű. Az áramkört kenyértáblán is beállíthatja.

Pin Connections a fórumon

  • Tű (18) (VDD) - 3v3
  • 9. csap (VSS) a GND -hez
  • 7. pin (NC) - GND (nem szükséges)
  • 1. tű (SCL) az ESP GPIO2 -hez
  • 2. tű (SDA) az ESP GPIO0 -hoz
  • 5. tű (A0) a GND -hez
  • 4. csap (A1) a GND -hez
  • 3. csap (A2) a GND -hez
  • 6. tű (RESET) 3v3 -ra

Csatlakoztassa a kiolvasandó csapokat az A port Gnd -jéhez (10–17. Érintkezők)

Megjegyzés: itt minden címcsap a Gnd -hez van csatlakoztatva, hogy az MCP23008 -at használja az I2C címbusz 0x20 -as címén.

Ha a 0x21 címet használná, akkor az A0 a 3.3V -hoz lenne csatlakoztatva, az A1 és A2 pedig a Gnd -hez.

Hasonlóképpen, ha a 0x22 címet használja, akkor az A1 -t a 3.3V -hoz kell csatlakoztatni, az A0 és az A2 pedig a Gnd -hez.

stb…

2. lépés: Tábla felépítése

Tábla felépítése
Tábla felépítése

25 mm x 64 mm -es (9 sor x 25 lyuk) Vero szalaglemezt használtam a tábla építéséhez. Kicsit szűk, de mivel a legtöbb csap, amire szüksége van, az IC mindkét oldalán található, ez megfelel annak, amit tennie kell.

8 tűt és 8 fejlécet használtam az A porthoz, hogy csatlakoztathassam a különböző moduljaimat, valamint más vezetékeket különböző projektekhez. Hozzáadtam extra Gnd és 3,3 V -os csapokat, mivel úgy látom, hogy ezekből mindig hiány van a modulok összekapcsolásakor.

3. lépés: Könyvtári modul használata

Könyvtári modul használata
Könyvtári modul használata

A könyvtári modulok általában olyan alrutinokat, funkciókat és változókat tartalmaznak, amelyeket egy másik program is elérhet. Maga a program nem fut, de a funkcióit a hívó program érheti el. Ez azt jelenti, hogy az alrutinokat a könyvtárban tárolhatja, és bármikor felhívhatja őket, amikor szüksége van rájuk, egy kis hívóprogramot létrehozva. Értékesebbé válik, ha sok különböző programja van, amelyek ugyanazokat az alrutinokat használják, akkor nem kell minden programba belefoglalni az alrutinokat.

Megjegyzés: az mcp23008.lua programot a többi programhoz hasonlóan be kell tölteni az ESP8266 memóriába.

A github.com programokat ide, valamint egy egyszerű programot (test.lua) is bemutattam, hogy a könyvtár működjön.

A könyvtárnak legalább két módja van a programba való bevonására.

igényel ("mcp23008")

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

vagy

mcp = szükséges ("mcp23008")

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

Mindkettő ugyanazt teszi, de a második módszer lehetővé teszi, hogy a saját változót használja a program neve helyett.

4. lépés: Kitt Car program

Kitt Car program
Kitt Car program

Felvettem a KittCar23008.lua programot és a KittLib.lua programot, amely a könyvtárat használja a programok ilyen módon történő írásbeli különbségeinek bemutatására. Mindkét program ugyanazt csinálja.

A 8 LED -es csatlakozó készlet az Ebay -től kapható, és 8 csatornás áramló víz LED -es DIY készletként ismert, 99p Kínából. Magának kell forrasztania.

Megjegyzés: Ha problémája van a KittLib.lua program futtatásával, próbálja meg pillanatok alatt csatlakoztatni az MCP23008 RESET pin -t a Gnd -hez. Tudom, hogy ez közvetlen rövidzárlatot eredményez (mivel 3.3V -ra van csatlakoztatva), és minden mást vissza kell állítania. Ez úgy is működik, hogy 10 ohmos ellenálláson keresztül csatlakozik a Gnd -hez, valószínűleg jobb módszer erre.

Azt is megállapítottam, hogy a KittLib.lua problémamentesen futna a test.lua futtatása után (Ne kérdezd, miért?)

Próbáltam különböző módszerekkel megoldani a KittLib.lua program problémáját, de eddig nem találtam logikus okot arra, hogy miért összeomlik. Van valakinek ötlete?

Nem magam írtam ezeket a programokat, így nem tudom megmondani, miért van probléma, bár a kódolás után nem látszik semmi nyilvánvaló hiba.

5. lépés: 7 szegmens LED

7 Szegmens LED
7 Szegmens LED

A fenti KittCar.lua programhoz hasonlóan egy önálló és egy könyvtárfüggő programot is beépítettem a 7 szegmenses LED kijelző vezérléséhez.

Ismétlem, mindkét program ugyanazt csinálja, de bemutatja, hogyan kell használni a saját vagy valaki más által írt könyvtári modult.

6. lépés: Következtetés

Következtetés
Következtetés

Megpróbáltam bemutatni, hogyan kell használni a kódmodulokat a Lua környezetben, és egyidejűleg alkalmazni egy adott IC -re.

Annak ellenére, hogy problémám akadt ezzel kapcsolatban, úgy gondolom, hogy elegendő ahhoz, hogy bemutassuk ezeknek a moduloknak a működését, valamint hogy egy valós alkalmazást is bemutathassunk.

Ajánlott: