Satura rādītājs:

NODEMCU LUA ESP8266 ar MCP23008 8 bitu portu paplašinātāja IC: 6 soļi
NODEMCU LUA ESP8266 ar MCP23008 8 bitu portu paplašinātāja IC: 6 soļi

Video: NODEMCU LUA ESP8266 ar MCP23008 8 bitu portu paplašinātāja IC: 6 soļi

Video: NODEMCU LUA ESP8266 ar MCP23008 8 bitu portu paplašinātāja IC: 6 soļi
Video: Construcción de un drone - modulo WiFi esp8266 2024, Novembris
Anonim
NODEMCU LUA ESP8266 ar MCP23008 8 bitu portu paplašinātāja IC
NODEMCU LUA ESP8266 ar MCP23008 8 bitu portu paplašinātāja IC

MCP23008 ir 8 bitu I/O paplašinātājs ar seriālo interfeisu un darbojas no 1,8 līdz 5,5 voltiem, tāpēc ir ideāli piemērots ESP8266, Arduino, Raspberry Pi, PIC mikroshēmām un citiem.

Ja esat redzējis manu citu pamācību par MCP23017, jums varētu rasties jautājums, kāpēc es to daru arī attiecībā uz MCP23008, jo tā patiešām ir mazāka tās pašas lietas versija.

Iemesli ir tādi, ka tā reģistri ir atšķirīgi gan nosaukumā, gan numurā, un es vēlos parādīt, kā izmantot gatavu bibliotēkas moduli. Ne visi ir lietpratīgi, lietojot NodeMCU lua, tāpēc es vēlos parādīt šo programmēšanas aspektu, kā arī to, kā izmantot MCP23008.

Bibliotēka un programmas ir pieejamas vietnē github.com.

MCP23008 datu lapa ir pieejama vietnē Microchip.

1. darbība: MCP23008 vadu savienošana

Elektroinstalācija MCP23008
Elektroinstalācija MCP23008

MCP23008 IC ir vienkārša izkārtojuma, un tā dēļa izveidošana ir reāli vienkārša. Jūs varat arī iestatīt ķēdi uz maizes dēļa.

Piespraust savienojumus manā panelī

  • Piespraude 18 (VDD) līdz 3v3
  • 9. tapa (VSS) līdz GND
  • 7. tapa (NC) līdz GND (nav nepieciešams)
  • Piespraude 1 (SCL) pie ESP GPIO2
  • Piespraude 2 (SDA) pie ESP GPIO0
  • Piespraude 5 (A0) līdz GND
  • 4. tapa (A1) līdz GND
  • Piespraude 3 (A2) līdz GND
  • Pin 6 (RESET) uz 3v3

Pievienojiet nolasāmās tapas Gnd portā A (tapas 10 - 17)

Piezīme: šeit visas adrešu tapas ir savienotas ar Gnd, lai izmantotu MCP23008 pēc adreses 0x20 I2C adrešu kopnē.

Ja jūs izmantotu adresi 0x21, tad A0 būtu savienots ar 3.3V, un A1 un A2 būtu savienoti ar Gnd.

Līdzīgi, ja tiek izmantota adrese 0x22, tad A1 būtu jāpievieno 3.3V ar A0 un A2, kas savienoti ar Gnd.

utt…

2. solis: valdes izveide

Valdes veidošana
Valdes veidošana

Lai izveidotu savu dēli, es izmantoju 25 mm x 64 mm (9 rindas x 25 caurumi) Vero sloksnes plāksni. Tas ir nedaudz saspringts, bet, tā kā lielākā daļa nepieciešamo tapu atrodas abās IC pusēs, tas ir piemērots tam, kas tam jādara.

A portam esmu izmantojis 8 tapas un 8 galvenes ligzdas, lai dažādiem projektiem varētu pievienot dažādus moduļus, kā arī citus vadus. Esmu pievienojis papildu Gnd un 3.3V tapas, jo, manuprāt, to vienmēr trūkst, savienojot moduļus kopā.

3. darbība: bibliotēkas moduļa izmantošana

Bibliotēkas moduļa izmantošana
Bibliotēkas moduļa izmantošana

Bibliotēkas moduļi parasti satur apakšprogrammas, funkcijas un mainīgos, kuriem var piekļūt cita programma. Pati programma nedarbojas, bet tās funkcijām var piekļūt izsaucēja programma. Tas nozīmē, ka bibliotēkā varat ievietot apakšprogrammas un piezvanīt tām, kad vien tās ir nepieciešamas, izveidojot nelielu zvanīšanas programmu. Tas kļūst vērtīgāks, ja jums ir daudz dažādu programmu, kurās tiek izmantotas vienas un tās pašas apakšprogrammas, jums nav jāiekļauj apakšprogrammas katrā programmā.

Piezīme: programma mcp23008.lua ir jāielādē ESP8266 atmiņā tāpat kā citas programmas.

Šeit esmu iekļāvis github.com programmas, kā arī vienkāršu programmu (test.lua), lai parādītu, ka bibliotēka darbojas.

Bibliotēku var iekļaut savā programmā vismaz 2 veidos.

pieprasīt ("mcp23008")

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

vai

mcp = pieprasīt ("mcp23008")

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

Abas iepriekš minētās darbības veic vienu un to pašu, bet otrā metode ļauj programmas nosaukuma vietā izmantot savu mainīgo.

4. solis: Kitt Car programma

Kitt Car programma
Kitt Car programma

Esmu iekļāvis programmu KittCar23008.lua un KittLib.lua, kas izmanto bibliotēku, lai parādītu atšķirības, kā šādā veidā rakstīt programmas. Abas programmas dara to pašu.

8 LED spraudnis ir pieejams no Ebay kā komplekts, un tas ir pazīstams kā 8 kanālu plūstoša ūdens gaismas LED DIY komplekts, 99p no Ķīnas. Jums tas ir jālodē pats.

Piezīme. Ja jums rodas problēma, mēģinot palaist programmu KittLib.lua, mēģiniet īslaicīgi savienot MCP23008 RESET tapu ar Gnd. Es zinu, ka tas radīs tiešu īssavienojumu (jo tas ir savienots ar 3.3V), un jums ir jāatiestata viss pārējais. Tas darbojas arī, pieslēdzoties Gnd caur 10 omu rezistoru, iespējams, tas ir labāks veids.

Es arī atklāju, ka KittLib.lua darbosies bez problēmām pēc testa.lua palaišanas (nejautājiet man, kāpēc?)

Esmu mēģinājis dažādus veidus, kā atrisināt KittLib.lua programmas problēmu, taču līdz šim nevaru atrast loģisku iemeslu, kāpēc tā avarē. Vai kādam ir idejas?

Es pats neesmu uzrakstījis visas šīs programmas, tāpēc es nevaru pateikt, kāpēc radās problēma, lai gan, aplūkojot kodējumu, šķiet, ka nekas acīmredzami nav kārtībā.

5. darbība: 7 segmenta gaismas diode

7 segmenta gaismas diode
7 segmenta gaismas diode

Tāpat kā iepriekšējā KittCar.lua programmā, es esmu iekļāvis atsevišķu un no bibliotēkas atkarīgu programmu, lai vadītu 7 segmentu LED displeju.

Atkal abas programmas dara vienu un to pašu, bet parāda, kā izmantot bibliotēkas moduli, ko esat uzrakstījis jūs vai kāds cits.

6. darbība. Secinājums

Secinājums
Secinājums

Esmu mēģinājis parādīt, kā izmantot koda moduļus Lua vidē, un vienlaikus piemērot to konkrētam IC.

Lai gan man ir radušās problēmas to darīt, es domāju, ka ir pietiekami daudz, lai parādītu, kā šie moduļi darbojas, kā arī demonstrētu reālās dzīves lietojumu.

Ieteicams: