Turinys:
- Įvadas
- 1 veiksmas: „Flash GPIO Pins“- nuo GPIO6 iki GPIO11
- 2 veiksmas: GPIO0, GPIO2 ir GPIO15 kaiščiai
- 3 žingsnis: GPIO0, GPIO2 ir GPIO15 naudojimas kaip išėjimai
- 4 žingsnis: GPIO0, GPIO2 ir GPIO15 naudojimas kaip įvestys
- Išvada
Video: ESP8266 GPIO0/GPIO2/GPIO15 kaiščių naudojimas: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
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
Š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 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
Š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:
4 skaitmenų 7 segmentų ekranas 14 kaiščių su „Arduino“: 3 žingsniai
4 skaitmenų 7 segmentų ekranas 14 kaiščių su „Arduino“: visada gera idėja patikrinti, ar įrenginys veikia tinkamai, ar ne, jei tas komponentas turi labai daug kaiščių. Šiame projekte aš išbandžiau savo 4 skaitmenų 7 segmentų 14 kontaktų ekraną. Visi 7 segmentai vienu metu bus rodomi nuo 0 iki 9
„Lego Arduino Nano“be korpuso kaiščių: 3 žingsniai
„Lego Arduino Nano“be kaiščių korpuso: man reikėjo korpuso „Arduino Nano“, kuriame nėra lituotų antgalių kaiščių. Norėjau gražaus ir mažo
0,96 colio I2C OLED su SMD kaiščiu: 3 žingsniai
0,96 colio I2C OLED su SMD kaiščiu: medžiaga: 1 x OPEN-SMART UNO R3 plokštė 1 x 0,96 colio I2C OLED su SMD kaiščiu 1 x IO išplėtimo skydas 1 x bandymo įranga 4 x Dopont kabelis Apžvalga: Gražus I2C OLED ekrano modulis su SMD ir PAD kaiščiais „pasidaryk pats“Jį lengva lituoti ant eksperimentinio PCB arba
„VISUINO“mesti kauliukus naudojant 0,96 colio 4 kaiščių OLED modulį: 7 žingsniai
„VISUINO“ridenami kauliukai naudojant 0,96 colio 4 kaiščių OLED modulį: šioje pamokoje mes naudosime OLED LCD ir „Visuino“, norėdami pagaminti ridenamus kauliukus, kai paspausime mygtuką ant duonos lentos. Žiūrėkite demonstracinį vaizdo įrašą
Kaip iš kelių mikrovaldiklių kaiščių išvesti daug šviesos diodų: 6 žingsniai (su paveikslėliais)
Kaip iš daugelio mikrovaldiklių kaiščių išvesti daug šviesos diodų: Naudodami tai, kad daugelis mikrovaldiklių kaiščių turi tris būsenas (+V, GND arba „didelė varža“), galite iš N kaiščių valdyti N*(N-1) šviesos diodus. . Taigi mažas 8 kontaktų mikrovaldiklis, pvz., „PIC12Fxxx“ar „ATtiny11“, gali įjungti 20 šviesos diodų, esančių penkiuose prieinamuose