Turinys:

NODEMCU LUA ESP8266 su MCP23008 8 bitų prievado išplėtimo IC: 6 žingsniai
NODEMCU LUA ESP8266 su MCP23008 8 bitų prievado išplėtimo IC: 6 žingsniai

Video: NODEMCU LUA ESP8266 su MCP23008 8 bitų prievado išplėtimo IC: 6 žingsniai

Video: NODEMCU LUA ESP8266 su MCP23008 8 bitų prievado išplėtimo IC: 6 žingsniai
Video: How to get 5V from 18650 Lithium Battery Powering Arduino ESP32 ESP8266 or charge your phone 2024, Lapkritis
Anonim
NODEMCU LUA ESP8266 su MCP23008 8 bitų prievado išplėtimo IC
NODEMCU LUA ESP8266 su MCP23008 8 bitų prievado išplėtimo IC

„MCP23008“yra 8 bitų įvesties/išvesties plėtinys su nuoseklia sąsaja ir veikia nuo 1,8 iki 5,5 voltų, todėl idealiai tinka ESP8266, „Arduino“, „Raspberry Pi“, PIC mikroschemoms ir kt.

Jei matėte mano kitą „Instructable“apie MCP23017, jums gali kilti klausimas, kodėl aš taip pat darau tai MCP23008, nes tai tikrai mažesnė to paties dalyko versija.

Priežastys yra tai, kad jos registrai skiriasi tiek pavadinimu, tiek numeriu, ir norėčiau parodyti, kaip naudoti paruoštą bibliotekos modulį. Ne visi yra įgudę naudoti „NodeMCU lua“, todėl norėčiau parodyti šį programavimo aspektą ir tai, kaip naudoti MCP23008.

Biblioteką ir programas rasite github.com.

MCP23008 duomenų lapą galite rasti „Microchip“.

1 veiksmas: prijunkite MCP23008

MCP23008 laidų prijungimas
MCP23008 laidų prijungimas

MCP23008 IC yra paprasto išdėstymo, o plokštės kūrimas yra tikrai lengvas. Taip pat galite nustatyti grandinę ant duonos lentos.

„Pin Connections“mano lentoje

  • Smeigtukas 18 (VDD) iki 3v3
  • 9 kaištis (VSS) prie GND
  • 7 kaištis (NC) į GND (nebūtina)
  • PIN 1 (SCL) prie ESP GPIO2
  • 2 kontaktas (SDA) prie ESP GPIO0
  • 5 kaištis (A0) prie GND
  • 4 kaištis (A1) prie GND
  • 3 kaištis (A2) prie GND
  • 6 kaištis (RESET) į 3v3

Prijunkite skaitomus kaiščius prie „Gnd“prievado A (10–17 kaiščiai)

Pastaba: čia visi adresų kaiščiai prijungti prie Gnd, kad būtų galima naudoti MCP23008 adresu 0x20 I2C adresų magistralėje.

Jei naudojatės adresu 0x21, tada A0 bus prijungtas prie 3.3V, o A1 ir A2 - prie Gnd.

Panašiai, jei naudojant adresą 0x22, A1 turėtų būti prijungtas prie 3.3V, o A0 ir A2 prijungti prie Gnd.

ir tt…

2 žingsnis: valdybos sudarymas

Valdybos konstravimas
Valdybos konstravimas

Lentos statybai naudojau 25 mm x 64 mm (9 eilutės x 25 skylės) „Vero“juostinę plokštę. Jis yra šiek tiek įtemptas, tačiau kadangi dauguma jums reikalingų kaiščių yra abiejose IC pusėse, to pakanka.

Aš naudoju 8 kaiščius ir 8 antgalių lizdus A prievadui, kad galėčiau prijungti įvairius modulius ir kitus laidus įvairiems projektams. Pridėjau papildomų Gnd ir 3.3V kaiščių, nes manau, kad jungiant modulius jų visada trūksta.

3 žingsnis: bibliotekos modulio naudojimas

Bibliotekos modulio naudojimas
Bibliotekos modulio naudojimas

Bibliotekos moduliuose paprastai yra pasirinkta papročių, funkcijų ir kintamųjų, kuriuos gali pasiekti kita programa. Pati programa neveikia, tačiau jos funkcijas gali pasiekti skambinimo programa. Tai reiškia, kad galite turėti savo papildomas procedūras bibliotekoje ir skambinti jiems, kai tik reikia, sukurdami nedidelę skambinimo programą. Tai tampa vertingesnė, jei turite daug skirtingų programų, naudojančių tas pačias antrines procedūras, nebūtina į kiekvieną programą įtraukti paprogramių.

Pastaba: programą „mcp23008.lua“reikia įkelti į ESP8266 atmintį, kaip ir kitas programas.

Čia įtraukiau „github.com“programas ir paprastą programą (test.lua), parodančią, kad biblioteka veikia.

Yra bent du būdai įtraukti biblioteką į savo programą.

reikalauti ("mcp23008")

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

arba

mcp = reikalauti ("mcp23008")

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

Abu aukščiau išvardyti veiksmai daro tą patį, tačiau antrasis metodas leidžia vietoj programos pavadinimo naudoti savo kintamąjį.

4 žingsnis: „Kitt Car“programa

„Kitt Car“programa
„Kitt Car“programa

Įtraukiau „KittCar23008.lua“programą ir „KittLib.lua“, kuri naudoja biblioteką, kad parodytų, kaip tokiu būdu rašyti programas. Abi programos daro tą patį.

„8 LED“kištuką galima įsigyti iš „Ebay“kaip rinkinį ir jis yra žinomas kaip 8 kanalų tekančio vandens šviesos diodų rinkinys „pasidaryk pats“, 99p iš Kinijos. Lituoti tenka patiems.

Pastaba: Jei kyla problemų bandant paleisti programą „KittLib.lua“, pabandykite trumpam prijungti MCP23008 RESET kaištį prie „Gnd“. Aš žinau, kad tai sukels tiesioginį trumpąjį jungimą (nes jis yra prijungtas prie 3.3 V), o jūs turite iš naujo nustatyti visa kita. Tai taip pat veikia prisijungus prie „Gnd“per 10 omų rezistorių, tikriausiai geresnis būdas tai padaryti.

Aš taip pat sužinojau, kad „KittLib.lua“paleidžiama be problemų paleidus test.lua (neklauskite manęs, kodėl?)

Bandžiau įvairiais būdais išspręsti „KittLib.lua“programos problemą, tačiau iki šiol nerandu jokios logiškos priežasties, kodėl ji sugenda. Ar kas nors turi idėjų?

Aš pats nerašiau visų šių programų, todėl negaliu pasakyti, kodėl yra problema, nors, pažiūrėjus į kodavimą, neatrodo, kad būtų kažkas akivaizdžiai negerai.

5 žingsnis: 7 segmento šviesos diodas

7 segmento šviesos diodas
7 segmento šviesos diodas

Kaip ir aukščiau esančioje „KittCar.lua“programoje, aš įtraukiau atskirą ir nuo bibliotekos priklausančią programą, skirtą 7 segmentų LED ekranui valdyti.

Vėlgi, abi programos daro tą patį, tačiau parodo, kaip naudotis bibliotekos moduliu, kurį parašėte jūs arba kažkas kitas.

6 žingsnis: Išvada

Išvada
Išvada

Aš bandžiau parodyti, kaip naudoti kodo modulius „Lua“aplinkoje ir tuo pačiu metu pritaikyti jį konkrečiam IC.

Nors ir turėjau problemų tai darydamas, manau, kad pakanka parodyti, kaip šie moduliai veikia, ir parodyti realaus gyvenimo programą.

Rekomenduojamas: