Daftar Isi:

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

Perbarui 1 Juli 2018 - Menambahkan catatan tentang pemrograman ulang saat GPIO0 adalah output

Ini adalah catatan singkat tentang cara menggunakan pin GPIO0/GPIO2 dan GPIO15 pada modul ESP8266.

Pembaruan: Lihat juga Cara menggunakan pin ESP8266-01

pengantar

ESP8266 adalah chip berkemampuan wifi murah. Muncul dalam berbagai jenis modul dan dapat diprogram dalam berbagai cara. Semua modul membuat GPIO0 dan GPIO2 dapat diakses. Sebagian besar modul, selain ESP8266-01, juga membuat GPIO15 dapat diakses. GPIO ini mengontrol bagaimana modul dimulai dan dengan demikian memerlukan penanganan khusus jika ingin digunakan sama sekali. GPIO6-GPIO11 juga memerlukan perawatan khusus seperti yang dijelaskan di bawah ini.

Langkah 1: Flash Pin GPIO – GPIO6 ke GPIO11

Sebagian besar papan ESP8266 memiliki chip flash yang terhubung ke beberapa atau semua GPIO6-GPIO11. Sebagian besar program menggunakan memori flash, serta RAM, jadi kecuali Anda secara khusus memastikan kode Anda hanya berjalan dari RAM, Anda tidak dapat menggunakan pin ini untuk tujuan lain.

Jumlah pasti pin yang digunakan dalam rentang GPIO6 hingga GPIO11 bergantung pada jenis perangkat keras flash yang digunakan pada modul Anda. Quad IO menggunakan 4 jalur untuk data (total 6 pin) hingga 4 kali kecepatan standar. Dual IO menggunakan 2 jalur untuk data (total 4 pin) Standar menggunakan satu jalur untuk data (total 3 pin).

Kecuali Anda tahu persis apa yang dibutuhkan papan Anda, sebaiknya abaikan saja GPIO6 hingga GPIO11 dan jangan merujuknya dari kode Anda.

Langkah 2: Pin GPIO0, GPIO2 dan GPIO15

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

Pin ini menentukan mode apa chip dimulai.

Untuk eksekusi program normal, GPIO0 dan GPIO2 perlu ditarik ke Vcc (3.3V) dan GPIO15 perlu ditarik ke GND, masing-masing dengan resistor dalam kisaran resistor 2K hingga 10K. Sebuah resistor 2K memberikan kekebalan kebisingan yang lebih baik. OLIMEX menggunakan resistor 2K SparkFun menggunakan resistor 10K. Saya menggunakan resistor 3K3.

Pengaturan input ini hanya diperiksa selama power up (atau reset) chip. Setelah itu pin tersedia untuk penggunaan umum, tetapi seperti yang dibahas di bawah penggunaannya dibatasi oleh resistor pull up/down eksternal ini.

Langkah 3: Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Output

Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Output
Menggunakan GPIO0, GPIO2 dan GPIO15 Sebagai Output

Seperti disebutkan di atas, pin ini sudah memiliki resistor yang terhubung ke VCC (GPIO0 dan GPIO2) atau GND untuk GPIO15. Ini menentukan bagaimana perangkat eksternal apa pun, seperti relai atau led+resistor, harus dihubungkan. Untuk GPIO0 dan GPIO2, relay eksternal harus dihubungkan antara VCC dan pin agar tidak mengganggu aksi resistor pull up. Sebaliknya relay eksternal yang terhubung ke GPIO15 harus terhubung antara GND dan pin agar tidak mengganggu aksi resistor pull down.

Untuk mengaktifkan perangkat eksternal, GPIO0 atau GPIO2 harus di-drive LOW (Aktif LOW) sedangkan GPIO15 harus di-drive HIGH (Active HIGH).

Skema di atas menunjukkan bagaimana menggunakan GPIO0 dan GPIO2 dan GPIO15 sebagai output. Sirkuit ini mencakup resistor pullup/pulldown yang diperlukan juga. Perhatikan modul relai 5V yang digerakkan oleh GPIO0 diisolasi secara opto dan memiliki koneksi umum yang terpisah untuk input. Penting agar tegangan 5V VCCA tidak diterapkan pada pin ESP8266.

Cara memprogram ulang saat menggunakan GPIO0 sebagai output

Catatan: GPIO0 perlu di-ground untuk masuk ke mode pemrograman. Jika Anda membuat sketsa mengemudikannya tinggi, membumikannya dapat merusak chip ESP8266 Anda. Cara aman untuk memprogram ulang ESP8266 ketika kode Anda menggerakkan output GPIO0 adalah dengan:- a) Matikan board b) short GPIO0 ke gnd c) hidupkan board yang masuk ke mode program karena short pada GPIO0 d) hapus short dari GPIO0 agar output tidak korslet saat program berjalan e) memprogram ulang board f) mendaur ulang board 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 rumit. Seperti disebutkan di atas saat power up, dan selama reset, pin ini harus ditarik ke atas atau ke bawah sesuai kebutuhan agar modul ESP8266 dapat dihidupkan dalam mode berjalan normal. Ini berarti, secara umum, Anda tidak bisa begitu saja memasang sakelar eksternal ke pin ini karena saat dihidupkan, Anda biasanya tidak dapat menjamin sakelar tidak akan menarik input ke ground sehingga mencegah modul untuk memulai dengan benar.

Triknya adalah tidak menghubungkan sakelar eksternal langsung dari GPIO0 atau GPIO2 ke GND tetapi menghubungkannya ke pin GPIO lain yang didorong ke ground (sebagai output) hanya setelah ESP8266 dijalankan. Ingat, ketika digunakan sebagai output, pin GPIO memberikan koneksi resistansi yang sangat rendah ke VCC atau GND tergantung pada apakah mereka digerakkan TINGGI atau RENDAH.

Di sini hanya GPIO0 dan GPIO2 yang akan dipertimbangkan. Dengan menggunakan metode ini, Anda bisa mendapatkan satu (1) input tambahan menggunakan dua (2) GPIO ini.

Metode serupa dapat digunakan untuk GPIO15 dengan menggunakan pin GPIO lain untuk menghubungkan sakelarnya ke +VCC, tetapi ini tidak mendapatkan input tambahan, Anda dapat menggunakan pin GPIO lain secara langsung sebagai input.

Rangkaian di atas menggunakan modul ESP8266-01 sebagai contoh. Tanpa menggunakan trik ini, ESP8266-01 tidak memiliki pin gratis untuk digunakan sebagai input jika Anda sudah menggunakan pin RX/TX untuk koneksi UART.

Karena metode setup() sketsa hanya dijalankan setelah modul ESP8266 dijalankan, maka aman untuk membuat output GPIO0 LOW dan dengan demikian menyediakan ground untuk S1 yang terhubung ke GPIO2. Anda kemudian dapat menggunakan digitalRead(2) di tempat lain di sketsa Anda untuk membaca pengaturan sakelar.

Kesimpulan

Catatan singkat ini menunjukkan cara menggunakan GPIO0, GPIO2 dan GPIO15 sebagai output dan cara menggunakan mendapatkan input tambahan menggunakan GPIO0 dan GPIO2 secara bersamaan.

Direkomendasikan: