Sisukord:

NODEMCU LUA ESP8266 MCP23008 8 -bitise pordi laiendi IC: 6 sammu
NODEMCU LUA ESP8266 MCP23008 8 -bitise pordi laiendi IC: 6 sammu

Video: NODEMCU LUA ESP8266 MCP23008 8 -bitise pordi laiendi IC: 6 sammu

Video: NODEMCU LUA ESP8266 MCP23008 8 -bitise pordi laiendi IC: 6 sammu
Video: App Inventor 2 - ESP8266 GPIO Control with Nodemcu LUA 2024, November
Anonim
NODEMCU LUA ESP8266 MCP23008 8 -bitise portilaiendiga IC
NODEMCU LUA ESP8266 MCP23008 8 -bitise portilaiendiga IC

MCP23008 on jadaliidesega 8-bitine sisend- ja väljundlaiend, mis töötab vahemikus 1,8 kuni 5,5 volti, seega sobib ideaalselt ESP8266, Arduino, Raspberry Pi, PIC kiipide ja muude seadmete jaoks.

Kui olete näinud minu teist juhendit MCP23017 kohta, võite küsida, miks ma teen seda ka MCP23008 jaoks, kuna see on tõesti sama asja väiksem versioon.

Põhjused on selles, et selle registrid on nii nime kui ka numbri poolest erinevad ning tahaksin näidata, kuidas kasutada valmis raamatukogu moodulit. Kõik ei ole NodeMCU lua kasutamisel vilunud, seega tahaksin näidata seda programmeerimise aspekti ja ka seda, kuidas MCP23008 kasutada.

Raamatukogu ja programmid on saadaval aadressil github.com.

MCP23008 andmeleht on saadaval Microchipilt.

Samm: ühendage MCP23008

MCP23008 juhtmestik
MCP23008 juhtmestik

MCP23008 IC on lihtsa paigutusega ja tahvli ehitamine on selle jaoks suhteliselt lihtne. Vooluahela saate seadistada ka leivalaual.

Pin Ühendused minu tahvlil

  • Pin 18 (VDD) kuni 3v3
  • Pin 9 (VSS) GND -le
  • Pin 7 (NC) kuni GND (pole vajalik)
  • Pin 1 (SCL) ESP GPIO2 -le
  • Pin 2 (SDA) ESP GPIO0 külge
  • Pin 5 (A0) GND -le
  • Pin 4 (A1) GND -le
  • Pin 3 (A2) GND külge
  • Pin 6 (RESET) kuni 3v3

Ühendage loetavad tihvtid porti A Gnd -ga (tihvtid 10–17)

Märkus: siin on kõik aadressinõelad ühendatud Gndiga, et kasutada MCP23008 aadressil 0x20 I2C aadressibussil.

Kui kasutaksite aadressi 0x21, oleks A0 ühendatud 3.3V ja A1 ja A2 ühendatud Gnd -ga.

Sarnaselt, kui kasutada aadressi 0x22, peaks A1 olema ühendatud 3.3V -ga, kusjuures A0 ja A2 on ühendatud Gnd -ga.

jne…

2. samm: juhatuse loomine

Juhatuse ehitamine
Juhatuse ehitamine

Tahvli ehitamiseks kasutasin 25 mm x 64 mm (9 rida x 25 auku) Vero ribalauda. See on natuke kitsas, kuid kuna enamik vajalikke tihvte asub IC mõlemal küljel, on see piisav selle jaoks, mida see peab tegema.

Olen kasutanud porti A jaoks 8 tihvti ja 8 päisepesa, et saaksin ühendada oma erinevaid mooduleid ja muid juhtmeid erinevate projektide jaoks. Olen lisanud täiendavaid Gnd ja 3.3V kontakte, kuna leian, et moodulite ühendamisel on neist alati puudus.

Samm: raamatukogumooduli kasutamine

Raamatukogumooduli kasutamine
Raamatukogumooduli kasutamine

Raamatukogumoodulid sisaldavad tavaliselt valikut alamrutiine, funktsioone ja muutujaid, millele pääseb juurde teine programm. Programm ise ei tööta, kuid selle funktsioonidele pääseb juurde helistamisprogrammiga. See tähendab, et saate oma alamrutiinid raamatukogus esitada ja neile helistada, kui neid vajate, tehes väikese helistamisprogrammi. See muutub väärtuslikumaks, kui teil on palju erinevaid programme, mis kasutavad samu alamrutiine, ei pea te alamprogramme igasse programmi kaasama.

Märkus: programm mcp23008.lua tuleb laadida ESP8266 mällu nagu teisedki programmid.

Olen lisanud siia nii github.com programmid kui ka lihtsa programmi (test.lua), et näidata, et raamatukogu töötab.

Raamatukogu kaasamiseks oma programmi on vähemalt kaks võimalust.

nõuda ("mcp23008")

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

või

mcp = nõuda ("mcp23008")

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

Mõlemad ülaltoodud toimivad samamoodi, kuid teine meetod võimaldab programmi nime asemel kasutada oma muutujat.

4. samm: Kitt Car programm

Kitt Car programm
Kitt Car programm

Olen lisanud programmi KittCar23008.lua ja KittLib.lua, mis kasutab raamatukogu, et näidata erinevusi programmide sel viisil kirjutamisel. Mõlemad programmid teevad sama asja.

8 LED -pistikupesa on saadaval Ebayst komplektina ja on tuntud kui 8 -kanaliline voolava vee LED -i DIY komplekt, 99p Hiinast. Peate ise jootma.

Märkus. Kui teil on KittLib.lua programmi käivitamisel probleeme, proovige hetkega ühendada MCP23008 RESET pin Gnd -ga. Ma tean, et see annab otsese lühise (kuna see on ühendatud 3.3 V -ga) ja peate kõik muu lähtestama. See töötab ka ühendades Gndiga läbi 10 oomi takisti, ilmselt parem viis seda teha.

Samuti leidsin, et KittLib.lua töötab pärast test.lua käivitamist probleemideta (ärge küsige, miks?)

Olen proovinud KittLib.lua programmi probleemi lahendamiseks erinevaid viise, kuid siiani pole leidnud ühtegi loogilist põhjust, miks see kokku jookseb. Kas kellelgi on ideid?

Ma ei ole kõiki neid programme ise kirjutanud, seega ei oska ma öelda, miks probleem on, kuigi pärast kodeeringu vaatamist ei tundu olevat midagi ilmselgelt valesti.

5. samm: 7 segment LED

7 Segmendi LED
7 Segmendi LED

Nagu ülaltoodud programmi KittCar.lua puhul, olen lisanud 7 -segmendilise LED -ekraani juhtimiseks eraldiseisva ja raamatukogust sõltuva programmi.

Jällegi teevad mõlemad programmid sama asja, kuid demonstreerivad, kuidas kasutada enda või kellegi teise kirjutatud raamatukogu moodulit.

6. samm: järeldus

Järeldus
Järeldus

Olen proovinud näidata, kuidas kasutada koodimooduleid Lua keskkonnas, ja rakendada seda samal ajal konkreetsele IC -le.

Kuigi mul on sellega probleeme olnud, arvan, et nende moodulite toimimise näitamiseks ja reaalse rakenduse demonstreerimiseks on piisavalt.

Soovitan: