Мазмұны:

NODEMCU LUA ESP8266 MCP23008 8 разрядты порт кеңейткіші бар IC: 6 қадам
NODEMCU LUA ESP8266 MCP23008 8 разрядты порт кеңейткіші бар IC: 6 қадам

Бейне: NODEMCU LUA ESP8266 MCP23008 8 разрядты порт кеңейткіші бар IC: 6 қадам

Бейне: NODEMCU LUA ESP8266 MCP23008 8 разрядты порт кеңейткіші бар IC: 6 қадам
Бейне: ESP8266 NodeMCU Interface - MCP23017 i/o expender with LED Example! 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 чиптері және басқалары үшін өте қолайлы.

Егер сіз менің басқа нұсқаулықты MCP23017 -де көрген болсаңыз, онда мен неге MCP23008 үшін де жасап жатырмын деп ойлайтын шығарсыз, себебі бұл шынымен де сол нәрсенің кішірек нұсқасы.

Мұның себебі - оның регистрлері аты мен нөмірі бойынша әр түрлі, сондықтан мен дайын кітапхана модулін қалай қолдану керектігін көрсеткім келеді. NodeMCU lua қолдануда бәрі бірдей шебер емес, сондықтан мен бағдарламалаудың осы аспектісін, сондай -ақ MCP23008 қалай қолданылатынын көрсеткім келеді.

Кітапхана мен бағдарламалар github.com сайтында қол жетімді.

MCP23008 мәліметтер кестесі Microchip -тен қол жетімді.

1 -қадам: MCP23008 сымын қосу

MCP23008 сымын қосу
MCP23008 сымын қосу

MCP23008 IC қарапайым орналасуы болып табылады және оған тақта салу өте оңай. Сондай -ақ, схеманы нан тақтасына орнатуға болады.

Менің тақтамен байланыстарды бекітіңіз

  • 18 (VDD) 3v3 -ке дейін бекітіңіз
  • GND -ге 9 (VSS) түйреу
  • 7 -түйін (NC) GND -ге (қажет емес)
  • 1 -түйреуішті (SCL) ESP GPIO2 -ге қосыңыз
  • 2 -түйреуішті (SDA) ESP GPIO0 -ге қосыңыз
  • 5 -түйреуішті (A0) GND -ге қосыңыз
  • 4 (A1) түйреуішін GND -ге бекітіңіз
  • 3 -түйреуішті (A2) GND -ге қосыңыз
  • 6 -түйреуішті (қалпына келтіру) 3v3 -ке дейін

А портындағы Gnd -ге оқылатын түйреуіштерді қосыңыз (түйреуіштер 10 - 17)

Ескерту: мұнда барлық адрестер түйрегіштері G2 -ге қосылған, MCP23008 I2C адрестік шинасындағы 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 жарықдиодты қосқыш Ebay -ден жинақ ретінде қол жетімді және 8 каналды ағынды светодиодты жарықдиодты DIY DIY жиынтығы ретінде белгілі, Қытайдан 99p. Сіз оны өзіңіз дәнекерлеуіңіз керек.

Ескерту: Егер сізде KittLib.lua бағдарламасын іске қосуда қиындықтар туындаса, MCP23008 RESET түйреуішін Gnd -ге қосуға тырысыңыз. Мен бұл қысқа тұйықталудың тікелей болатынын білемін (себебі ол 3.3В қосылған) және қалғандарын қалпына келтіру керек. Ол сондай -ақ Gnd -ге 10 Ом резисторы арқылы қосылу арқылы жұмыс істейді, мүмкін мұны жақсы әдіс.

Сондай -ақ, KittLib.lua test.lua іске қосылғаннан кейін еш қиындықсыз жүгіретінін білдім (Неге екенін сұрамаңыз?)

Мен KittLib.lua бағдарламасының мәселесін шешудің әр түрлі әдістерін қолдандым, бірақ әлі күнге дейін оның бұзылуының логикалық себебін таба алмадым. Кез келген адамның идеясы бар ма?

Мен бұл бағдарламалардың барлығын өз бетімше жазған жоқпын, сондықтан неге проблема бар екенін айта алмаймын, дегенмен кодтауға қарағаннан кейін ештеңе дұрыс емес сияқты.

5 -қадам: 7 сегментті жарық диоды

7 сегменттік жарық диоды
7 сегменттік жарық диоды

Жоғарыдағы KittCar.lua бағдарламасы сияқты, менде 7 сегментті жарықдиодты дисплейді басқаратын оқшау және кітапханаға тәуелді бағдарлама бар.

Тағы да, екі бағдарлама да бір нәрсені жасайды, бірақ өзіңіз немесе басқа біреу жазған кітапхана модулін қалай қолдану керектігін көрсетеді.

6 -қадам: Қорытынды

Қорытынды
Қорытынды

Мен Lua ортасында код модульдерін қалай қолдануға болатынын көрсетуге тырыстым және оны бір мезгілде белгілі бір IC -ге қолдандым.

Менде бұл мәселе туындаса да, менің ойымша, бұл модульдердің қалай жұмыс жасайтынын көрсетуге, сонымен қатар нақты өмірдегі қосымшаны көрсетуге жеткілікті.

Ұсынылған: