Բովանդակություն:

NODEMCU LUA ESP8266 MCP23008 8 բիթանոց ընդլայնիչ IC- ով ՝ 6 քայլ
NODEMCU LUA ESP8266 MCP23008 8 բիթանոց ընդլայնիչ IC- ով ՝ 6 քայլ

Video: NODEMCU LUA ESP8266 MCP23008 8 բիթանոց ընդլայնիչ IC- ով ՝ 6 քայլ

Video: NODEMCU LUA ESP8266 MCP23008 8 բիթանոց ընդլայնիչ IC- ով ՝ 6 քայլ
Video: WebPage GPIO Control with NodeMCU LUA (ESP8266) 2024, Նոյեմբեր
Anonim
NODEMCU LUA ESP8266 MCP23008 8 բիթանոց նավահանգստի ընդլայնիչ IC- ով
NODEMCU LUA ESP8266 MCP23008 8 բիթանոց նավահանգստի ընդլայնիչ IC- ով

MCP23008- ը 8-բիթանոց մուտքային/ելքային ընդլայնիչ է ՝ սերիական ինտերֆեյսով և գործում է 1.8-5.5 վոլտ միջակայքում, ուստի իդեալական է ESP8266, Arduino, Raspberry Pi, PIC չիպսերի և այլնի համար:

Եթե դուք տեսել եք իմ մյուս Instructable- ը MCP23017- ում, գուցե ձեզ զարմանա, թե ինչու եմ ես նաև դա անում MCP23008- ի համար, քանի որ դա իսկապես նույն բանի ավելի փոքր տարբերակն է:

Պատճառներն այն են, որ գրանցամատյանները տարբեր են թե՛ անունով և թե՛ թվով, և ես կցանկանայի ցույց տալ, թե ինչպես օգտագործել պատրաստի գրադարանի մոդուլը: Ոչ բոլորը հմուտ են NodeMCU lua օգտագործելիս, այնպես որ ես կցանկանայի ցույց տալ ծրագրավորման այս ասպեկտը, ինչպես նաև այն, թե ինչպես օգտագործել MCP23008- ը:

Գրադարանը և ծրագրերը հասանելի են github.com կայքում:

MCP23008- ի տվյալների թերթիկը հասանելի է Microchip- ից:

Քայլ 1. Միացում MCP23008

MCP23008 միացում
MCP23008 միացում

MCP23008 IC- ն պարզ դասավորության է, և տախտակ կառուցելը իրոք հեշտ է դրա համար: Կարող եք նաև միացում տեղադրել հացի տախտակի վրա:

Ամրացնել կապերը իմ տախտակին

  • Պին 18 (VDD) դեպի 3v3
  • Ամրացնել 9 -ը (VSS) GND- ին
  • Պին 7 (NC) դեպի GND (Անհրաժեշտ չէ)
  • Կցեք 1 (SCL) ESP GPIO2- ին
  • Պին 2 (SDA) ESP GPIO0- ին
  • Կցեք 5 (A0) դեպի GND
  • GIN 4 (A1) դեպի GND
  • Պին 3 (A2) դեպի GND
  • Ամրացրեք 6 -ը (RESET) դեպի 3v3

Միացրեք Gnd- ին ընթերցվող կապերը A նավահանգստում (կապում 10 - 17)

Նշում. Այստեղ հասցեի բոլոր կապերը միացված են Gnd- ին ՝ MCP23008- ը I2C հասցեի ավտոբուսի 0x20 հասցեով օգտագործելու համար:

Եթե դուք օգտագործում էիք 0x21 հասցեն, ապա A0- ն միացված կլիներ 3.3 Վ -ին, իսկ A1- ը և A2- ը `Gnd- ին:

Նմանապես, եթե օգտագործում եք 0x22 հասցեն, ապա A1- ը պետք է միացված լինի 3.3 Վ -ին, A0- ը և A2- ը `Gnd- ին:

և այլն…

Քայլ 2. Տախտակի կառուցում

Տախտակ կառուցելը
Տախտակ կառուցելը

Ես օգտագործել եմ 25 մմ x 64 մմ (9 տող x 25 անցք) Vero ժապավենային տախտակ ՝ իմ տախտակը կառուցելու համար: Այն մի փոքր ամուր է, բայց քանի որ ձեզ անհրաժեշտ քորոցների մեծ մասը գտնվում են IC- ի երկու կողմերում, այն համարժեք է այն, ինչ պետք է անի:

Ես օգտագործել եմ 8 կապում և 8 գլխի վարդակներ A նավահանգստի համար, որպեսզի կարողանամ միացնել իմ տարբեր մոդուլները, ինչպես նաև տարբեր նախագծերի այլ էլեկտրագծեր: Ես ավելացրել եմ լրացուցիչ Gnd և 3.3V կապոցներ, քանի որ իմ կարծիքով մոդուլները միասին միացնելիս դրանց սակավությունը միշտ կա:

Քայլ 3. Գրադարանի մոդուլի օգտագործումը

Գրադարանի մոդուլի օգտագործումը
Գրադարանի մոդուլի օգտագործումը

Գրադարանի մոդուլները սովորաբար պարունակում են ենթածրագրերի, գործառույթների և փոփոխականների ընտրանի, որոնց հասանելիությունը կարող է լինել այլ ծրագիր: Itselfրագիրը ինքնին չի գործարկվում, բայց նրա գործառույթներին հասանելի կարող է լինել զանգող ծրագիրը: Դա նշանակում է, որ դուք կարող եք ունենալ ձեր ենթակարգերը գրադարանում և կանչել դրանք, երբ դրանք ձեզ անհրաժեշտ են ՝ կազմելով զանգահարելու մի փոքր ծրագիր: Այն դառնում է ավելի արժեքավոր, եթե դուք ունեք բազմաթիվ տարբեր ծրագրեր, որոնք օգտագործում են նույն ենթածրագրերը, կարիք չկա ենթածրագրերը ներառել յուրաքանչյուր ծրագրում:

Նշում. Mcp23008.lua ծրագիրը պետք է բեռնվի ESP8266 հիշողության մեջ, ինչպես մյուս ծրագրերը:

Ես այստեղ ներառել եմ github.com ծրագրերը, ինչպես նաև մի պարզ ծրագիր (test.lua) ՝ ցույց տալու համար, որ գրադարանը գործում է:

Գրադարանը ձեր ծրագրում ընդգրկելու առնվազն 2 եղանակ կա:

պահանջել ("mcp23008")

mcp23008. սկսել (0x0, gpio2, gpio0, i2c. SLOW)

կամ

mcp = պահանջել ("mcp23008")

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

Վերոնշյալ երկուսն էլ նույնն են անում, բայց երկրորդ մեթոդը թույլ է տալիս ծրագրի անվան փոխարեն օգտագործել ձեր սեփական փոփոխականը:

Քայլ 4: Kitt Car ծրագիր

Kitt Car ծրագիր
Kitt Car ծրագիր

Ես ներառել եմ KittCar23008.lua ծրագիրը և KittLib.lua- ն, որն օգտագործում է գրադարանը `ցույց տալու տարբերությունները ծրագրեր այսպես գրելու տարբերությունները: Երկու ծրագրերն էլ նույնն են անում:

8 LED լիցքավորիչը հասանելի է Ebay- ից որպես հավաքածու և հայտնի է որպես 8 Channel Flowing Water Light LED DIY Kit, 99p Չինաստանից: Դուք ինքներդ պետք է այն կպցրեք:

Նշում. Եթե KittLib.lua ծրագիրը գործարկելիս խնդիր ունեք, փորձեք միանգամից միացնել MCP23008 RESET կապը Gnd- ին: Ես գիտեմ, որ սա ուղղակի կարճ միացում կտա (քանի որ այն միացված է 3.3 Վ -ին), և մնացած բոլորը պետք է վերակայել: Այն աշխատում է նաև Gnd- ին միացնելով 10 օմ ռեզիստորի միջոցով, հավանաբար դա ավելի լավ միջոց է:

Ես նաև պարզեցի, որ test.lua- ն գործարկելուց հետո KittLib.lua- ն առանց խնդիրների կաշխատի (Մի հարցրու ինձ ինչու)

Ես փորձել եմ տարբեր եղանակներ լուծել KittLib.lua ծրագրի խնդիրը, բայց մինչ այժմ չեմ գտնում որևէ տրամաբանական պատճառ, թե ինչու է այն խափանվում: Որևէ մեկը որևէ գաղափար ունի՞:

Ես ինքս չեմ գրել այս բոլոր ծրագրերը, ուստի չեմ կարող ասել, թե ինչու է խնդիրը, չնայած ծածկագրերին նայելուց հետո, կարծես, ակնհայտորեն ոչ մի սխալ բան չկա:

Քայլ 5: 7 հատված LED

7 հատված LED
7 հատված LED

Ինչպես վերը նշված KittCar.lua ծրագրի դեպքում, ես ներառել եմ առանձին և գրադարանից կախված ծրագիր `7 հատվածի LED էկրան վարելու համար:

Կրկին, երկու ծրագրերն էլ նույն բանն են անում, բայց ցույց են տալիս, թե ինչպես օգտագործել գրադարանի մոդուլը ՝ ձեր կամ մեկ ուրիշի կողմից գրված:

Քայլ 6: Եզրակացություն

Եզրակացություն
Եզրակացություն

Ես փորձել եմ ցույց տալ, թե ինչպես օգտագործել կոդի մոդուլները Lua միջավայրում և միաժամանակ կիրառել այն կոնկրետ IC- ի վրա:

Թեև ես խնդիր ունեի դա անել, ես կարծում եմ, որ բավականաչափ բան կա ցույց տալու, թե ինչպես են աշխատում այս մոդուլները, ինչպես նաև իրական կյանքի կիրառման ցուցադրումը:

Խորհուրդ ենք տալիս: