Sadržaj:

NODEMCU LUA ESP8266 sa MCP23008 proširivačem 8 -bitnih portova IC: 6 koraka
NODEMCU LUA ESP8266 sa MCP23008 proširivačem 8 -bitnih portova IC: 6 koraka

Video: NODEMCU LUA ESP8266 sa MCP23008 proširivačem 8 -bitnih portova IC: 6 koraka

Video: NODEMCU LUA ESP8266 sa MCP23008 proširivačem 8 -bitnih portova IC: 6 koraka
Video: App Inventor 2 - ESP8266 GPIO Control with Nodemcu LUA 2024, Novembar
Anonim
NODEMCU LUA ESP8266 sa MCP23008 IC proširivačem 8 -bitnih portova
NODEMCU LUA ESP8266 sa MCP23008 IC proširivačem 8 -bitnih portova

MCP23008 je 8-bitni I/O ekspander sa serijskim sučeljem i radi između 1,8 i 5,5 volti, pa je idealan za ESP8266, Arduino, Raspberry Pi, PIC čipove i još mnogo toga.

Ako ste vidjeli moj drugi Instructable na MCP23017, možda ćete se zapitati zašto to radim i za MCP23008, jer je to zaista manja verzija iste stvari.

Razlozi su u tome što se njeni registri razlikuju i po imenu i po broju i htio bih pokazati kako se koristi gotov bibliotečki modul. Nisu svi vješti u korištenju NodeMCU lua, pa bih želio pokazati ovaj aspekt programiranja, kao i način korištenja MCP23008.

Biblioteka i programi dostupni su na github.com.

Tehnički list za MCP23008 dostupan je na lokaciji Microchip.

Korak 1: Ožičenje MCP23008

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

IC MCP23008 je jednostavnog izgleda, a izgradnja ploče mu je zaista laka. Krug možete postaviti i na ploči za kruh.

Pin veze na mojoj ploči

  • Pin 18 (VDD) na 3v3
  • Pin 9 (VSS) na GND
  • Pin 7 (NC) na GND (nije 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 pinove za čitanje na Gnd na priključku A (pinovi 10 - 17)

Napomena: ovdje su svi pinovi adresa spojeni na Gnd kako bi koristili MCP23008 na adresi 0x20 na sabirnici adresa I2C.

Ako ste koristili adresu 0x21 tada bi A0 bio spojen na 3.3V, a A1 i A2 spojeni na Gnd.

Slično, ako se koristi adresa 0x22, tada bi A1 morao biti spojen na 3.3V sa A0 i A2 spojenim na Gnd.

itd…

Korak 2: Konstruisanje odbora

Konstruisanje odbora
Konstruisanje odbora

Za izradu ploče koristio sam Vero strip ploču 25 mm x 64 mm (9 redova x 25 rupa). Malo je tijesan, ali budući da se većina pinova koji su vam potrebni nalazi s obje strane IC -a, prikladan je za ono što mora učiniti.

Koristio sam 8 pinova i 8 utičnica za priključak za port A tako da mogu priključiti svoje različite module, kao i druga ožičenja za različite projekte. Dodao sam dodatne Gnd i 3.3V pinove jer smatram da ih uvijek postoji pri povezivanju modula.

Korak 3: Korištenje bibliotečkog modula

Korištenje bibliotečkog modula
Korištenje bibliotečkog modula

Bibliotečki moduli obično sadrže izbor potprograma, funkcija i varijabli kojima može pristupiti drugi program. Sam program se ne pokreće, ali pozivajućem programu može pristupiti njegovim funkcijama. To znači da svoje podrutine možete imati u biblioteci i pozivati ih kad god vam zatrebaju, čineći mali program za pozivanje. To postaje vrijednije ako imate mnogo različitih programa koji koriste iste podrutine, ne morate uključiti podrutine u svaki program.

Napomena: program mcp23008.lua treba učitati u memoriju ESP8266 kao i drugi programi.

Ovdje sam uključio programe github.com, kao i jednostavan program (test.lua) koji pokazuje da biblioteka radi.

Postoje najmanje 2 načina za uključivanje biblioteke u vaš program.

require ("mcp23008")

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

ili

mcp = zahtijevaju ("mcp23008")

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

Oboje gore radi istu stvar, ali druga metoda vam omogućava da koristite vlastitu varijablu umjesto naziva programa.

Korak 4: Program za Kitt Car

Kitt program za automobile
Kitt program za automobile

Uključio sam program KittCar23008.lua i KittLib.lua koji koriste biblioteku da pokažu razlike u načinu pisanja programa na ovaj način. Oba programa rade istu stvar.

8 LED utikač dostupan je na Ebay -u kao komplet i poznat je kao 8 -kanalni LED DIY komplet za protok vode sa osvjetljenjem, 99p iz Kine. Morate ga sami zalemiti.

Napomena: Ako imate problema pri pokušaju pokretanja programa KittLib.lua, pokušajte na trenutak spojiti pin za resetiranje MCP23008 na Gnd. Znam da će ovo dati direktan kratki spoj (jer je spojen na 3.3V), a sve ostalo morate resetirati. Također radi spajanjem na Gnd preko otpornika od 10 ohma, što je vjerojatno bolji način.

Također sam otkrio da će KittLib.lua raditi bez problema nakon pokretanja test.lua (Ne pitaj me zašto?)

Pokušao sam na različite načine riješiti problem programa KittLib.lua, ali do sada nisam mogao pronaći nikakav logičan razlog zašto se ruši. Ima li neko ideju?

Nisam sam napisao sve ove programe, pa ne mogu reći zašto postoji problem, iako nakon pregleda kodiranja ne izgleda da je nešto očito pogrešno.

Korak 5: 7 Segmentna LED dioda

7 Segmentna LED
7 Segmentna LED

Kao i kod gore navedenog programa KittCar.lua, uključio sam samostalni i bibliotečki zavisni program za upravljanje 7 -segmentnim LED ekranom.

Opet, oba programa rade istu stvar, ali pokazuju kako se koristi bibliotečki modul koji ste napisali sami ili neko drugi.

Korak 6: Zaključak

Zaključak
Zaključak

Pokušao sam pokazati kako koristiti module koda u Lua okruženju, te ih primijeniti na određenu IC u isto vrijeme.

Iako sam imao problema s ovim, mislim da postoji dovoljno da se pokaže kako ti moduli rade, kao i da se demonstrira aplikacija iz stvarnog života.

Preporučuje se: