Isi kandungan:

ESP8266 Menggunakan Pin GPIO0 / GPIO2 / GPIO15: 4 Langkah
ESP8266 Menggunakan Pin GPIO0 / GPIO2 / GPIO15: 4 Langkah

Video: ESP8266 Menggunakan Pin GPIO0 / GPIO2 / GPIO15: 4 Langkah

Video: ESP8266 Menggunakan Pin GPIO0 / GPIO2 / GPIO15: 4 Langkah
Video: Arduino: How to use ESP8266 Pin D3 / GPIO 0 and D8 / GPIO 15 properly? 2024, November
Anonim
ESP8266 Menggunakan Pin GPIO0 / GPIO2 / GPIO15
ESP8266 Menggunakan Pin GPIO0 / GPIO2 / GPIO15

Kemas kini 1 Julai 2018 - Catatan tambahan mengenai pengaturcaraan semula apabila GPIO0 adalah output

Ini adalah nota ringkas mengenai cara menggunakan pin GPIO0 / GPIO2 dan GPIO15 pada modul ESP8266.

Kemas kini: Lihat juga cara menggunakan pin ESP8266-01

Pengenalan

ESP8266 adalah cip berkemampuan wifi kos rendah. Ia hadir dalam pelbagai jenis modul dan dapat diprogramkan dengan pelbagai cara. Semua modul menjadikan GPIO0 dan GPIO2 dapat diakses. Sebilangan besar modul, selain ESP8266-01, juga menjadikan GPIO15 mudah diakses. GPIO ini mengawal bagaimana modul dimulakan dan dengan itu memerlukan pengendalian khas sekiranya ia digunakan sama sekali. GPIO6-GPIO11 juga memerlukan rawatan khas seperti yang dijelaskan di bawah.

Langkah 1: Flash GPIO Pin - GPIO6 hingga GPIO11

Sebilangan besar papan ESP8266 mempunyai cip kilat yang disambungkan ke beberapa atau semua GPIO6-GPIO11. Sebilangan besar program menggunakan memori kilat, dan juga RAM, jadi kecuali jika anda secara khusus memastikan kod anda hanya berjalan dari RAM, anda tidak boleh menggunakan pin ini untuk tujuan lain.

Jumlah pin yang tepat digunakan dalam julat GPIO6 hingga GPIO11 bergantung pada jenis perkakasan denyar yang digunakan pada modul anda. Quad IO menggunakan 4 baris untuk data (jumlah 6 pin) sehingga 4 kali kelajuan standard. Dual IO menggunakan 2 baris untuk data (jumlah 4 pin) Standard menggunakan satu baris untuk data (jumlah 3 pin).

Kecuali anda mengetahui dengan tepat apa yang diperlukan oleh papan anda, sebaiknya abaikan GPIO6 hingga GPIO11 dan jangan merujuknya dari kod anda.

Langkah 2: Pin GPIO0, GPIO2 dan GPIO15

Pin GPIO0, GPIO2 dan GPIO15
Pin GPIO0, GPIO2 dan GPIO15

Pin ini menentukan mod apa cip dimulakan.

Untuk pelaksanaan program normal GPIO0 dan GPIO2 perlu ditarik hingga Vcc (3.3V) dan GPIO15 perlu ditarik ke GND, masing-masing dengan perintang dalam jarak 2K hingga 10K perintang. Perintang 2K memberikan kekebalan bunyi yang lebih baik. OLIMEX menggunakan perintang 2K SparkFun menggunakan perintang 10K. Saya menggunakan perintang 3K3.

Pengaturan input ini hanya diperiksa semasa power (atau reset) chip. Selepas itu pin tersedia untuk kegunaan umum, tetapi seperti yang dibincangkan di bawah, penggunaannya dibatasi oleh perintang tarik / turun luaran ini.

Langkah 3: Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Keluaran

Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Keluaran
Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Keluaran

Seperti yang dinyatakan di atas, pin ini akan mempunyai perintang yang disambungkan ke VCC (GPIO0 dan GPIO2) atau GND untuk GPIO15. Ini menentukan bagaimana mana-mana peranti luaran, seperti geganti atau perintang LED +, mesti disambungkan. Untuk GPIO0 dan GPIO2, relay luaran mesti disambungkan antara VCC dan pin supaya tidak mengganggu tindakan perintang tarik. Sebaliknya geganti luaran yang disambungkan ke GPIO15 mesti dihubungkan antara GND dan pin supaya tidak mengganggu tindakan perintang tarik ke bawah.

Untuk mengaktifkan peranti luaran, GPIO0 atau GPIO2 mesti didorong LOW (Active LOW) sementara GPIO15 mesti didorong HIGH (Active HIGH).

Skema di atas menunjukkan cara menggunakan GPIO0 dan GPIO2 dan GPIO15 sebagai output. Litar ini merangkumi perintang pullup / pulldown yang diperlukan juga. Perhatikan modul relay 5V yang digerakkan oleh GPIO0 diasingkan secara opto dan mempunyai sambungan umum yang terpisah untuk input. Penting bahawa voltan 5V VCCA tidak digunakan pada pin ESP8266.

Cara memprogram semula apabila menggunakan GPIO0 sebagai output

Catatan: GPIO0 perlu dibumikan untuk masuk ke mod pengaturcaraan. Sekiranya anda membuat lakaran tinggi, pembumian boleh merosakkan cip ESP8266 anda. Cara selamat untuk memprogramkan semula ESP8266 apabila kod anda mendorong output GPIO0 adalah dengan: - a) Matikan papan b) GPIO0 pendek ke gnd c) aktifkan papan yang masuk ke mod program kerana pendek pada GPIO0 d) keluarkan pendek dari GPIO0 sehingga anda tidak kekurangan output semasa program dijalankan e) memprogramkan semula papan f) kitarkan kuasa papan jika perlu.

Langkah 4: Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Input

Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Input
Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Input

Menggunakan pin ini sebagai input agak sukar. Seperti yang dinyatakan di atas semasa menghidupkan, dan semasa reset, pin ini mesti ditarik ke atas atau ke bawah seperti yang diperlukan agar modul ESP8266 dimulakan dalam mod berjalan normal. Ini bermaksud, secara umum, anda tidak boleh memasang suis luaran ke pin ini kerana semasa menyala, anda biasanya tidak dapat menjamin bahawa suis tidak akan menarik input ke tanah dan dengan itu menghalang modul bermula dengan betul.

Caranya adalah dengan tidak menyambungkan suis luaran secara langsung dari GPIO0 atau GPIO2 ke GND tetapi menyambungkannya ke pin GPIO lain yang didorong ke tanah (sebagai output) hanya setelah ESP8266 dimulakan. Ingat, apabila digunakan sebagai output, pin GPIO memberikan sambungan rintangan yang sangat rendah ke VCC atau GND bergantung kepada sama ada ia didorong TINGGI atau RENDAH.

Di sini hanya GPIO0 dan GPIO2 yang akan dipertimbangkan. Dengan menggunakan kaedah ini, anda dapat memperoleh satu (1) input tambahan menggunakan dua (2) GPIO ini.

Kaedah serupa dapat digunakan untuk GPIO15 dengan menggunakan pin GPIO yang lain untuk menghubungkan suisnya ke + VCC, tetapi ini tidak mendapat input tambahan, anda mungkin juga menggunakan pin GPIO yang lain secara langsung sebagai input.

Litar di atas menggunakan modul ESP8266-01 sebagai contoh. Tanpa menggunakan tipu daya ini, ESP8266-01 tidak mempunyai pin percuma untuk digunakan sebagai input jika anda sudah menggunakan pin RX / TX untuk sambungan UART.

Oleh kerana kaedah penyediaan sketsa () hanya dijalankan setelah modul ESP8266 dimulakan, adalah selamat untuk membuat output GPIO0 RENDAH dan seterusnya menyediakan landasan untuk S1 yang disambungkan ke GPIO2. Anda kemudian boleh menggunakan digitalRead (2) di tempat lain dalam lakaran anda untuk membaca tetapan suis.

Kesimpulannya

Nota ringkas ini menunjukkan cara menggunakan GPIO0, GPIO2 dan GPIO15 sebagai output dan cara penggunaan mendapatkan input tambahan menggunakan GPIO0 dan GPIO2 bersama-sama.

Disyorkan: