Talaan ng mga Nilalaman:

NODEMCU LUA ESP8266 Sa MCP23008 8 Bit Port Expander IC: 6 Hakbang
NODEMCU LUA ESP8266 Sa MCP23008 8 Bit Port Expander IC: 6 Hakbang

Video: NODEMCU LUA ESP8266 Sa MCP23008 8 Bit Port Expander IC: 6 Hakbang

Video: NODEMCU LUA ESP8266 Sa MCP23008 8 Bit Port Expander IC: 6 Hakbang
Video: NodeMCU V3 ESP8266 - обзор, подключение и прошивка в Arduino IDE 2024, Nobyembre
Anonim
NODEMCU LUA ESP8266 Sa MCP23008 8 Bit Port Expander IC
NODEMCU LUA ESP8266 Sa MCP23008 8 Bit Port Expander IC

Ang MCP23008 ay isang 8-Bit I / O Expander na may Serial Interface at nagpapatakbo sa pagitan ng 1.8 at 5.5 volts, sa gayon ay mainam para sa ESP8266, Arduino, Raspberry Pi, PIC Chips at marami pa.

Kung nakita mo ang aking iba pang Instructable sa MCP23017, maaaring nagtataka ka kung bakit gumagawa din ako ng isa para sa MCP23008, dahil ito ay talagang isang mas maliit na bersyon ng parehong bagay.

Ang mga dahilan ay ang mga rehistro nito ay magkakaiba pareho sa pangalan at numero at nais kong ipakita kung paano gumamit ng isang handa nang gawing module ng library. Hindi lahat ay sanay sa paggamit ng NodeMCU lua, kaya nais kong ipakita ang aspektong ito ng pagprograma pati na rin kung paano gamitin ang MCP23008.

Magagamit ang library at mga programa sa github.com.

Ang datasheet para sa MCP23008 ay magagamit mula sa Microchip.

Hakbang 1: Pag-kable ng MCP23008

Kable ng MCP23008
Kable ng MCP23008

Ang MCP23008 IC ay isang simpleng layout at pagbuo ng isang board ay realtively madali para dito. Maaari mo ring i-set up ang circuit sa isang board ng tinapay.

I-pin ang Mga Koneksyon sa aking board

  • I-pin ang 18 (VDD) sa 3v3
  • I-pin ang 9 (VSS) sa GND
  • I-pin ang 7 (NC) sa GND (Hindi kinakailangan)
  • I-pin ang 1 (SCL) sa ESP GPIO2
  • I-pin ang 2 (SDA) sa ESP GPIO0
  • I-pin ang 5 (A0) sa GND
  • I-pin ang 4 (A1) sa GND
  • I-pin ang 3 (A2) sa GND
  • Pin 6 (RESET) hanggang 3v3

Ikonekta ang mga pin upang mabasa sa Gnd sa Port A (mga pin 10 - 17)

Tandaan: narito ang lahat ng mga address pin ay konektado sa Gnd upang magamit ang MCP23008 sa address na 0x20 sa I2C address bus.

Kung gumagamit ka ng address na 0x21 kung gayon ang A0 ay konektado sa 3.3V, na may A1 & A2 na konektado sa Gnd.

Katulad nito kung ang paggamit ng address na 0x22 kung gayon ang A1 ay dapat na konektado sa 3.3V na may A0 at A2 na konektado sa Gnd.

atbp…

Hakbang 2: Pagbubuo ng isang Lupon

Bumubuo ng isang Lupon
Bumubuo ng isang Lupon

Gumamit ako ng isang 25 mm x 64 mm (9 mga hilera x 25 butas) Vero strip board upang maitayo ang aking board. Ito ay medyo masikip, ngunit tulad ng karamihan sa mga pin na kailangan mo ay nasa magkabilang panig ng IC, sapat ito para sa kung ano ang dapat gawin.

Gumamit ako ng 8 mga pin at 8 na mga socket ng header para sa port A upang ma-plug ko ang aking iba't ibang mga module pati na rin ang iba pang mga kable para sa iba't ibang mga proyekto. Nagdagdag ako ng labis na Gnd at 3.3V na mga pin tulad ng nakita kong palaging may kakulangan sa mga ito kapag magkokonekta sa mga module.

Hakbang 3: Paggamit ng isang Modyul sa Library

Paggamit ng isang Modyul sa Library
Paggamit ng isang Modyul sa Library

Karaniwang naglalaman ang mga module ng library ng isang pagpipilian ng mga sub-routine, pag-andar at variable na maaaring ma-access ng ibang programa. Ang programa mismo ay hindi tumatakbo, ngunit ang mga pag-andar nito ay maaaring ma-access ng programa sa pagtawag. Nangangahulugan ito na maaari mong magkaroon ng iyong mga sub-gawain sa loob ng silid-aklatan at tawagan sila kahit kailan mo kailangan sila, na gumagawa ng isang maliit na programa sa pagtawag. Nagiging mas mahalaga kung mayroon kang maraming iba't ibang mga programa na gumagamit ng parehong mga sub-routine, hindi mo kailangang isama ang mga sub-routine sa bawat programa.

Tandaan: ang mcp23008.lua na programa ay kailangang mai-load sa memorya ng ESP8266 tulad ng iba pang mga programa.

Isinama ko ang mga programang github.com dito pati na rin ang isang simpleng programa (test.lua) upang maipakita na gumagana ang library.

Mayroong hindi bababa sa 2 mga paraan upang maisama ang library sa iyong programa.

nangangailangan ("mcp23008")

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

o

mcp = nangangailangan ("mcp23008")

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

Pareho sa itaas ang gumagawa ng parehong bagay, ngunit ang pangalawang pamamaraan ay nagbibigay-daan sa iyo upang magamit ang iyong sariling variable sa halip na ang pangalan ng programa.

Hakbang 4: Kitt Car Program

Kitt Program ng Kotse
Kitt Program ng Kotse

Isinama ko ang KittCar23008.lua program at KittLib.lua na gumagamit ng silid-aklatan upang maipakita ang mga pagkakaiba sa kung paano sumulat ng mga programa sa ganitong paraan. Ang parehong mga programa ay gumagawa ng parehong bagay.

Ang 8 LED plug in ay magagamit mula sa Ebay bilang isang kit at kilala bilang isang 8 Channel Flow Water Light LED DIY Kit, 99p mula sa China. Kailangan mo itong maghinang mismo.

Tandaan: Kung mayroon kang problema sa pagsubok na patakbuhin ang KittLib.lua program, subukang ikonekta ang MCP23008 RESET pin sa Gnd pansamantala. Alam kong magbibigay ito ng isang direktang maikling circuit (dahil ito ay konektado sa 3.3V) at kailangan mong i-reset ang iba pa. Gumagawa din ito sa pamamagitan ng pagkonekta sa Gnd sa pamamagitan ng isang 10 ohm risistor, marahil isang mas mahusay na paraan upang gawin ito.

Nalaman ko rin na ang KittLib.lua ay tatakbo nang walang mga problema pagkatapos tumakbo sa pagsubok.lua (Huwag tanungin mo ako kung bakit?)

Sinubukan ko ang iba't ibang mga paraan upang malutas ang problema sa programa ng KittLib.lua, ngunit sa ngayon ay hindi makahanap ng anumang lohikal na dahilan kung bakit ito nag-crash. Mayroon bang mga ideya?

Hindi ko pa nasusulat ang lahat ng mga program na ito sa aking sarili, kaya hindi ko masabi kung bakit may problema, bagaman pagkatapos tingnan ang pag-coding, tila walang anumang malinaw na mali.

Hakbang 5: 7 Segment LED

7 Segment LED
7 Segment LED

Tulad ng programa ng KittCar.lua sa itaas, nagsama ako ng isang nakapag-iisang at isang nakasalalay na programa sa library upang maghimok ng isang 7 segment na LED display.

Muli, ang parehong mga programa ay gumagawa ng parehong bagay, ngunit ipakita kung paano gumamit ng isang module ng library alinman sa nakasulat sa pamamagitan ng iyong sarili o ng iba.

Hakbang 6: Konklusyon

Konklusyon
Konklusyon

Sinubukan kong ipakita kung paano gamitin ang mga module ng code sa loob ng kapaligiran ng Lua, at ilapat ito sa isang tukoy na IC nang sabay.

Kahit na nagkaroon ako ng problema sa paggawa nito, sa palagay ko may sapat na upang maipakita kung paano gumagana ang mga modyul na ito pati na rin ang pagpapakita ng isang tunay na aplikasyon sa buhay.

Inirerekumendang: