Innholdsfortegnelse:

ESP8266 Bruke GPIO0/GPIO2/GPIO15 Pins: 4 trinn
ESP8266 Bruke GPIO0/GPIO2/GPIO15 Pins: 4 trinn

Video: ESP8266 Bruke GPIO0/GPIO2/GPIO15 Pins: 4 trinn

Video: ESP8266 Bruke GPIO0/GPIO2/GPIO15 Pins: 4 trinn
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, November
Anonim
ESP8266 Bruke GPIO0/GPIO2/GPIO15 Pins
ESP8266 Bruke GPIO0/GPIO2/GPIO15 Pins

Oppdatering 1. juli 2018-Lagt til notat om omprogrammering når GPIO0 er en utgang

Dette er et veldig kort notat om hvordan du bruker GPIO0 / GPIO2 og GPIO15 pinner på ESP8266 -modulen.

Oppdatering: Sjekk også hvordan du bruker ESP8266-01-pinnene

Introduksjon

ESP8266 er en billig wifi -aktivert chip. Den kommer i en rekke modultyper og kan programmeres på en rekke måter. Alle moduler gjør GPIO0 og GPIO2 tilgjengelig. De fleste moduler, andre enn ESP8266-01, gjør også GPIO15 tilgjengelig. Disse GPIO -ene styrer hvordan modulen starter og krever som sådan spesiell håndtering hvis de i det hele tatt skal brukes. GPIO6-GPIO11 krever også spesiell behandling som beskrevet nedenfor.

Trinn 1: Flash GPIO -pinner - GPIO6 til GPIO11

De fleste ESP8266-kort har en flash-brikke koblet til noen eller alle GPIO6-GPIO11. De fleste programmer bruker flash -minne, så vel som RAM, så med mindre du spesifikt kontrollerer at koden din bare går fra RAM, kan du ikke bruke disse pinnene til andre formål.

Det eksakte antallet pinner som brukes i området GPIO6 til GPIO11, avhenger av typen blitsmaskinvare som brukes på modulen din. Quad IO bruker 4 linjer for data (totalt 6 pinner) for opptil 4 ganger hastigheten på standard. Dual IO bruker 2 linjer for data (4 pins totalt) Standard bruker en enkelt linje for data (3 pins totalt).

Med mindre du vet nøyaktig hva brettet krever, er det best å bare ignorere GPIO6 til GPIO11 og ikke referere til dem fra koden din.

Trinn 2: GPIO0, GPIO2 og GPIO15 Pins

GPIO0, GPIO2 og GPIO15 Pins
GPIO0, GPIO2 og GPIO15 Pins

Disse pinnene bestemmer hvilken modus brikken starter i.

For normal programutførelse må GPIO0 og GPIO2 trekkes opp til Vcc (3.3V) og GPIO15 må trekkes til GND, hver med en motstand i området 2K til 10K motstand. En 2K -motstand gir bedre støyimmunitet. OLIMEX bruker 2K motstander SparkFun bruker 10K motstander. Jeg bruker 3K3 motstander.

Innstillingene til disse inngangene kontrolleres bare under oppstart (eller tilbakestilling) av brikken. Etter det er pinnene tilgjengelige for generell bruk, men som diskutert nedenfor er bruken begrenset av disse eksterne trekk opp/ned motstandene.

Trinn 3: Bruke GPIO0, GPIO2 og GPIO15 som utganger

Bruke GPIO0, GPIO2 og GPIO15 som utganger
Bruke GPIO0, GPIO2 og GPIO15 som utganger

Som nevnt ovenfor vil disse pinnene allerede ha en motstand koblet til enten VCC (GPIO0 og GPIO2) eller GND for GPIO15. Dette bestemmer hvordan en ekstern enhet, som et relé eller LED+motstand, må kobles til. For GPIO0 og GPIO2 må et eksternt relé kobles mellom VCC og pinnen slik at den ikke forstyrrer virkningen av opptrekkmotstanden. På den annen side må et eksternt relé som er koblet til GPIO15 kobles mellom GND og pinnen, slik at det ikke forstyrrer virkningen av nedtrekksmotstanden.

For å aktivere den eksterne enheten må GPIO0 eller GPIO2 kjøres LOW (Active LOW) mens GPIO15 må kjøres HIGH (Active HIGH).

Skjematisk over viser hvordan du bruker GPIO0 og GPIO2 og GPIO15 som utganger. Denne kretsen inkluderer også de nødvendige pullup/pulldown -motstandene. Vær oppmerksom på at 5V-relemodulen drevet av GPIO0 er opto-isolert og har en egen felles tilkobling for inngangen. Det er viktig at 5V VCCA -spenningen ikke tilføres ESP8266 -pinnen.

Hvordan omprogrammere når du bruker GPIO0 som utgang

Merk: GPIO0 må jordes for å komme i programmeringsmodus. Hvis du skisserer, kjører den høyt, kan det skade deg ESP8266 -brikken. Den sikre måten å omprogrammere ESP8266 når koden driver GPIO0-utgangen er:- a) Slå av kortet b) kort GPIO0 til gnd c) slå på kortet som går i programmodus på grunn av kort på GPIO0 d) fjern den korte fra GPIO0, slik at du ikke kortere utgangen når programmet kjører e) omprogrammerer brettet f) slår av brettet om nødvendig.

Trinn 4: Bruke GPIO0, GPIO2 og GPIO15 som innganger

Bruke GPIO0, GPIO2 og GPIO15 som innganger
Bruke GPIO0, GPIO2 og GPIO15 som innganger

Det er litt vanskelig å bruke disse pinnene som innganger. Som nevnt ovenfor ved oppstart og under tilbakestilling, må disse pinnene trekkes opp eller ned etter behov for å få ESP8266 -modulen til å starte opp i normal driftsmodus. Dette betyr at du generelt sett ikke bare kan koble en ekstern bryter til disse pinnene, fordi du vanligvis ikke kan garantere at bryteren ikke trekker inngangen til bakken ved oppstart, og forhindrer at modulen starter riktig.

Trikset er å ikke koble den eksterne bryteren direkte fra GPIO0 eller GPIO2 til GND, men å koble den i stedet til en annen GPIO -pin som drives til bakken (som utgang) først etter at ESP8266 starter. Husk at når de brukes som utganger, gir GPIO -pinnene en veldig lav motstandstilkobling til enten VCC eller GND, avhengig av om de drives HIGH eller LOW.

Her vil bare GPIO0 og GPIO2 bli vurdert. Ved å bruke denne metoden kan du få en (1) tilleggsinngang ved å bruke disse to (2) GPIO -ene.

En lignende metode kan brukes for GPIO15 ved å bruke en annen GPIO -pin for å koble bryteren til +VCC, men dette får ikke en ekstra inngang, du kan like godt bruke den andre GPIO -pinnen direkte som en inngang.

Kretsen ovenfor bruker ESP8266-01-modulen som et eksempel. Uten å bruke dette trikset, har ESP8266-01 ingen ledige pinner å bruke som inngang hvis du allerede bruker pinner RX/TX for en UART-tilkobling.

Siden skissens oppsett () -metode bare kjøres etter at ESP8266 -modulen er startet, er det trygt å lage GPIO0 -utgang LAV da og dermed gi en grunn for S1 koblet til GPIO2. Du kan deretter bruke digitalRead (2) andre steder i skissen for å lese bryterinnstillingen.

Konklusjon

Denne korte notatet viser hvordan du bruker GPIO0, GPIO2 og GPIO15 som utganger og hvordan du bruker få en ekstra inngang ved å bruke GPIO0 og GPIO2 sammen.

Anbefalt: