Мазмуну:

NODEMCU LUA ESP8266 MCP23008 менен 8 Bit Port Expander IC: 6 Steps
NODEMCU LUA ESP8266 MCP23008 менен 8 Bit Port Expander IC: 6 Steps

Video: NODEMCU LUA ESP8266 MCP23008 менен 8 Bit Port Expander IC: 6 Steps

Video: NODEMCU LUA ESP8266 MCP23008 менен 8 Bit Port Expander IC: 6 Steps
Video: WebPage GPIO Control with NodeMCU LUA (ESP8266) 2024, Ноябрь
Anonim
NODEMCU LUA ESP8266 MCP23008 8 Bit Port Expander IC менен
NODEMCU LUA ESP8266 MCP23008 8 Bit Port Expander IC менен

MCP23008 сериялык интерфейси бар 8-биттик I/O кеңейтүүчү болуп саналат жана 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 жөнөкөй түзүлүшкө ээ жана тактай куруу чындыгында оңой. Сиз ошондой эле схеманы нан тактасына орнотсоңуз болот.

Менин тактамдагы туташууларды бекитүү

  • Pin 18 (VDD) 3v3кө
  • Pin 9 (VSS) GNDге
  • Pin 7 (NC) GNDге (Кереги жок)
  • Pin 1 (SCL) ESP GPIO2ге
  • Pin 2 (SDA) ESP GPIO0
  • Pin 5 (A0) GNDге
  • Pin 4 (A1) GNDге
  • Pin 3 (A2) GNDге
  • Pin 6 (КАЛЫПТАЙТ) 3v3кө

Порт Адагы Gndге окула турган казыктарды туташтырыңыз (10-17 -пинтер)

Эскертүү: бул жерде бардык дарек казыктары Gnd менен туташып, I2C дарек шинасында MCP23008ди 0x20 дареги боюнча колдонушат.

Эгерде сиз 0x21 дарегин колдонсоңуз, анда A0 3.3Vга, A1 & A2 Gndге туташкан.

Ошо сыяктуу эле, эгерде 0x22 дареги колдонулса, анда A1 Gnd менен туташкан A0 жана A2 менен 3.3Vга туташтырылышы керек.

жана башкалар…

2 -кадам: Башкарманы куруу

Башкарманы куруу
Башкарманы куруу

Мен тактайымды куруу үчүн 25 мм x 64 мм (9 катар x 25 тешик) Vero тилке тактасын колдондум. Бул бир аз тыгыз, бирок сизге керектүү төөнөгүчтөрдүн көбү ICдин эки жагында болгондуктан, ал эмне кылышы керек болсо, ошого шайкеш келет.

Мен А порту үчүн 8 төөнөгүчтү жана 8 баш розетканы колдондум, ошондуктан мен ар кандай модулдарды, ошондой эле ар кандай долбоорлор үчүн башка зымдарды кошо алам. Мен кошумча Gnd жана 3.3V төөнөгүчтөрдү кошуп койдум, анткени модулдарды бири -бирине туташтырууда булар дайыма жетишпейт.

3 -кадам: Китепкана модулун колдонуу

Китепкана модулун колдонуу
Китепкана модулун колдонуу

Китепкана модулдары, адатта, башка программанын кире турган суб-тартибин, функцияларын жана өзгөрмөлөрүн камтыйт. Программанын өзү иштебейт, бирок анын функцияларына чалуучу программа кире алат. Бул сиздин чакан программаңызды китепкананын ичине киргизип, керек болгон учурда чакырып, чакан чалуу программасын түзө аласыз. Эгерде сизде ар кандай программалар бар болсо, бул баалуу болуп калат, ар бир программага суб-күн тартибин киргизүүнүн кажети жок.

Эскертүү: mcp23008.lua программасы башка программалар сыяктуу ESP8266 эс тутумуна жүктөлүшү керек.

Мен бул жерге github.com программаларын, ошондой эле китепкананын иштеп жатканын көрсөтүү үчүн жөнөкөй программаны (test.lua) коштум.

Китепкананы программаңызга кошуунун жок дегенде 2 жолу бар.

талап кылуу ("mcp23008")

mcp23008.begin (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.3Vга туташкандыктан) жана калган нерсенин баарын баштапкы абалга келтирүү керек. Бул ошондой эле Gndге 10 омдук резистор аркылуу туташуу менен иштейт, балким муну кылуунун жакшы жолу.

Мен ошондой эле KittLib.lua test.lua иштеткенден кийин эч кандай көйгөйсүз чуркай турганын таптым (Эмнеге экенин сураба?)

Мен KittLib.lua программасынын көйгөйүн чечүүнүн ар кандай жолдорун сынап көрдүм, бирок азырынча ал эмне себептен кыйрап жатканына логикалык себеп таба алган жокмун. Кимде кандай идея бар?

Мен бул программалардын бардыгын өзүм жазган эмесмин, андыктан эмне үчүн көйгөй бар экенин айта албайм, бирок коддоону карагандан кийин эч кандай туура эмес нерсе жоктой сезилет.

5 -кадам: 7 сегменти LED

7 Сегмент LED
7 Сегмент LED

Жогорудагы KittCar.lua программасы сыяктуу эле, мен 7 сегменттүү LED дисплейди айдап чыгуу үчүн өз алдынча жана китепканага көз каранды программаны киргиздим.

Дагы, эки программа тең бир нерсени жасашат, бирок өзүңүз же башка бирөө жазган китепкана модулун кантип колдонууну көрсөтүңүз.

6 -кадам: Жыйынтык

Жыйынтык
Жыйынтык

Мен код модулдарын Луа чөйрөсүндө кантип колдонууну көрсөтүүгө жана аны бир эле учурда белгилүү бир ICге колдонууга аракет кылдым.

Мен муну жасоодо көйгөйгө дуушар болгонума карабастан, бул модулдардын кантип иштээрин көрсөтүү үчүн, ошондой эле чыныгы тиркемени көрсөтүү үчүн жетиштүү деп ойлойм.

Сунушталууда: