Sommario:
- introduzione
- Passaggio 1: pin GPIO flash – da GPIO6 a GPIO11
- Passaggio 2: pin GPIO0, GPIO2 e GPIO15
- Passaggio 3: utilizzo di GPIO0, GPIO2 e GPIO15 come output
- Passaggio 4: utilizzo di GPIO0, GPIO2 e GPIO15 come input
- Conclusione
Video: ESP8266 Utilizzo dei pin GPIO0/GPIO2/GPIO15: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Aggiornamento 1 luglio 2018 - Aggiunta nota sulla riprogrammazione quando GPIO0 è un output
Questa è una breve nota su come utilizzare i pin GPIO0 / GPIO2 e GPIO15 sul modulo ESP8266.
Aggiornamento: controlla anche Come utilizzare i pin ESP8266-01
introduzione
ESP8266 è un chip abilitato Wi-Fi a basso costo. È disponibile in una varietà di tipi di moduli e può essere programmato in vari modi. Tutti i moduli rendono accessibili GPIO0 e GPIO2. La maggior parte dei moduli, oltre a ESP8266-01, rende accessibile anche GPIO15. Questi GPIO controllano come si avvia il modulo e come tali richiedono una gestione speciale se devono essere utilizzati. Anche GPIO6-GPIO11 richiedono un trattamento speciale come descritto di seguito.
Passaggio 1: pin GPIO flash – da GPIO6 a GPIO11
La maggior parte delle schede ESP8266 ha un chip flash collegato ad alcuni o tutti i GPIO6-GPIO11. La maggior parte dei programmi utilizza la memoria flash, oltre alla RAM, quindi, a meno che tu non ti assicuri specificamente che il tuo codice venga eseguito solo dalla RAM, non puoi utilizzare questi pin per altri scopi.
Il numero esatto di pin utilizzati nell'intervallo da GPIO6 a GPIO11 dipende dal tipo di hardware flash utilizzato sul modulo. Quad IO utilizza 4 linee per i dati (6 pin in totale) fino a 4 volte la velocità dello standard. Il doppio I/O utilizza 2 linee per i dati (4 pin in totale) Lo standard utilizza una singola linea per i dati (3 pin in totale).
A meno che tu non sappia esattamente cosa richiede la tua scheda, è meglio ignorare semplicemente GPIO6 a GPIO11 e non fare riferimento ad essi dal tuo codice.
Passaggio 2: pin GPIO0, GPIO2 e GPIO15
Questi pin determinano in quale modalità si avvia il chip.
Per la normale esecuzione del programma, GPIO0 e GPIO2 devono essere portati fino a Vcc (3,3 V) e GPIO15 devono essere portati a GND, ciascuno con un resistore nell'intervallo da 2K a 10K. Un resistore da 2K offre una migliore immunità ai disturbi. OLIMEX utilizza resistori da 2K SparkFun utilizza resistori da 10K. Uso resistori 3K3.
Le impostazioni di questi ingressi vengono verificate solo durante l'accensione (o il ripristino) del chip. Successivamente i pin sono disponibili per l'uso generale, ma come discusso di seguito il loro utilizzo è limitato da questi resistori pull up/down esterni.
Passaggio 3: utilizzo di GPIO0, GPIO2 e GPIO15 come output
Come notato sopra, questi pin avranno già un resistore collegato a VCC (GPIO0 e GPIO2) o GND per GPIO15. Questo determina come deve essere collegato un qualsiasi dispositivo esterno, come un relè o un led+resistenza. Per GPIO0 e GPIO2, è necessario collegare un relè esterno tra VCC e il pin in modo che non interferisca con l'azione del resistore di pull up. Viceversa un relè esterno collegato a GPIO15 deve essere collegato tra GND e il pin in modo che non interferisca con l'azione della resistenza di pull down.
Per attivare il dispositivo esterno, GPIO0 o GPIO2 deve essere impostato su BASSO (Active LOW) mentre GPIO15 deve essere impostato su HIGH (Active HIGH).
Lo schema sopra mostra come utilizzare GPIO0 e GPIO2 e GPIO15 come uscite. Questo circuito include anche le necessarie resistenze pullup/pulldown. Notare che il modulo relè 5V pilotato da GPIO0 è optoisolato e ha una connessione comune separata per l'ingresso. È importante che la tensione 5V VCCA non sia applicata al pin ESP8266.
Come riprogrammare quando si utilizza GPIO0 come output
Nota: GPIO0 deve essere messo a terra per entrare in modalità di programmazione. Se lo schizzo lo sta guidando in alto, la messa a terra può danneggiare il chip ESP8266. Il modo sicuro per riprogrammare l'ESP8266 quando il codice pilota l'uscita GPIO0 è: a) Spegnere la scheda b) cortocircuitare GPIO0 su gnd c) accendere la scheda che va in modalità di programmazione a causa del cortocircuito su GPIO0 d) rimuovere il cortocircuito da GPIO0 in modo da non cortocircuitare l'uscita quando il programma viene eseguito e) riprogrammare la scheda f) spegnere e riaccendere la scheda se necessario.
Passaggio 4: utilizzo di GPIO0, GPIO2 e GPIO15 come input
Usare questi pin come input è un po' complicato. Come notato sopra all'accensione e durante il ripristino, questi pin devono essere tirati su o giù come richiesto per avviare il modulo ESP8266 in modalità di funzionamento normale. Ciò significa che, in generale, non è possibile collegare semplicemente un interruttore esterno a questi pin perché all'accensione di solito non è possibile garantire che l'interruttore non attiri l'ingresso a massa e quindi impedisca al modulo di avviarsi correttamente.
Il trucco è non collegare l'interruttore esterno direttamente dal GPIO0 o GPIO2 a GND ma collegarlo invece a un altro pin GPIO che viene portato a terra (come uscita) solo dopo l'avvio di ESP8266. Ricorda, quando vengono utilizzati come uscite, i pin GPIO forniscono una connessione a resistenza molto bassa a VCC o GND a seconda che siano guidati ALTO o BASSO.
Qui verranno presi in considerazione solo GPIO0 e GPIO2. Usando questo metodo puoi ottenere un (1) input aggiuntivo usando questi due (2) GPIO.
Un metodo simile può essere utilizzato per GPIO15 utilizzando un altro pin GPIO per collegare il suo interruttore a +VCC, ma questo non ottiene un input extra, potresti anche usare l'altro pin GPIO direttamente come input.
Il circuito sopra utilizza il modulo ESP8266-01 come esempio. Senza usare questo trucco, ESP8266-01 non ha pin liberi da usare come input se stai già usando i pin RX/TX per una connessione UART.
Poiché il metodo setup() dello sketch viene eseguito solo dopo l'avvio del modulo ESP8266, è sicuro rendere l'output GPIO0 LOW e quindi fornire una massa per S1 collegato a GPIO2. Puoi quindi utilizzare digitalRead(2) altrove nel tuo schizzo per leggere l'impostazione dell'interruttore.
Conclusione
Questa breve nota mostra come utilizzare GPIO0, GPIO2 e GPIO15 come output e come ottenere un input aggiuntivo utilizzando GPIO0 e GPIO2 insieme.
Consigliato:
Utilizzo separato dei chip a nastro LED: 4 passaggi
Utilizzo separato dei chip a nastro LED: mentre sperimentavo un altro progetto, ho finito per tagliare una lunghezza di nastro LED tra le linee di taglio previste per adattarlo al progetto in questione (non preoccuparti, lo rivelerò quando è finito). Il pezzo non ha funzionato dopo questo taglio in quanto sev
Utilizzo dei moduli orologio in tempo reale DS1307 e DS3231 con Arduino: 3 passaggi
Utilizzo dei moduli di clock in tempo reale DS1307 e DS3231 con Arduino: continuiamo a ricevere richieste su come utilizzare i moduli di clock in tempo reale DS1307 e DS3231 con Arduino da varie fonti, quindi questo è il primo di un tutorial in due parti su come utilizzarli. Per questo tutorial su Arduino abbiamo a disposizione due moduli di clock in tempo reale
Utilizzo dei 4 pin di ESP8266-01: 3 passaggi
Utilizzo dei 4 pin dell'ESP8266-01: Nota: questo progetto è fondamentalmente un'estensione di una precedente istruzione che utilizzava solo 2 pin. Il numero limitato (4) di pin GPIO sull'ESP8266-01 può sembrare un ostacolo, per qualsiasi applicazione seria. Eppure se si usano i pin in modo intelligente è
Utilizzo dei tastierini numerici con Arduino: 4 passaggi
Utilizzo dei tastierini numerici con Arduino: i tastierini numerici possono fornire una semplice alternativa per l'utente finale per varie interfacce per i tuoi progetti. Oppure, se hai bisogno di molti pulsanti, possono farti risparmiare molto tempo per quanto riguarda la costruzione. Passeremo attraverso il loro collegamento, usando Arduino l
Utilizzo dei vecchi moduli VFD Noritake Itron: 7 passaggi
Utilizzo dei vecchi moduli VFD Noritake Itron: di tanto in tanto ti imbatti in parti interessanti su ebay, da amici o semplicemente rovistando nei negozi di seconda mano. Un esempio di questo è stato un enorme display fluorescente sotto vuoto Noritake Itron 40 x 2 caratteri del 1994 (o prima) che è stato trasmesso