Project 2 Digital Input Output ESP32 & Analog Ouput ESP32
Assalamualaikum wr. wb.. Halo Teman-teman! Saya Naja :)
Pada project kali ini, kita akan membuat 2 percobaan yaitu membaca input dari suatu saklar (push button) untuk mengontrol lampu LED sebagai output yang disebut dengan digital input output dan sinyal PWM yang digunakan untuk mengendalikan terang hidupnya LED yang disebut dengan analog output. Sebenarnya, untuk project kali ini agak lebih sulit dibandingkan dengan project sebelumnya teman-teman. Eittssss ! jangan cemas ada saya yang bisa membantu teman-teman agar menjadi lebih mudah. Oh iya, karena pada project kali ini ada hubungannya dengan project sebelumnya teman-teman bisa lihat disini ya https://cahayanaza12.medium.com/project-1-led-blink-3a4ed13ed9eb . Nah, kali ini saya akan menjelaskan tentang percobaan 1 yaitu digital input output. Berikut daftar komponen yang dibutuhkan yaitu :
- ESP32 DEVKIT V1
- Breadboard
- Laptop
- Kabel micro USB
- 1 buah lampu LED
- 1 buah resistor 330 ohm
- 1 buah resistor 10K ohm
- 5 buah kabel jumper male to male
- 1 buah saklar (push botton)
Supaya teman-teman lebih mudah merakitnya saya akan menampilkan diagram skema rangkaian dibawah ini.
Pada diagram skema di atas bisa dilihat bahwa merakit rangkaian dengan LED dan push botton akan menghubungkan LED ke GPIO5 serta push botton ke GPIO4. Program yang digunakan pada skema ini adalah sebagai berikut.
Disini saya akan menjelaskan bagaimana program ini bekerja. Pada dua baris ini kode akan membuat variabel untuk penetapan pin.
push button terhubung pada GPIO 18 dan LED terhubung pada GPIO 5. Selanjutnya, kode ini menetapkan default dari push button yaitu 0 (tidak ditekan).
Pada fungsi setup( ) untuk mengontrol bit per transfer data per detik. Kemudian, diinisialisasikan push button sebagai input dan LED sebagai output.
Selanjutnya , pada fungsi loop( ) apabila (buttonState == HIGH) berarti push button sedang ditekan, LED akan nyala dengan fungsi digitalWrite() yang diset HIGH. Namun, apabila (buttonState == LOW) maka push button sedang tidak ditekan dan LED tidak nyala karena fungsi digitalWrite() di set LOW.
Nahh, berikut ini adalah hasil percobaan yang telah saya buat.
Disini saya akan memberikan beberapa catatan mengenai kendala yang saya alami ketika membuat percobaan kali ini.
- Salah rangkaian → perhatikan dengan teliti ketika merakit rangkaian agar hubungan antara resistor, LED, push button, kabel jumper, dan ESP32 bisa dijalankan.
- Ada kaki-kaki yang tidak tertancap dengan benar → perhatikan dibagian untuk menancapkan push button di breadboardnya. Sebaiknya push buttonnya tidak diletakkan dibagian tengah-tengah dari breadboard sehingga tidak ada arus yang melewati salah satu dari kaki push button. Maka, yang akan terjadi adalah lampu LED tidak menyala ketika push buttonnya ditekan.
- Salah dalam penulisan GPIO ( cek kaki yang digunakan )
- Pastikan setelah diupload ke esp32, pencet enable → saya sendiri agak kesulitan dibagian ini karena lupa untuk pencet tombol enable tersebut pada ESP32.
Pada percobaan kali ini, didapat bahwa push button dapat digunakan untuk mengendalikan LED. Kita bisa sesuaikan pin mana yang akan digunakan sebagai input output serta keluaran yang kita inginkan pada LEDnya.
Selanjutnya, kita masuk ke percobaan 2 yaitu analog output ESP32 menggunakan generator PWM. Nahh, pada percobaan kali ini, kita akan mengendalikan terang hidupnya LED dengan menggunakan sinyal PWM. PWM ( Pulse Width Modulation ) adalah teknik untuk memperoleh sinyal analog dari suatu sistem digital. Teknik ini dapat digunakan untuk mengendalikan ‘brightness’ LED, kecepatan motor DC, mengendalikan motor servo. Berikut daftar komponen yang dibutuhkan yaitu :
- ESP32 DEVKIT V1
- Breadboard
- Laptop
- Kabel micro USB
- 3 buah lampu LED
- 3 buah resistor 330 ohm
- 4 buah kabel jumper male to male
Pada percobaan analog output terbagi menjadi 2 skema yakni meredupkan LED dan mendapatkan sinyal yang sama di berbagai GPIO. Nahh, sekarang kita masuk kebagian skema 1 yaitu meredupkan LED. Supaya teman-teman lebih mudah merakitnya saya akan menampilkan diagram skema rangkaian dibawah ini.
Pada skema 1, hubungkan LED ke ESP32 dan LED harus dihubungkan ke GPIO16. Program yang digunakan pada skema ini adalah sebagai berikut.
Disini saya akan menjelaskan bagaimana program ini bekerja. Pada kode ini dimulai dengan menentukan pin yang dipasang LED dan pastikan LED terpasang di GPIO16.
Kemudian, mengatur sinyal PWM serta menentukan frekuensi 5000 Hz. Memilih saluran 0 untuk menghasilkan sinyal, dan menetapkan resolusi 8 bit.
Pada fungsi setup ( ) untuk mengonfigurasi LED PWM dengan menggunakan ledcSetup (). Selanjutnya, memilih GPIO untuk mendapatkan sinyal. Fungsi ledcAttachPin () yang menerima GPIO untuk mendapatkan sinyal dan menghasilkan sinyal.
Pada fungsi loop ( ) terdapat ledcWrite(channel, dutycycle) bila program dijalankan, maka LED akan berangsur-angsur menyala menjadi terang dalam 256 tingkat, kemudian meredup hingga mati dalam 256 tingkat ‘brightness’.
Nahh, berikut ini adalah hasil percobaan yang telah saya buat.
Nahh, sekarang kita masuk kebagian skema 2 yaitu mendapatkan sinyal yang sama di berbagai GPIO. Supaya teman-teman lebih mudah merakitnya saya akan menampilkan diagram skema rangkaian dibawah ini.
Pada skema 2, kita bisa mendapatkan sinyal yang sama dari saluran yang sama di GPIO yang berbeda. Agar bisa memenuhi hal tersebut, kita hanya perlu menambahkan GPIO tersebut ke saluran yang sama di fungsi setup ( ). Program yang digunakan pada skema ini adalah sebagai berikut.
Disini saya akan menjelaskan bagaimana program ini bekerja. Ini adalah kode yang sama dengan yang sebelumnya tetapi dengan beberapa perubahan. Pada kode ini menetapkan dua variabel lagi untuk dua LED baru, yang ada pada GPIO17 dan GPIO5.
Kemudian, pada fungsi setup( ) menambahkan baris untuk menetapkan kedua GPIO ke saluran 0. Maka, ini berarti bahwa mendapatkan sinyal yang sama yang dihasilkan di saluran 0 di kedua GPIO.
Nahh, berikut ini adalah hasil percobaan yang telah saya buat.
Pada percobaan analog output, untuk kedua skema tersebut saya mendapatkan kendala dibagian mengompile program. Disini saya salah dalam menulis programnya. Jadi, buat teman-teman yang ingin mencoba, agar bisa lebih di perhatikan lagi programnya ya. Pada percobaan kali ini, didapat bahwa sinyal PWM yang digunakan untuk mengendalikan terang hidupnya LED dan dapat digunakan untuk mengontrol keluaran lain dengan PWM dengan mengatur properti yang tepat ke sinyal. Oh iya, bagi teman-teman yang bingung untuk bagaimana cara merakit rangkaiannya, saya sudah membuatkan videonya buat teman-teman. Baiklah, sekian dari saya dan sampai jumpa di project-project selanjutnya! Stay toon!
Selamat Mencoba Teman-teman :)
# Project 2 Digital Input Output
# Project 2 Analog Output (lanjutan)