Project#2 ESP32 : Digital Input Output

Albertus Agung
6 min readFeb 7, 2021

--

Setelah sebelumnya kita telah mencoba menggunakan ESP32 untuk pertama klainya, mulai dari mengenal ESP32, men-setup ESP32, dan mencoba menjalankan program sederhana pada ESP32. Kali ini kita akan mencoba bagaimana cara menggunakan pin antarmuka Input-Output pada ESP32 yaitu GPIO, untuk mengendalikan lampu LED. kita akan mencoba membuat ESP32 membaca input dari suatu saklar (push button) untuk mengendalikan lampu LED sebagai outputnya. Tetapi sebelum itu, kita harus mengenal terlebih dahulu GPIO pada ESP32.

Input Output ESP32

ESP32 memiliki pin Input dan Output sebagai antarmuka untuk berkomunikasi dengan dunia luar. Pin ini disebut sebagai General Purpose Input Output (GPIO).

Antarmuka Input Output pada ESP32, terdiri dari:

  • 18 buah kanal Analog-to-Digital Converter (ADC)
  • 3 buah antarmuka Serial-Parallel Interface (SPI)
  • 3 buah antarmuka UART
  • 2 buah antarmuka I2C
  • 16 kanal output PWM
  • 2 Digital-to-Analog Converter (DAC)
  • 2 buah antarmuka I2S
  • 10 buah GPIO Capacitive Sensing

Nah pada Project ESP32 kita dan seterusnya menggunakan ESP32 DEVKIT V1 DOIT dengan 36 pin, dengan sususan pin default seperti berikut

GPIO 34 35 36 39 adalah GPI (Pin khusus utuk input), jadi mereka tidak bisa dijadikan sebagai pin output

GPIO bisa digunakan untuk menerima sinyal input digital maupun analog, dan juga mengeluarkan sinyal output digital maupun analog. Pada sinyal digital berarti hanya ada dua kondisi, yaitu OFF (0 Volt) dan ON (3,3 Volt). Sinyal analog memiliki besaran yang bukan hanya ON dan OFF saja, tetapi ada nilai lain di antara kondisi ON dan OFF. Sebagai contoh output analog adalah untuk meredupkan lampu. dan inilah yang akan kita coba pada Project 2 kali ini.

Komponen

  • ESP32 DEVKIT V1
  • PC atau Laptop
  • Kabel USB to MicroUSB
  • Breadboard
  • Saklar (Push Button)
  • LED
  • Resistor 330 Ohm & 10K Ohm
  • Jumper Wire Male to male, Male to female, Female to female
  • Arduino IDE

Project#2.0

Pada project 2.0 kita hanya akan menggunakan 1 LED sebagai ouput dan 1 push button sebagai input. Dimana ketika button push ditekan LED akan menyala, dan ketika push button dilepas, maka LED akan mati.

Skema Rangkaian

Berikut ini adalah skema rangkaian untuk project 2 ini dimana ESP32 menerima input dari push button untuk menghidupkan LED ketika ditekan. dan LED sebagai outputnya, menyala ketika menerima inputan untuk ON dari push button.

Skema Project 2.0

Program

Pertama kita harus melakukan setup untuk men-set push button sebgai input dan LED sebagai ouput pada GPIO 4 dan 5.

setup

setelah melakukan setup, makan selanjutnya ke main programnya seperti berikut.

main program

setelah dipastikan program benar selanjutnya lakukan proses verify/compile prorgam, dan kemudia upload ke ESP32.

Eksperimen dan Demo

setelah program berhasil diupload, sekarang waktunya mencobanya

Ketika Push button ditekan, makan lampu akan hidup
Ketika dilepas kembali, lampu akan mati

Project#2.1

Nah pada project 2.1 ini kita akan sedikit memodifikasi dengan mengunakan 3 warna LED dan 2 push button. Button 1 berfungsi untuk menghidupkan 3 lampu dengan delay bergantian. dan button 2 berfungsi untuk mematikan 3 lampu dengan delay.

Skema rangkaian

Berikut ini adalah skema rangkaian untuk project 2.1. Kita menggunakan 3 LED pada GPIO 25, 26, dan 27 sebagai output. Dan menggunakan 2 push button pada GPIO 4 dan 17.

skema rangkaian Project 2.1
skema rangkaian Project 2.1
skema rangkaian Project 2.1

Code Program

  1. Melakukan inisialisasi variabel untuk LED 1,2,3 dan button push 1,2 sesuai dengan GPIO pada skema.
  2. Buat variabel state untuk button dengan nilai 0.
  3. Setup LED 1,2,3 sebagai OUTPUTdan Button sebagai INPUTdengan fungsi pinMode( ) .
setup

4. Buat program utama dengan loop( )

5. Membaca INPUT dari button dengan fungsi digitalRead( )

6. buat code 2 kondisi dengan if, jika button 1 ditekan (HIGH) maka LED 1,2,3 akan menyala berurutan dengan delay 300 ms. dan jika button 2 ditekan (HIGH) maka LED akan mati secara berurutan dengan delay 300 ms.

main

Setelah itu lakukan verify / compile dan upload program ke ESP32.

Eksperimen & Demo

Setelah berhasil diupload, sekarang mari kita coba.

Ketika button push 1 ditekan, maka 3 LED akan menyala
ketika button 2 ditekan, maka 3 LED akan mati
Video demo Project#2.1

Project#2.2

Pada project 2.2 ini kita akan sedikit memodifikasi lagi dengan mengunakan 3 warna LED dan 3 push button. Ketika di tekan button 1 menghidupkan LED 1 , dan ketika dilepas akan mati, begitu juga dengan button 2 dan 3. Sebenarnya ini sama saja dengan Project 2.2 tapi saya mencoba untuk menambah jumlah button push dan LED nya.

Skema Rangkaian

Untuk skema rangkaian untuk project 2.2 kita menggunakan 3 LED pada GPIO 25, 26, dan 27 sebagai output. Dan menggunakan 3push button pada GPIO 4, 17, dan 18.

skema rangkaian Project 2.2
skema rangkaian Project 2.2
skema rangkaian Project 2.2

Code Program

  1. Melakukan inisialisasi variabel untuk LED 1,2,3 dan button push 1,2,3 sesuai dengan GPIO pada skema.
  2. Buat variabel state untuk button 1, 2, 3dengan nilai 0.

3. Setup LED 1,2,3 sebagai OUTPUTdan Button 1,2,3 sebagai INPUTdengan fungsi pinMode( ) .

4. Buat program utama dengan loop( )

5. Membaca INPUT dari button dengan fungsi digitalRead( ) untuk button 1, 2, 3.

6. buat 3 kondisi if & else if untuk 3 button. dimana ketika button ditekan makan LED yang sesuai akan menyala.

setelah itu lakukan verify / compile dan upload program ke ESP32.

Eksperimen & Demo

mati ketika tida ada yang ditekan
LED hijau menyala ketika button 1 ditekan
LED kuning menyala ketika button 1 ditekan
LED merahmenyala ketika button 3ditekan
Video demo project#2.2

Analisis

Untuk melakukan input output pada ESP32 kita harus melihat dahulu apakah GPIO tersebut dapat digunakna untuk input / output, karena sebenernya mereka sudah memiliki default yang ditetapkan. setelah itu perlu dilakukan setup GPIO mana yang akan menjadi input ataupun output. Pada percobaan di atas ESP32 membaca digital input, dimana ketika push button ditekan (HIGH) makan LED akan dibuat menjadi HIGH sesuai program yang dibuat.

Untuk membaca input digital dari push button, dapat menggunakan fungsi digitalRead( ) dan dia akan membaca status buttonya apakah HIGH atau LOW. dan untuk menghasilkan output pada LED dapat menggunakan fungsi digitalWrite( ) untuk mengubah status LOW LED menjadi HIGH dan sebaliknya tergantung inputnya. dan kita dapat membuat lebih dari satu input dan output dengan berbagai variasi pada ESP32 .

Albertus Agung Sinurat | 18219066

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response