Talaan ng mga Nilalaman:

ESP8266 Paggamit ng GPIO0 / GPIO2 / GPIO15 Pins: 4 na Hakbang
ESP8266 Paggamit ng GPIO0 / GPIO2 / GPIO15 Pins: 4 na Hakbang

Video: ESP8266 Paggamit ng GPIO0 / GPIO2 / GPIO15 Pins: 4 na Hakbang

Video: ESP8266 Paggamit ng GPIO0 / GPIO2 / GPIO15 Pins: 4 na Hakbang
Video: P2 ESP01 4CH Relay Module (Subtittled) 2024, Nobyembre
Anonim
ESP8266 Paggamit ng GPIO0 / GPIO2 / GPIO15 Pins
ESP8266 Paggamit ng GPIO0 / GPIO2 / GPIO15 Pins

I-update ang Hulyo 1, 2018 - Nagdagdag ng tala sa muling pag-program kapag ang GPIO0 ay isang output

Ito ay isang napakaikling tala sa kung paano gamitin ang GPIO0 / GPIO2 at GPIO15 na mga pin sa module na ESP8266.

Update: Suriin din kung Paano gamitin ang mga pin ng ESP8266-01

Panimula

Ang ESP8266 ay isang maliit na gastos na pinagana ng wifi. Dumating ito sa iba't ibang mga uri ng module at maaaring mai-program sa iba't ibang mga paraan. Lahat ng mga module ay ginagawang naa-access ang GPIO0 at GPIO2. Karamihan sa mga module, maliban sa ESP8266-01, ay ginagawang ma-access din ang GPIO15. Ang mga kontrol ng GPIO kung paano nagsisimula ang module at tulad nito ay nangangailangan ng espesyal na paghawak kung gagamitin man sila. Ang GPIO6-GPIO11 ay nangangailangan din ng espesyal na paggamot tulad ng inilarawan sa ibaba.

Hakbang 1: Flash Pins GPIO - GPIO6 hanggang GPIO11

Karamihan sa mga board ng ESP8266 ay may isang flash chip na konektado sa ilan o lahat ng GPIO6-GPIO11. Karamihan sa mga programa ay gumagamit ng flash memory, pati na rin ang RAM, kaya maliban kung partikular mong tiyakin na tatakbo lamang ang iyong code mula sa RAM, hindi mo magagamit ang mga pin na ito para sa iba pang mga layunin.

Ang eksaktong bilang ng mga pin na ginamit sa saklaw na GPIO6 hanggang GPIO11 ay nakasalalay sa uri ng flash hardware na ginamit sa iyong module. Gumagamit ang Quad IO ng 4 na linya para sa data (kabuuang 6 na pin) hanggang sa 4 na beses ang bilis ng pamantayan. Gumagamit ang Dual IO ng 2 mga linya para sa data (kabuuang 4 na pin) Ang karaniwang gumagamit ng isang solong linya para sa data (kabuuan ng 3 mga pin).

Maliban kung alam mo nang eksakto kung ano ang kinakailangan ng iyong board, mas mabuti na huwag mo nalang pansinin ang GPIO6 sa GPIO11 at huwag silang tingnan mula sa iyong code.

Hakbang 2: GPIO0, GPIO2 at GPIO15 Mga Pin

GPIO0, GPIO2 at GPIO15 Mga Pin
GPIO0, GPIO2 at GPIO15 Mga Pin

Natutukoy ng mga pin na ito kung anong mode ang pagsisimula ng maliit na tilad.

Para sa normal na pagpapatupad ng programa ang GPIO0 at GPIO2 ay kailangang hilahin hanggang sa Vcc (3.3V) at ang GPIO15 ay kailangang hilahin sa GND, bawat isa ay may isang risistor sa saklaw na 2K hanggang 10K risistor. Ang isang resistor ng 2K ay nagbibigay ng mas mahusay na kaligtasan sa ingay. Gumagamit ang OLIMEX ng 2 resistors na SparkFun ay gumagamit ng 10K resistors. Gumagamit ako ng 3K3 resistors.

Ang mga setting ng mga input na ito ay nasuri lamang sa panahon ng power up (o i-reset) ng maliit na tilad. Pagkatapos nito ay magagamit ang mga pin para sa pangkalahatang paggamit, ngunit tulad ng tinalakay sa ibaba ang kanilang paggamit ay pinaghihigpitan ng mga panlabas na pull up / down resistors.

Hakbang 3: Paggamit ng GPIO0, GPIO2 at GPIO15 Bilang Mga Paglabas

Paggamit ng GPIO0, GPIO2 at GPIO15 Bilang Mga Paglabas
Paggamit ng GPIO0, GPIO2 at GPIO15 Bilang Mga Paglabas

Tulad ng nabanggit sa itaas, ang mga pin na ito ay magkakaroon ng isang risistor na konektado sa alinman sa VCC (GPIO0 at GPIO2) o GND para sa GPIO15. Tinutukoy nito kung paano dapat kumonekta ang anumang panlabas na aparato, tulad ng isang relay o led + resistor. Para sa GPIO0 at GPIO2, ang isang panlabas na relay ay dapat na konektado sa pagitan ng VCC at ng pin upang hindi ito makagambala sa pagkilos ng pull up risistor. Sa kabaligtaran isang panlabas na relay na konektado sa GPIO15 ay dapat na konektado sa pagitan ng GND at ng pin upang hindi makagambala sa pagkilos ng pull down resistor.

Upang maisaaktibo ang panlabas na aparato, ang GPIO0 o GPIO2 ay dapat na hinimok na mababa

Ipinapakita ng eskematiko sa itaas kung paano gamitin ang GPIO0 at GPIO2 at GPIO15 bilang mga output. Ang circuit na ito ay may kasamang kinakailangang pullup / pulldown resistors din. Tandaan na ang module ng 5V relay na hinimok ng GPIO0 ay opto-integrated at mayroong isang hiwalay na karaniwang koneksyon para sa pag-input. Mahalaga na ang boltahe ng 5V VCCA ay hindi inilalapat sa pin ng ESP8266.

Paano magprogram ulit kapag gumagamit ng GPIO0 bilang isang output

Tandaan: Ang GPIO0 ay kailangang saligan upang makapasok sa mode ng pagprograma. Kung sketch mo ay hinihimok ito mataas, saligan maaari itong makapinsala sa iyo ng ESP8266 chip. Ang ligtas na paraan upang muling maprograma ang ESP8266 kapag hinihimok ng iyong code ang output ng GPIO0 ay ang: - a) I-power down ang board b) maikling GPIO0 upang gnd c) paganahin ang board na pumapasok sa program mode dahil sa maikling sa GPIO0 d) alisin ang maikli mula sa GPIO0 upang hindi mo maikli ang output kapag nagpapatakbo ang programa e) muling pagprogram ng board f) pag-ikot ng kuryente sa board kung kinakailangan.

Hakbang 4: Paggamit ng GPIO0, GPIO2 at GPIO15 Bilang Mga Pag-input

Paggamit ng GPIO0, GPIO2 at GPIO15 Bilang Mga Pag-input
Paggamit ng GPIO0, GPIO2 at GPIO15 Bilang Mga Pag-input

Ang paggamit ng mga pin na ito bilang mga pag-input ay medyo nakakalito. Tulad ng nabanggit sa itaas sa lakas pataas, at sa panahon ng pag-reset, ang mga pin na ito ay dapat na hilahin pataas o pababa tulad ng kinakailangan upang simulan ang module ng ESP8266 sa normal na mode na tumatakbo. Nangangahulugan ito, sa pangkalahatan, hindi mo maaaring maglakip lamang ng isang panlabas na paglipat sa mga pin na ito sapagkat sa lakas up ay karaniwang hindi mo ginagarantiyahan ang switch ay hindi mahahatak ang input sa lupa at sa gayon pigilan ang module na magsimula nang tama.

Ang trick ay upang hindi ikonekta ang panlabas na switch nang direkta mula sa GPIO0 o GPIO2 sa GND ngunit upang ikonekta ito sa halip sa isa pang GPIO pin na hinihimok sa lupa (bilang isang output) pagkatapos lamang magsimula ang ESP8266. Tandaan, kapag ginamit bilang mga output, ang mga GPIO pin ay nagbibigay ng isang napakababang koneksyon sa paglaban sa alinman sa VCC o GND depende sa kung hinihimok sila ng TAAS o Mababa.

Dito lamang GPIO0 at GPIO2 ang isasaalang-alang. Gamit ang pamamaraang ito maaari kang makakuha ng isang (1) karagdagan na pag-input gamit ang dalawang (2) GPIO na ito.

Ang isang katulad na pamamaraan ay maaaring magamit para sa GPIO15 sa pamamagitan ng paggamit ng isa pang GPIO pin upang ikonekta ang switch nito sa + VCC, ngunit hindi ito nakakakuha ng dagdag na input, maaari mo ring gamitin ang iba pang GPIO pin nang direkta bilang isang input.

Ang circuit sa itaas ay gumagamit ng module na ESP8266-01 bilang isang halimbawa. Nang hindi ginagamit ang trick na ito, ang ESP8266-01 ay walang anumang mga libreng pin upang magamit bilang isang input kung gumagamit ka na ng mga pin na RX / TX para sa isang koneksyon sa UART.

Dahil ang pamamaraan ng pag-setup () ng sketch ay tatakbo lamang pagkatapos magsimula ang module ng ESP8266, ligtas na gawing LOW ang output ng GPIO0 at kaya magbigay ng isang lupa para sa S1 na konektado sa GPIO2. Maaari mo nang magamit ang digitalRead (2) sa ibang lugar sa iyong sketch upang mabasa ang setting ng switch.

Konklusyon

Ipinapakita ng maikling tala kung paano gamitin ang GPIO0, GPIO2 at GPIO15 bilang mga output at kung paano gamitin ang makakuha ng isang labis na input gamit ang GPIO0 at GPIO2 nang magkasama.

Inirerekumendang: