Mundarija:
- 1 -qadam: MCP23008 simini ulash
- 2 -qadam: Kengash tuzish
- 3 -qadam: Kutubxona modulidan foydalanish
- 4 -qadam: Kitt avtomobil dasturi
- 5 -qadam: 7 segmentli LED
- 6 -qadam: Xulosa
Video: NODEMCU LUA ESP8266 MCP23008 bilan 8 bitli port kengaytirgichi IC: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
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 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
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 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
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
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
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:
Arduino Nano-MMA8452Q 3 o'qli 12 bitli/8 bitli raqamli akselerometr bo'yicha qo'llanma: 4 qadam
Arduino Nano-MMA8452Q 3-o'qli 12-bitli/8-bitli raqamli akselerometr bo'yicha qo'llanma: MMA8452Q-bu 12 bitli, aqlli, kam quvvatli, uch o'qli, sig'imli, mikromaxinli akselerometr. Foydalanuvchilar tomonidan dasturlashtiriladigan moslashuvchan variantlar akselerometrga o'rnatilgan ikkita funktsiya yordamida ta'minlanadi, ular ikkita uzilishga o'rnatiladi
Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometr Python qo'llanmasi: 4 qadam
Raspberry Pi MMA8452Q 3-o'qli 12-bitli/8-bitli raqamli akselerometr Python qo'llanmasi: MMA8452Q-bu 12 bitli aniqlikdagi aqlli, kam quvvatli, uch o'qli, sig'imli, mikromashinli akselerometr. Foydalanuvchilar tomonidan dasturlashtiriladigan moslashuvchan variantlar akselerometrga o'rnatilgan ikkita funktsiya yordamida ta'minlanadi, ular ikkita uzilishga o'rnatiladi
Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometrli Java darsligi: 4 qadam
Raspberry Pi MMA8452Q 3-o'qli 12-bitli/8-bitli raqamli akselerometr Java darsligi: MMA8452Q-bu 12 bitli aniqlikdagi aqlli, kam quvvatli, uch o'qli, sig'imli, mikromaxinli akselerometr. Foydalanuvchilar tomonidan dasturlashtiriladigan moslashuvchan variantlar akselerometrga o'rnatilgan ikkita funktsiya yordamida ta'minlanadi, ular ikkita uzilishga o'rnatiladi
Raspberry Pi - PCA9536 kirish/chiqish kengaytirgichi Java darsligi: 4 qadam
Raspberry Pi-PCA9536 Input/Output Expander Java darsligi: PCA9536-bu 8-pinli CMOS qurilmasi bo'lib, u I2C-avtobus/SMBus ilovalari uchun umumiy maqsadli parallel kirish/chiqish (GPIO) ning 4 bitini ta'minlaydi. U 4-bitli kirish yoki chiqishni tanlash maqsadiga xizmat qiladigan 4-bitli Konfiguratsiya registridan iborat
NODEMCU LUA ESP8266 MCP23017 bilan 16 bitli port kengaytiruvchi IC: 6 qadam (rasmlar bilan)
NODEMCU LUA ESP8266 MCP23017 bilan 16 bitli port kengaytirgichli IC: MCP23017 - bu chipni har ikki tomonida A va B portlari va pimlari ketma -ket joylashtirilganligi uchun taxta yasash uchun nisbatan oson IC. Hammasi birgalikda, bu ICda ishlatilmaydigan 2 ta pin bor