Kazalo:

NODEMCU LUA ESP8266 z 8 -bitnim razširiteljem vrat MCP23008: 6 korakov
NODEMCU LUA ESP8266 z 8 -bitnim razširiteljem vrat MCP23008: 6 korakov

Video: NODEMCU LUA ESP8266 z 8 -bitnim razširiteljem vrat MCP23008: 6 korakov

Video: NODEMCU LUA ESP8266 z 8 -bitnim razširiteljem vrat MCP23008: 6 korakov
Video: Настройка модуля esp8266 NodeMCU Lua WIFI (настройка wi-fi и доступа) общие для всех проектов 2024, November
Anonim
NODEMCU LUA ESP8266 z 8 -bitnim IC razširiteljem vrat MCP23008
NODEMCU LUA ESP8266 z 8 -bitnim IC razširiteljem vrat MCP23008

MCP23008 je 8-bitni V/I razširjevalnik s serijskim vmesnikom in deluje med 1,8 in 5,5 voltov, zato je idealen za ESP8266, Arduino, Raspberry Pi, PIC čipe in drugo.

Če ste na MCP23017 videli moj drugi Instructable, se morda sprašujete, zakaj to počnem tudi za MCP23008, saj je res manjša različica iste stvari.

Razlogi so v tem, da so njeni registri različni tako po imenu kot po številki, zato bi rad pokazal, kako uporabljati že pripravljen knjižnični modul. Pri uporabi NodeMCU lua niso vsi spretni, zato bi rad pokazal ta vidik programiranja, pa tudi način uporabe MCP23008.

Knjižnica in programi so na voljo na github.com.

Podatkovni list za MCP23008 je na voljo pri Microchipu.

1. korak: Ožičenje MCP23008

Ožičenje MCP23008
Ožičenje MCP23008

IC MCP23008 je preproste postavitve in izdelava plošče je zanj zelo enostavna. Vezje lahko nastavite tudi na plošči za kruh.

Pin Connections na moji plošči

  • Pin 18 (VDD) na 3v3
  • Pin 9 (VSS) na GND
  • Pin 7 (NC) na GND (Ni potrebno)
  • Pin 1 (SCL) na ESP GPIO2
  • Pin 2 (SDA) na ESP GPIO0
  • Pin 5 (A0) na GND
  • Pin 4 (A1) na GND
  • Pin 3 (A2) na GND
  • Pin 6 (RESET) na 3v3

Priključite zatiče za branje na Gnd na vratih A (zatiči 10 - 17)

Opomba: tukaj so vsi zatiči naslovov povezani z Gnd za uporabo MCP23008 na naslovu 0x20 na naslovnem vodilu I2C.

Če bi uporabljali naslov 0x21, bi bil A0 priključen na 3.3V, A1 in A2 pa na Gnd.

Podobno, če uporabljate naslov 0x22, bi morali A1 priključiti na 3.3V z A0 in A2 priključenim na Gnd.

itd…

2. korak: Izdelava odbora

Sestavljanje odbora
Sestavljanje odbora

Za izdelavo deske sem uporabil ploščo Vero 25 mm x 64 mm (9 vrstic x 25 lukenj). Je nekoliko tesen, a ker je večina zatičev, ki jih potrebujete, na obeh straneh IC, je primeren za to, kar mora narediti.

Za vrata A sem uporabil 8 zatičev in 8 vtičnic za glave, da sem lahko priključil različne module in drugo ožičenje za različne projekte. Dodal sem dodatne zatiče Gnd in 3.3V, saj pri povezovanju modulov teh vedno primanjkuje.

3. korak: Uporaba knjižničnega modula

Uporaba knjižničnega modula
Uporaba knjižničnega modula

Knjižnični moduli običajno vsebujejo izbor podprogramov, funkcij in spremenljivk, do katerih lahko dostopa drugi program. Sam program se ne zažene, vendar lahko klicni program dostopa do njegovih funkcij. To pomeni, da lahko imate svoje podprograme v knjižnici in jih pokličete, kadar koli jih potrebujete, tako da naredite majhen klicni program. Bolj dragoceno postane, če uporabljate veliko različnih programov, ki uporabljajo iste podprograme, vam ni treba vključiti podprogramov v vsak program.

Opomba: program mcp23008.lua je treba tako kot druge programe naložiti v pomnilnik ESP8266.

Sem sem vključil programe github.com in preprost program (test.lua), ki dokazuje, da knjižnica deluje.

Knjižnico lahko vključite v svoj program na vsaj dva načina.

require ("mcp23008")

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

ali

mcp = zahteva ("mcp23008")

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

Oba zgornja delata isto, druga metoda pa vam omogoča, da namesto imena programa uporabite svojo spremenljivko.

4. korak: Program za avtomobile Kitt

Kittov avtomobilski program
Kittov avtomobilski program

Vključil sem program KittCar23008.lua in KittLib.lua, ki uporablja knjižnico za prikaz razlik v tem načinu pisanja programov. Oba programa delata isto.

Vtičnica 8 LED je na voljo pri Ebayu kot komplet in je znana kot 8 -kanalni komplet LED -svetilka s tekočo vodo, 99p iz Kitajske. Spajkati ga morate sami.

Opomba: Če imate težave pri poskusu zagona programa KittLib.lua, poskusite za trenutek priključiti pin za ponastavitev MCP23008 na Gnd. Vem, da bo to povzročilo neposreden kratek stik (saj je povezan z 3.3V), vse ostalo pa morate ponastaviti. Deluje tudi tako, da se priključite na Gnd prek upora 10 ohmov, kar je verjetno boljši način.

Ugotovil sem tudi, da bi KittLib.lua po zagonu test.lua deloval brez težav (ne vprašaj me zakaj?)

Poskušal sem na različne načine rešiti težavo s programom KittLib.lua, vendar doslej ne najdem nobenega logičnega razloga, zakaj se zruši. Ima kdo kakšno idejo?

Sam nisem napisal vseh teh programov, zato ne morem povedati, zakaj je prišlo do težave, čeprav se po ogledu kodiranja ne zdi nič očitno narobe.

Korak 5: 7 Segmentna LED

7 Segmentna LED
7 Segmentna LED

Tako kot pri zgornjem programu KittCar.lua sem vključil tudi samostojen in od knjižnice odvisen program za pogon 7 -segmentnega LED zaslona.

Ponovno oba programa počneta isto, vendar prikazujeta, kako uporabljati knjižnični modul, ki ste ga napisali sami ali kdo drug.

6. korak: Zaključek

Zaključek
Zaključek

Poskušal sem pokazati, kako uporabljati kodne module v okolju Lua in jih hkrati uporabiti za določeno IC.

Čeprav sem imel pri tem težave, menim, da je dovolj prikazati delovanje teh modulov in prikazati aplikacijo v resničnem življenju.

Priporočena: