Turinys:

ESP8266 GPIO0/GPIO2/GPIO15 kaiščių naudojimas: 4 žingsniai
ESP8266 GPIO0/GPIO2/GPIO15 kaiščių naudojimas: 4 žingsniai

Video: ESP8266 GPIO0/GPIO2/GPIO15 kaiščių naudojimas: 4 žingsniai

Video: ESP8266 GPIO0/GPIO2/GPIO15 kaiščių naudojimas: 4 žingsniai
Video: Electronics: ESP8266, GPIO0 or GPIO2 as input 2024, Lapkritis
Anonim
ESP8266 Naudojant GPIO0/GPIO2/GPIO15 kaiščius
ESP8266 Naudojant GPIO0/GPIO2/GPIO15 kaiščius

2018 m. Liepos 1 d. Atnaujinimas-pridėta pastaba apie perprogramavimą, kai GPIO0 yra išvestis

Tai labai trumpa pastaba, kaip naudoti GPIO0 / GPIO2 ir GPIO15 kaiščius ESP8266 modulyje.

Atnaujinimas: taip pat patikrinkite, kaip naudoti ESP8266-01 kaiščius

Įvadas

ESP8266 yra nebrangus „Wi -Fi“lustas. Jis pateikiamas įvairių tipų moduliais ir gali būti užprogramuotas įvairiais būdais. Visi moduliai leidžia pasiekti GPIO0 ir GPIO2. Dauguma modulių, išskyrus ESP8266-01, taip pat leidžia pasiekti GPIO15. Šie GPIO valdo modulio paleidimą ir, jei reikia, juos reikia naudoti specialiai. GPIO6-GPIO11 taip pat reikia specialaus gydymo, kaip aprašyta toliau.

1 veiksmas: „Flash GPIO Pins“- nuo GPIO6 iki GPIO11

Daugelyje ESP8266 plokščių yra „flash“lustas, prijungtas prie kai kurių arba visų GPIO6-GPIO11. Dauguma programų naudoja „flash“atmintį, taip pat RAM, taigi, jei konkrečiai neįsitikinsite, kad jūsų kodas veikia tik iš RAM, negalėsite naudoti šių kaiščių kitiems tikslams.

Tikslus kaiščių, naudojamų diapazone nuo GPIO6 iki GPIO11, skaičius priklauso nuo jūsų modulyje naudojamos „flash“aparatinės įrangos tipo. „Quad IO“naudoja 4 eilutes duomenims (iš viso 6 kaiščiai) iki 4 kartų didesnį nei standartinis greitis. Dvigubas IO duomenims naudoja 2 eilutes (iš viso 4 smeigtukai) Standartas duomenims naudoja vieną eilutę (iš viso 3 smeigtukai).

Jei tiksliai nežinote, ko reikalauja jūsų lenta, geriausia tiesiog nekreipti dėmesio į GPIO6 į GPIO11 ir nenurodyti jų iš savo kodo.

2 veiksmas: GPIO0, GPIO2 ir GPIO15 kaiščiai

GPIO0, GPIO2 ir GPIO15 kaiščiai
GPIO0, GPIO2 ir GPIO15 kaiščiai

Šie kaiščiai nustato, kokiu režimu paleidžiamas lustas.

Normaliam programos vykdymui GPIO0 ir GPIO2 reikia ištraukti iki Vcc (3.3V), o GPIO15 - iki GND, kurių kiekvienas turi rezistorių nuo 2K iki 10K rezistoriaus. 2K rezistorius užtikrina geresnį triukšmo atsparumą. OLIMEX naudoja 2K rezistorius SparkFun naudoja 10K rezistorius. Aš naudoju 3K3 rezistorius.

Šių įėjimų nustatymai tikrinami tik įjungiant (arba iš naujo nustatant) lustą. Po to kaiščiai yra prieinami bendram naudojimui, tačiau, kaip aptarta toliau, jų naudojimas yra ribojamas dėl šių išorinių traukimo į viršų/žemyn rezistorių.

3 žingsnis: GPIO0, GPIO2 ir GPIO15 naudojimas kaip išėjimai

Kaip išėjimai naudojami GPIO0, GPIO2 ir GPIO15
Kaip išėjimai naudojami GPIO0, GPIO2 ir GPIO15

Kaip minėta aukščiau, šie kaiščiai jau turės rezistorių, prijungtą prie VCC (GPIO0 ir GPIO2) arba GND, skirto GPIO15. Tai nustato, kaip turi būti prijungtas bet koks išorinis įrenginys, pvz., Relė arba LED+rezistorius. Naudojant GPIO0 ir GPIO2, išorinė relė turi būti prijungta tarp VCC ir kaiščio, kad ji netrukdytų traukiamam rezistoriui. Priešingai, išorinė relė, prijungta prie GPIO15, turi būti prijungta tarp GND ir kaiščio, kad tai netrukdytų nusileidžiančio rezistoriaus veikimui.

Norėdami suaktyvinti išorinį įrenginį, GPIO0 arba GPIO2 turi būti valdomas LOW (Active LOW), o GPIO15 - HIGH (Active HIGH).

Aukščiau pateiktoje schemoje parodyta, kaip naudoti GPIO0 ir GPIO2 bei GPIO15 kaip išvestis. Ši grandinė taip pat apima reikiamus ištraukimo/ištraukimo rezistorius. Atkreipkite dėmesį, kad 5 V relės modulis, varomas GPIO0, yra optoizoliuotas ir turi atskirą bendrą įvesties jungtį. Svarbu, kad 5V VCCA įtampa nebūtų taikoma ESP8266 kaiščiui.

Kaip perprogramuoti naudojant GPIO0 kaip išvestį

Pastaba: norint įjungti programavimo režimą, GPIO0 reikia įžeminti. Jei eskizas varo jį aukštai, įžeminimas gali sugadinti ESP8266 lustą. Saugus būdas perprogramuoti ESP8266, kai jūsų kodas varo GPIO0 išvestį, yra:- a) išjungti plokštę; b) trumpą GPIO0 į gnd; trumpas iš GPIO0, kad jums netrūktų išvestis, kai programa veikia e) perprogramuoti plokštę f) prireikus įjungti maitinimo ciklą.

4 žingsnis: GPIO0, GPIO2 ir GPIO15 naudojimas kaip įvestys

Naudojant GPIO0, GPIO2 ir GPIO15 kaip įvestis
Naudojant GPIO0, GPIO2 ir GPIO15 kaip įvestis

Šių kaiščių naudojimas kaip įvestis yra šiek tiek sudėtingas. Kaip minėta aukščiau įjungimo metu ir iš naujo nustatant, šie kaiščiai turi būti traukiami aukštyn arba žemyn, kad ESP8266 modulis būtų paleistas įprastu veikimo režimu. Tai reiškia, kad apskritai jūs negalite tiesiog pritvirtinti išorinio jungiklio prie šių kaiščių, nes įjungę paprastai negalite garantuoti, kad jungiklis netrauks įvesties į žemę ir taip neleis tinkamai paleisti modulio.

Apgaulė yra ne prijungti išorinį jungiklį tiesiai iš GPIO0 arba GPIO2 prie GND, o prijungti jį prie kito GPIO kaiščio, kuris įžeminamas (kaip išvestis) tik paleidus ESP8266. Atminkite, kad kai naudojami kaip išėjimai, GPIO kaiščiai užtikrina labai mažą atsparumą ryšiui su VCC arba GND, priklausomai nuo to, ar jie varomi AUKŠTI, ar ŽEMI.

Čia bus atsižvelgiama tik į GPIO0 ir GPIO2. Naudodami šį metodą galite gauti vieną (1) papildomą įvestį naudodami šiuos du (2) GPIO.

Panašus metodas gali būti naudojamas GPIO15, naudojant kitą GPIO kaištį, norint prijungti jo jungiklį prie +VCC, tačiau tai neįgyja papildomos įvesties, taip pat galite tiesiog naudoti kitą GPIO kaištį kaip įvestį.

Aukščiau pateiktoje grandinėje kaip pavyzdys naudojamas ESP8266-01 modulis. Nenaudojant šio triuko, ESP8266-01 neturi laisvų kaiščių, kuriuos būtų galima naudoti kaip įvestį, jei jau naudojate kaiščius RX/TX UART ryšiui.

Kadangi eskizo sąrankos () metodas paleidžiamas tik paleidus ESP8266 modulį, galima saugiai nustatyti, kad GPIO0 išvestis būtų LOW ir tada būtų pagrindas S1, prijungtam prie GPIO2. Tada galite naudoti „digitalRead“(2) kitoje eskizo vietoje, kad perskaitytumėte jungiklio nustatymą.

Išvada

Ši trumpa pastaba parodo, kaip naudoti GPIO0, GPIO2 ir GPIO15 kaip išvestis ir kaip naudoti papildomą įvestį naudojant GPIO0 ir GPIO2 kartu.

Rekomenduojamas: