Sisällysluettelo:

NODEMCU LUA ESP8266 MCP23008 8 -bittisen portin laajentimen IC: 6 vaihetta
NODEMCU LUA ESP8266 MCP23008 8 -bittisen portin laajentimen IC: 6 vaihetta

Video: NODEMCU LUA ESP8266 MCP23008 8 -bittisen portin laajentimen IC: 6 vaihetta

Video: NODEMCU LUA ESP8266 MCP23008 8 -bittisen portin laajentimen IC: 6 vaihetta
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Marraskuu
Anonim
NODEMCU LUA ESP8266 MCP23008 8 -bittisen portin laajennuspiirin kanssa
NODEMCU LUA ESP8266 MCP23008 8 -bittisen portin laajennuspiirin kanssa

MCP23008 on 8-bittinen I/O-laajennin, jossa on sarjaliitäntä ja toimii 1,8-5,5 voltin välillä, joten se on ihanteellinen ESP8266-, Arduino-, Raspberry Pi-, PIC-siruille.

Jos olet nähnyt toisen Instructableni MCP23017 -laitteessa, saatat ihmetellä, miksi teen myös MCP23008: lle, koska se on todellakin pienempi versio samasta asiasta.

Syyt ovat, että sen rekisterit ovat erilaisia sekä nimensä että numeronsa osalta, ja haluaisin näyttää, miten valmiita kirjastokokonaisuuksia käytetään. Kaikki eivät ole taitavia käyttäessään NodeMCU lua, joten haluaisin näyttää tämän ohjelmoinnin näkökohdan sekä MCP23008: n käytön.

Kirjasto ja ohjelmat ovat saatavilla osoitteessa github.com.

MCP23008: n tietolomake on saatavana Microchipiltä.

Vaihe 1: MCP23008: n johdotus

MCP23008: n johdotus
MCP23008: n johdotus

MCP23008 IC on yksinkertainen ja levyn rakentaminen on suhteellisen helppoa. Voit myös asettaa piirin leipätaululle.

Kiinnitä liitännät taululleni

  • Nasta 18 (VDD) - 3v3
  • Nasta 9 (VSS) - GND
  • Nasta 7 (NC) - GND (ei välttämätön)
  • Nasta 1 (SCL) - ESP GPIO2
  • Nasta 2 (SDA) - ESP GPIO0
  • Nasta 5 (A0) GND: hen
  • Nasta 4 (A1) - GND
  • Nasta 3 (A2) GND: hen
  • Nasta 6 (PALAUTA) kohtaan 3v3

Liitä luettavat nastat Gnd -porttiin portissa A (nastat 10-17)

Huomautus: täällä kaikki osoitetapit on kytketty Gnd: ään käyttääkseen MCP23008: ta osoitteessa 0x20 I2C -osoiteväylässä.

Jos käytät osoitetta 0x21, A0 kytketään 3.3 V: iin ja A1 ja A2 yhdistetään Gnd.

Samoin, jos käytetään osoitetta 0x22, A1 olisi liitettävä 3.3V: iin A0: n ja A2: n ollessa kytketty Gnd: ään.

jne…

Vaihe 2: Taulun rakentaminen

Hallituksen rakentaminen
Hallituksen rakentaminen

Käytin 25 mm x 64 mm (9 riviä x 25 reikää) Vero -nauhalevyä levyn rakentamiseen. Se on hieman tiukka, mutta koska useimmat tarvitsemasi nastat ovat IC: n kummallakin puolella, se riittää sen tehtäviin.

Olen käyttänyt 8 nastaista ja 8 otsikkoliitäntää porttiin A, jotta voin liittää eri moduulit sekä muut johdot eri projekteihin. Olen lisännyt ylimääräisiä Gnd- ja 3.3V -nastoja, koska huomaan, että näistä on aina pulaa, kun liität moduuleja yhteen.

Vaihe 3: Kirjastomoduulin käyttäminen

Kirjastomoduulin käyttäminen
Kirjastomoduulin käyttäminen

Kirjastomoduulit sisältävät tavallisesti valikoiman alirutiinit, toiminnot ja muuttujat, joihin toinen ohjelma voi päästä käsiksi. Ohjelma itsessään ei käynnisty, mutta kutsuva ohjelma voi käyttää sen toimintoja. Se tarkoittaa, että voit järjestää alirutiinit kirjastossa ja soittaa niihin aina kun tarvitset niitä ja tehdä pienen soitto-ohjelman. Siitä tulee arvokkaampi, jos sinulla on monia erilaisia ohjelmia, jotka käyttävät samoja alirutiinia, sinun ei tarvitse sisällyttää alirutiinit jokaiseen ohjelmaan.

Huomaa: ohjelma mcp23008.lua on ladattava ESP8266 -muistiin muiden ohjelmien tavoin.

Olen lisännyt tänne github.com -ohjelmat sekä yksinkertaisen ohjelman (test.lua) osoittamaan, että kirjasto toimii.

Kirjasto voidaan sisällyttää ohjelmaan vähintään kahdella tavalla.

vaatia ("mcp23008")

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

tai

mcp = vaatia ("mcp23008")

mcp. alku (0x0, gpio2, gpio0, i2c. SOW)

Molemmat edellä mainituista tekevät saman, mutta toisen menetelmän avulla voit käyttää omaa muuttujaa ohjelman nimen sijasta.

Vaihe 4: Kitt -auto -ohjelma

Kitt Car -ohjelma
Kitt Car -ohjelma

Olen sisällyttänyt KittCar23008.lua -ohjelman ja KittLib.lua -ohjelman, joka käyttää kirjastoa näyttääkseen eroja ohjelmien kirjoittamisessa tällä tavalla. Molemmat ohjelmat tekevät saman asian.

8 LED -pistoke on saatavana Ebaysta sarjana, ja se tunnetaan 8 -kanavaisena virtaavan veden LED -DIY -sarjana, 99p Kiinasta. Sinun on juotettava se itse.

Huomautus: Jos sinulla on ongelmia KittLib.lua -ohjelman suorittamisessa, yritä kytkeä MCP23008 RESET -tappi hetkeksi Gnd: ään. Tiedän, että tämä aiheuttaa suoran oikosulun (koska se on kytketty 3.3 V: iin) ja sinun on nollattava kaikki muu. Se toimii myös yhdistämällä Gnd: ään 10 ohmin vastuksen kautta, luultavasti parempi tapa tehdä se.

Huomasin myös, että KittLib.lua toimisi ilman ongelmia test.lua (älä kysy miksi?)

Olen kokeillut erilaisia tapoja ratkaista KittLib.lua -ohjelmaongelma, mutta toistaiseksi en ole löytänyt mitään loogista syytä sille, miksi se kaatuu. Onko kenelläkään ideoita?

En ole kirjoittanut kaikkia näitä ohjelmia itse, joten en osaa sanoa, miksi ongelma ilmenee, vaikka koodauksen tarkastelun jälkeen ei näytä olevan mitään ilmeistä vikaa.

Vaihe 5: 7 Segmentti -LED

7 Segmentti -LED
7 Segmentti -LED

Kuten yllä olevassa KittCar.lua -ohjelmassa, olen sisällyttänyt erillisen ja kirjastosta riippuvan ohjelman 7 -segmenttisen LED -näytön ajamiseen.

Molemmat ohjelmat tekevät jälleen samaa, mutta osoittavat, kuinka voit käyttää joko itse tai jonkun muun kirjoittamaa kirjastoyksikköä.

Vaihe 6: Johtopäätös

Johtopäätös
Johtopäätös

Olen yrittänyt osoittaa, kuinka koodimoduuleja käytetään Lua -ympäristössä ja käytän sitä tietylle IC: lle samanaikaisesti.

Vaikka minulla on ollut ongelma tämän tekemisessä, mielestäni riittää, että näytän, kuinka nämä moduulit toimivat, ja esittelen tosielämän sovelluksen.

Suositeltava: