Pada artikel ini, Arduino Indonesia akan membahas tentang cara mengontrol pin GPIO ESP32 dan ESP8266 sebagai input digital dan output digital menggunakan firmware MicroPython. Sebagai contoh, Anda akan mempelajari cara membaca nilai sebuah pushbutton dan menyalakan LED berdasarkan kondisi tersebut.
Gambaran Proyek
Untuk menunjukkan penggunaan input dan output digital, kami akan membuat contoh proyek sederhana dengan sebuah pushbutton dan sebuah LED. Kami akan membaca status pushbutton dan menyalakan LED sesuai kondisi, seperti yang diilustrasikan pada gambar berikut.
Baca juga: Panduan Lengkap MicroPython ESP8266 - Deep Sleep, Wake Up Source, dan Manajemen Daya
Input Digital
Untuk mendapatkan nilai dari sebuah GPIO, pertama-tama Anda perlu membuat objek Pin dan mengaturnya sebagai input. Contoh:
button = Pin(4, Pin.IN)
Kemudian, untuk mendapatkan nilainya, Anda perlu menggunakan metode value() pada objek Pin tanpa memberikan argumen. Contoh, untuk mendapatkan status dari objek Pin bernama button, gunakan ekspresi berikut:
button.value()
Kami akan menunjukkan secara lebih detail cara kerjanya dalam contoh proyek.
Output Digital
Untuk menyalakan atau mematikan sebuah GPIO, pertama-tama Anda perlu mengaturnya sebagai output. Contoh:
led = Pin(5, Pin.OUT)
Untuk mengontrol GPIO, gunakan metode value() pada objek Pin dan berikan 1 atau 0 sebagai argumen. Contoh, perintah berikut mengatur objek Pin (led) ke HIGH:
led.value(1)
Untuk mengatur GPIO ke LOW, berikan 0 sebagai argumen:
led.value(0)
Skematik Rangkaian
Sebelum melanjutkan, Anda perlu merakit rangkaian dengan LED dan pushbutton. Kami akan menghubungkan LED ke GPIO 5 dan pushbutton ke GPIO 4.
Komponen yang Diperlukan
Berikut daftar komponen untuk membangun rangkaian:
- ESP32 atau ESP8266
- LED 5 mm
- Resistor 330 Ohm
- Pushbutton
- Resistor 10k Ohm
- Breadboard
- Kabel jumper
Diagram Rangkaian – ESP32
Gunakan diagram skematik berikut sebagai panduan jika Anda menggunakan papan ESP32:
Diagram Rangkaian – ESP8266
Gunakan diagram skematik berikut sebagai panduan jika Anda menggunakan papan ESP8266:
Pada ESP8266, pin yang ditandai sebagai D1 setara dengan GPIO 5, dan pin yang ditandai sebagai D2 setara dengan GPIO 4.
Kode Program
Kode berikut membaca status pushbutton dan menyalakan LED sesuai kondisinya. Kode ini kompatibel untuk papan ESP32 maupun ESP8266.
from machine import Pin
from time import sleep
led = Pin(5, Pin.OUT)
button = Pin(4, Pin.IN)
while True:
led.value(button.value())
sleep(0.1)
Penjelasan Kode
Anda mulai dengan mengimpor kelas Pin dari modul machine, dan kelas sleep dari modul time.
from machine import Pin
from time import sleep
Kemudian, buat objek Pin bernama led pada GPIO 5. LED adalah output, jadi gunakan argumen kedua `Pin.OUT`.
led = Pin(5, Pin.OUT)
Kami juga membuat objek bernama button pada GPIO 4. Tombol adalah input, jadi gunakan Pin.IN.
button = Pin(4, Pin.IN)
Gunakan button.value() untuk mengembalikan/membaca status tombol. Kemudian, gunakan ekspresi button.value() sebagai argumen untuk nilai LED.
led.value(button.value())
Dengan cara ini, saat tombol ditekan, button.value() mengembalikan 1. Ini sama dengan perintah led.value(1), yang menyalakan LED. Saat tombol tidak ditekan, button.value() mengembalikan 0, sehingga led.value(0) mematikan LED.
Demonstrasi
Simpan kode ke papan ESP Anda menggunakan Thonny IDE atau uPyCraft IDE. LED akan menyala saat tombol ditekan dan mati saat dilepaskan.
Baca juga: Panduan Lengkap MicroPython ESP32/ESP8266 - Sensor Suhu dan Kelembaban DHT11/DHT22
Dalam praktik, hasil dan kendala yang ditemui bisa berbeda tergantung perangkat, konfigurasi, versi library, dan sistem yang digunakan.
- Diskusi umum dan tanya jawab praktik: https://t.me/edukasielektronika
- Kendala spesifik dan kasus tertentu: http://bit.ly/Chatarduino



0 on: "Input dan Output Digital ESP32/ESP8266 dengan MicroPython"