Mundarija:

NODEMCU LUA ESP8266 MCP23008 bilan 8 bitli port kengaytirgichi IC: 6 qadam
NODEMCU LUA ESP8266 MCP23008 bilan 8 bitli port kengaytirgichi IC: 6 qadam

Video: NODEMCU LUA ESP8266 MCP23008 bilan 8 bitli port kengaytirgichi IC: 6 qadam

Video: NODEMCU LUA ESP8266 MCP23008 bilan 8 bitli port kengaytirgichi IC: 6 qadam
Video: App Inventor 2 - ESP8266 GPIO Control with Nodemcu LUA 2024, Noyabr
Anonim
NODEMCU LUA ESP8266 MCP23008 bilan 8 bitli port kengaytirgichi IC
NODEMCU LUA ESP8266 MCP23008 bilan 8 bitli port kengaytirgichi IC

MCP23008-ketma-ket interfeysli 8-bitli kirish-chiqish kengaytirgichi va 1,8 dan 5,5 voltgacha ishlaydi, shuning uchun ESP8266, Arduino, Raspberry Pi, PIC chiplari va boshqalar uchun ideal.

Agar siz MCP23017 -da mening boshqa ko'rsatmalarni ko'rgan bo'lsangiz, nega men MCP23008 uchun ham shunday qilyapman deb o'ylashingiz mumkin, chunki bu haqiqatan ham xuddi shu narsaning kichikroq versiyasidir.

Sababi shundaki, uning registrlari ham nomidan, ham raqamidan farq qiladi va men tayyor kutubxona modulidan qanday foydalanishni ko'rsatmoqchiman. NodeMCU lua -ni ishlatishda hamma ham mohir emas, shuning uchun men dasturlashning bu tomonini hamda MCP23008 -dan qanday foydalanishni ko'rsatmoqchiman.

Kutubxona va dasturlar github.com saytida mavjud.

MCP23008 ma'lumotlar jadvali Microchip -da mavjud.

1 -qadam: MCP23008 simini ulash

MCP23008 simini ulash
MCP23008 simini ulash

MCP23008 IC oddiy sxemaga ega va unga taxta qurish juda oson. Bundan tashqari, sxemani non taxtasida o'rnatishingiz mumkin.

Mening taxtamda ulanishlarni belgilang

  • 18 -pin (VDD) 3v3 ga ulang
  • 9 -pinni (VSS) GND ga ulang
  • 7 -pin (NC) ni GND ga (kerak emas)
  • 1 -pin (SCL) ESP GPIO2 ga ulang
  • 2 -pin (SDA) ESP GPIO0 ga ulang
  • 5 -pin (A0) GND ga ulang
  • 4 -pin (A1) GND ga ulang
  • 3 -pin (A2) GND ga ulang
  • 6 -pin (RESET) 3v3 ga ulang

A portidagi Gnd -ga o'qiladigan pinlarni ulang (10-17 -pinlar).

Eslatma: bu erda barcha manzil pinlari Gnd ga ulangan bo'lib, MCP23008 -ni 0x20 manzilidagi I2C manzil shinasida ishlatadi.

Agar siz 0x21 manzilidan foydalansangiz, A0 3.3V ga ulanadi, A1 va A2 Gnd ga ulanadi.

Xuddi shunday, agar 0x22 manzilidan foydalanilsa, A1 3.3V ga A0 va A2 Gnd ga ulangan bo'lishi kerak.

va boshqalar…

2 -qadam: Kengash tuzish

Kengash tuzish
Kengash tuzish

Men taxtani qurish uchun 25 mm x 64 mm (9 qator x 25 teshik) Vero tasmasini ishlatardim. Bu biroz qattiq, lekin sizga kerak bo'lgan pimlarning aksariyati ICning har ikki tomonida joylashganligi sababli, u nima qilishi kerakligi etarli.

Men A porti uchun 8 ta pin va 8 ta rozetkadan foydalandim, shunda men har xil modullarni, shuningdek, turli loyihalar uchun boshqa simlarni ulashim mumkin. Men qo'shimcha Gnd va 3.3V pinlarini qo'shdim, chunki modullarni bir -biriga ulashda har doim bularning etishmasligi kuzatiladi.

3 -qadam: Kutubxona modulidan foydalanish

Kutubxona modulidan foydalanish
Kutubxona modulidan foydalanish

Kutubxona modullari, odatda, boshqa dastur orqali kirish mumkin bo'lgan kichik tartiblar, funktsiyalar va o'zgaruvchilarni o'z ichiga oladi. Dasturning o'zi ishlamaydi, lekin uning funktsiyalariga qo'ng'iroq qiluvchi dastur kirishi mumkin. Bu shuni anglatadiki, siz o'zingizning kichik tartiblaringizni kutubxonada saqlay olasiz va kerak bo'lganda ularni qo'ng'iroq qilib, kichik qo'ng'iroq dasturini tuzishingiz mumkin. Agar sizda bir xil dasturlardan foydalanadigan turli xil dasturlar bo'lsa, bu yanada qimmatli bo'ladi, har bir dasturga kichik tartiblarni kiritish shart emas.

Eslatma: mcp23008.lua dasturi boshqa dasturlar singari ESP8266 xotirasiga yuklanishi kerak.

Men bu erda github.com dasturlarini va kutubxona ishlayotganini ko'rsatish uchun oddiy dasturni (test.lua) qo'shdim.

Kutubxonani dasturingizga qo'shishning kamida 2 usuli mavjud.

talab ("mcp23008")

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

yoki

mcp = talab ("mcp23008")

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

Yuqoridagilarning ikkalasi ham xuddi shunday qilishadi, lekin ikkinchi usul sizga dastur nomining o'rniga o'z o'zgaruvchisini ishlatishga imkon beradi.

4 -qadam: Kitt avtomobil dasturi

Kitt avtomobil dasturi
Kitt avtomobil dasturi

Men KittCar23008.lua va KittLib.lua dasturlarini o'z ichiga olganman, ular kutubxonadan dasturlarni shunday yozishdagi farqlarni ko'rsatish uchun ishlatiladi. Ikkala dastur ham xuddi shunday ishlaydi.

8 LEDli ulagich Ebay -dan to'plam sifatida mavjud va Xitoydan 99p bo'lgan 8 kanalli oqimli suv yoritgichli LED DIY to'plami sifatida tanilgan. Siz uni o'zingiz lehimlashingiz kerak.

Eslatma: Agar sizda KittLib.lua dasturini ishga tushirishda muammo bo'lsa, MCP23008 RESET pinini bir zumda Gnd ga ulab ko'ring. Bilaman, bu to'g'ridan -to'g'ri qisqa tutashuvni beradi (chunki u 3,3V ga ulangan) va siz hamma narsani qayta tiklashingiz kerak. Bundan tashqari, Gnd -ga 10 ohmli rezistor orqali ulanish orqali ishlaydi, ehtimol buni qilishning eng yaxshi usuli.

Bundan tashqari, test.lua ishga tushganidan keyin KittLib.lua hech qanday muammosiz yugurishini aniqladim (Nega menga savol bermang?)

Men KittLib.lua dasturi muammosini hal qilishning turli usullarini sinab ko'rdim, lekin hozircha nima uchun u qulab tushishiga mantiqiy sabab topa olmayapman. Hech kimda qanday fikr bor?

Men bu dasturlarning hammasini o'zim yozmaganman, shuning uchun nima uchun muammo borligini ayta olmayman, lekin kodlashni ko'rib chiqqandan so'ng, hech qanday noto'g'ri narsa yo'qdek tuyuladi.

5 -qadam: 7 segmentli LED

7 segmentli LED
7 segmentli LED

Yuqoridagi KittCar.lua dasturida bo'lgani kabi, men 7 segmentli LED displeyni boshqarish uchun mustaqil va kutubxonaga bog'liq dasturni qo'shdim.

Shunga qaramay, ikkala dastur ham xuddi shunday qilishadi, lekin o'zingiz yoki boshqa birov tomonidan yozilgan kutubxona modulidan qanday foydalanishni ko'rsating.

6 -qadam: Xulosa

Xulosa
Xulosa

Men kod modullarini Lua muhitida qanday ishlatishni ko'rsatishga harakat qildim va uni bir vaqtning o'zida ma'lum bir ICga qo'lladim.

Garchi menda bu borada muammo bo'lsa -da, menimcha, bu modullarning qanday ishlashini ko'rsatish va real hayotiy ilovani ko'rsatish uchun etarli.

Tavsiya: