ESP32 Digital Inputs Outputs

Paul Marturia
7 min readFeb 7, 2021

--

Halooo teman2! Gimana kabarnya semua? Semoga dalam keadaan sehat yaa. Sudah seminggu nih kita ga ketemu. By the way, program blink yang minggu lalu kita bahas, gimana? Mudah, bukan?

OKEH, tanpa perlu berlama-lama, mari kita mulai. Pada pembahasan kali ini, kita akan membahas mengenai Digital Input Output yang dimiliki ESP32, serta kita akan memanfaatkan I/O tersebut untuk menyalakan lampu LED. Sebagai perkenalan, coba lihat gambar dibawah ini.

randomnerdtutorials.com

Pada dasarnya, microcontroller A.K.A ESP32 kita itu punya 30–36 pin I/O. Kalau aku pribadi, aku punya yang 30 pin. Untuk lebih lengkapnya, kalian bisa klik link ini. Disitu banyak sekali dibahas kegunaan dan manfaat apa saja yang akan didapatkan dari pin-pin tersebut.

Nah, pada kesempatan ini, kita akan memrogram ESP32 kita dapat menyalakan sebuah lampu LED dengan bantuan saklar. Sebelum mulai, persiapkan dulu yuk alat dan bahan yang dibutuhkan.

  1. Microcontroller ESP32

2. Breadboard

3. Kabel USB

4. 1 buah Lampu LED

5. 1 buah Push Button

6. 5 buah Kabel Jumper Male to Male

7. 1 buah Resistor 330 Ohm dan 1 buah Resistor 10k Ohm

9. Laptop (jangan dilupakan laptopnya kakak :D)

Berikut ini adalah skema diagram dari percobaan yang akan kita buat. Perhatikan baik-baik yaaaa.

Skema Diagram dari randomnerdtutorials.com
Skema Diagram Versi Paul

Udah disiapin kan alat dan bahannya? Sekarang, kuyyy nge-rakit!

  1. Tempatkan ESP32 di tempat yang telah disediakan. Hah, dimana? Ya di Breadboardnyaa guyss. Oh iya, aku disini pakai breadboard yang 800 titik.

2. Ambil sebuah kabel jumper, lalu masukkan salah satu ujung kabel jumpernya di pin ESP32 yang bertuliskan ‘3v3’, sisi bagian ‘BOOT’, lalu sisi lainnya letakkan di kutub positif dari breadboard.

3. Ambil sebuah kabel jumper, lalu masukkan salah satu ujung kabel jumpernya di pin ESP32 yang bertuliskan ‘GND’ (GROUND), lalu sisi lainnya letakkan di kutub negatif dari breadboard.

4. Ambil sebuah lampu LED, letakkan dimana saja, terserah kamu tapi harus vertikal kebawah ya ngeletakinnya. Untuk lebih jelasnya, lihat gambar ini!

5. Ambil resistor 330 ohm, letakkan salah satu ujungnya sejajar (horizontal) dengan kaki LED, dan ujung yang lain letakkan di kutub negatif breadboard.

6. Ambil sebuah kabel jumper, lalu masukkan salah satu ujung kabel jumpernya di pin ESP32 yang bertuliskan ‘D5’ (GPIO 5), lalu sisi lainnya letakkan sejajar dengan kaki LED.

7. Ambil sebuah Push Button, letakkan di tengah-tengah breadboard.

8. Ambil resistor 10k ohm, letakkan salah satu ujungnya sejajar (horizontal) dengan kaki Push Button, dan ujung yang lain letakkan di kutub negatif breadboard.

9. Ambil sebuah kabel jumper, lalu masukkan salah satu ujung kabel jumpernya di pin ESP32 yang bertuliskan ‘D4’ (GPIO 4), lalu sisi lainnya letakkan sejajar dengan kaki Push Button. (Kabel ini sejajar juga dengan resistor yang tadi ya guys, resistor yang langkah 8)

10. Ambil sebuah kabel jumper, lalu masukkan salah satu ujung kabel jumpernya di sebelah kaki Push Button (tidak sejajar dengan resistor), lalu sisi lainnya letakkan di kutub positif breadboard.

11. Plug kabel USB dari laptop ke ESP32 mu.

12. Masukkan code program dari web ini ke dalam program Arduinomu.

Kode Program

13. Verify dan upload.

14. Setelah ada tulisan “Done uploading” di aplikasi Arduino, tekan push button dan tahan, kamu akan mendapatkan hasil dimana saat push button ditekan, lampu LED akan menyala, dan saat push button dilepas, lampu LED akan mati.

Sekarang kita ke bagian masalahnya. Mungkin kalian ada yang ngalamin masalah ya, nah aku mau ngasih tau nih 1 1 solusinya.

  1. Upload dan compile yang lama sekali dan tidak berhasil.
    Kamu bisa tekan dan tahan tombol ‘BOOT’ yang ada di ESP32 saat proses ngupload sampai ada tulisan ‘CONNECTING…’. Nah, ini tuh masalah yang minggu lalu aku hadapin, pas nge-buat program Hello World. Karena aku dapet masalah yang sama, jadinya ga perlu susah-susah lagi deh buat searching di mbah gugel.
  2. Udah ada tulisan ‘Done uploading’, tapi pas aku pencet buttonnya kok lampunya ga nyala :( Kalau ini panjang geng. Aku juga gini, dan ini butuh kesabaran yang panjanggggg. Pertama, cek 1 1 kabelnya, ada masalah atau ngga. Nah loh, disini aku stress banget karena harus nge-cek 1 1 dan TERNYATA MASALAHNYA BUKAN DI KABELNYA. Masalahnya ada di kaki lampunya. Jadi, kaki lampunya coba kalian balikin. Dan niscaya lampumu akan bisa menyala ;D YEYY!

GIMANA GIMANA?! Seru banget kan! Iya donggg. Okeeyy, sekian dulu tutorial pada kesempatan ini, ditunggu minggu depan yaaa guysss. Stay tuned!

Analog Output dengan PWM Generator

Okeyy, sebenarnya tutorial ini sudah selesai. Cuma aku mau sedikit share juga pengalamanku menggunakan Output dengan PWM Generator. Untuk alat dan bahannya itu ada sedikit tambahan, yaitu :

  1. 2 buah lampu LED
  2. 2 buah Resistor 330 ohm
  3. Beberapa kabel jumper Male to Female

Langsung aja yukk meluncurrrr!!

Pertama, siapkan breadboard, dan letakkan ESP32 ke dalam breadboard.

Kedua, ambil kabel jumper, letakkan salah satu ujungnya di pin GND (Ground), dan ujung lainnya letakkan di kutub negatif pada breadboard.

Ketiga, untuk lebih mudah, kita letakkan dahulu kedua LED kita di dalam breadboard secara vertikal.

Keempat, ambil kabel jumper, letakkan salah satu ujungnya di RX2(GPIO16), dan ujung lainnya letakkan sejajar (horizontal) pada kaki LED ke-1.

Kelima, ambil kabel jumper, letakkan salah satu ujungnya di D21(GPIO21), dan ujung lainnya letakkan sejajar (horizontal) pada kaki LED ke-2.

Perlu diperhatikan, sebenarnya tidak harus meletakkan kabel di pin RX2 ataupun D21. Karena ESP32 kita memiliki banyak I/O, kamu bisa mencoba pin-pin yang lain seperti D5, D18, D19, dan lain-lain. Cobalah.

Keenam, ambil kedua resistor 330 ohm, salah satu ujungnya letakkan sejajar (horizontal) dengan kaki LED, dan ujung lainnya letakkan di kutub negatif pada breadboard.

Ketujuh, copy paste code program dari link ini ke dalam Arduino-mu. Oh iya, karena aku menggunakan 2 lampu LED, jadi aku sedikit mengubah kode program. Coba perhatikan gambar berikut.

Kode Program

Di awal aku inisialisasi ada dua buah LED. LED ke-1 aku karena aku letakkan di pin GPIO16, jadi kutulis 16, begitu juga dengan LED ke-2. Lalu di setting PWM Properties aku nambahin lagi ledChannel jadi ada 2.

Oke setelah ini aku lakukan upload dan verify, dan ternyata tidak membuahkan hasil. Aku coba gonta ganti kabel, resistor dan LED juga ngga bisa. Setelah sekian lama aku nyoba 1 1, ga sengaja aku nyenggol ESP32 tiba-tiba lampuku berkedip. Pas aku perhatiin lebih lanjut, ternyata oh ternyataaa ESP32 ku itu kayak kurang masuk ke dalam gitu loh (kurang di tekan), padahal sebelumnya juga emang ngga terlalu masuk ke dalam breadboard juga bisa, kok ini enggak. Nah, kira-kira kayak gini punyaku.

Disini tuh punyaku gabisa, karena harus ditekan dulu ESP32 nya sampai agak ke dalam gitu, baru lampunya mau nyala. Masa harus di tekan gitu si?

Karena itu, aku coba buat lagi, tapi ESP32 nya ngga aku letakin di breadboard, tapi aku pegang gitu. Jadi aku ambil 3 kabel jumper Male to Female, terus ujungnya (Male) aku masukin searah dengan breadboard dan ujung yang lain (Female) masukin ke pin ESP32.

Dan ternyata bisa guys!! Cuma harus hati-hati yaa pegang ESP32 nya, karena kalau kalian buatnya seperti ini lebih berbahaya terhadap performa dari ESP32 nya nanti.

Dalam pengerjaan praktikum kali ini, aku ngga pernah first try langsung bisa, ada aja gitu masalahnya. Namun, dengan kesabaran, dicoba 1 per 1, dengan teliti, dan ternyataa membuahkan hasil hehehe. Selamat mencoba!

Sumber :

  1. https://randomnerdtutorials.com/esp32-digital-inputs-outputs-arduino/
  2. https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

THANKYOUU GUYSSSS, SEE U NEXT WEEK!

Salam,

18219044
Paul Marturia Sihombing.

--

--

No responses yet