Sadržaj:

NODEMCU LUA ESP8266 s MCP23008 8 -bitnim ekspanderom porta IC: 6 koraka
NODEMCU LUA ESP8266 s MCP23008 8 -bitnim ekspanderom porta IC: 6 koraka

Video: NODEMCU LUA ESP8266 s MCP23008 8 -bitnim ekspanderom porta IC: 6 koraka

Video: NODEMCU LUA ESP8266 s MCP23008 8 -bitnim ekspanderom porta IC: 6 koraka
Video: ESP Basic Series - Ep.2 - PCF8574 Driver - Mutually exclussive 8x Switch 2024, Studeni
Anonim
NODEMCU LUA ESP8266 S MCP23008 8 -bitnim proširivačem IC IC
NODEMCU LUA ESP8266 S MCP23008 8 -bitnim proširivačem IC IC

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 doista manja verzija iste stvari.

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

Knjižnica i programi dostupni su na github.com.

Tehnički list za MCP23008 dostupan je na Microchipu.

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

Spojite 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 s A0 i A2 spojenim na Gnd.

itd…

Korak 2: Izrada ploče

Izgradnja odbora
Izgradnja odbora

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

Koristio sam 8 pinova i 8 utičnica za zaglavlje za priključak 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 nedostaje pri povezivanju modula.

Korak 3: Korištenje bibliotečkog modula

Korištenje knjižničnog modula
Korištenje knjižničnog modula

Knjižnički moduli obično sadrže izbor potprograma, funkcija i varijabli kojima može pristupiti drugi program. Sam program ne radi, 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 zatreba, č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 potrebno je 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 knjižnica radi.

Postoje najmanje 2 načina za uključivanje knjižnice u vaš program.

require ("mcp23008")

mcp23008.početi (0x0, gpio2, gpio0, i2c. SLOW)

ili

mcp = zahtijevaju ("mcp23008")

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

Oboje gore radi istu stvar, ali druga metoda omogućuje vam korištenje vlastite varijable umjesto naziva programa.

Korak 4: Program Kitt Car

Kitt program za automobile
Kitt program za automobile

Uključio sam program KittCar23008.lua i KittLib.lua koji koristi knjižnicu za prikaz razlika u načinu pisanja programa na ovaj način. Oba programa rade istu stvar.

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

Napomena: Ako imate problema s pokušajem pokretanja programa KittLib.lua, pokušajte nakratko spojiti pin za resetiranje MCP23008 na Gnd. Znam da će ovo dati izravan kratki spoj (budući da je spojen na 3,3 V), a sve ostalo morate resetirati. Također radi spajanjem na Gnd kroz otpornik 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 zasad ne mogu pronaći nikakav logičan razlog zašto se ruši. Ima li tko kakvu ideju?

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

Korak 5: 7 Segmentna LED dioda

7 LED dioda
7 LED dioda

Kao i kod gore navedenog programa KittCar.lua, uključio sam samostalni program i program ovisan o knjižnici za upravljanje 7 -segmentnim LED zaslonom.

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

Korak 6: Zaključak

Zaključak
Zaključak

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

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

Preporučeni: