Tutorial ESP32 Membaca Digital Input (push Button) Untuk Mengatur Digital Output (LED)
by 18219004 in Circuits > Arduino
2167 Views, 0 Favorites, 0 Comments
Tutorial ESP32 Membaca Digital Input (push Button) Untuk Mengatur Digital Output (LED)
Haloo kembali lagi disini. Kalo sebelumnya aku tutorial blinking LED di ESP32, disini aku mau tutorial nyalain LED dengan input push button switch. Kuy cekidottt
Komponen
Bahan-bahan yang perlu kamu persiapkan adalah :
1. Breadboard (aku pake 830 points, bisa punya 1 atau punya 2 ya)
2. Kabel jumper male-to-male (secukupnya. disini aku make 5, tapi ya kan trial and error terus ya, jadi siapinnya jangan pas pasan!!)
3. ESP32
4. resistor 10k ohm (1) dan resistor 330 ohm (1)
5. Lampu LED (1)
6. Push button switch (bisa 2 pin, bisa 4 pin).
Bahannya udah siapp? kuy lanjutt
Ngerangkaii
Bentuk rangkaiannya bisa seperti rangkaian yg diatas ya sob.
Jadi, kita mengatur bagian pin 4 untuk dipasang ke push button, sedangkan pin 5 dipasang ke lampu LED. Disini, push button bertindak sebagai digital input, dan lampu LED sebagai outputnya. Setelah dirangkai seperti diatas, lanjut ke code yuk.
Ngode ~
Untuk codenya, algoritmanya ada kita bagi menjadi 3 segmen. Yang pertama deklarasi variabel. Variabel-variabel ini berupa nomor pin push button dan led yang dipasang (dideklarasikan sebagai konstanta). Lalu juga mendeklarasikan variabel status push buttonnya (apabila ditekan akan menjadi 0, dan jika tidak ditekan bisa menjadi 0 atau 1 (bisa diliat di serial monitor). Hal ini bisa berbeda-beda ya tergantung laptopnya memproses input tekanan buttonnya sebagai integer berapa. Dapat dicek di Tools> Serial monitor).
Lalu segmen kedua adalah deklarasi kecepatan upload serialnya, disini aku menggunakan Serial.begin (115200), untuk angkanya bisa angka yang dibawah itu, misalnya 57600. Lalu kita menginisialisasi pin push buttonnya sebagai input, dan pin LEDnya sebagai output. Lalu di segmen terakhir, kita menggunakan fungsi loop. Yang pertama, aku membuat pembacaan digital pin push buttonnya sebagai variable status button. Lalu untuk dapat mengecek di serial monitor, aku menulis perintah untuk programnya menulis setiap status buttonnya, dengan syntax Serial.println(nama_variabel); Lalu, aku membuat if-else mengenai keadaan status push button. Karena di komputerku apabila push button ditekan akan menunjukkan angka 0, maka jika status tombolnya 0, lampu LED akan dialiri tegangan tinggi (syntax : digitalWrite(ledpin,HIGH).) Dan untuk else, maka lampu LED akan dialiri tegangan rendah.
kamu bisa pake ini untuk source codenya:
// nilai konstantanya (yang merupakan pin-pin yang digunakan const int buttonPin = 4; // pushbutton nya dihubungin ke pin berapa const int ledPin = 5; // LEDnya (katoda) dihubungin ke pin berapa
// variable yang akan berubah (yang menunjukkan kondisi pushbutton int buttonState = 0; // variable buttonState diinisiasi 0
void setup() { // menginisialisasi pin pushbutton sebagai input Serial.begin(115200); //Untuk di serial monitornya pinMode(buttonPin, INPUT); // menginisialisasi pin LED sebagai output pinMode(ledPin, OUTPUT); }
void loop() { // membaca status push buttonnya buttonState = digitalRead(buttonPin); //menulis di serial monitor tentang status push buttonnya ( 0 bila ditekan, 1 bila tidak. angka bisa berubah tergantung pengaturan serial begin atau monitornya Serial.println(buttonState); // mengecek status push button melalui variable buttonState if (buttonState == 0) { //bisa juga buttonState == HIGH // Mengatur tegangan yang melalui LED tinggi: digitalWrite(ledPin, HIGH); } else { // Mengatur tegangan yang melalui LED rendah: digitalWrite(ledPin, LOW); } }
Downloads
Tips and Trickk!!
Tips dan trick :
1. ESP32nya aku menyarankan untuk dipasang ke breadboardnya sampe nancep ke dalam banget. Emang susah buat dimasukkin, bahkan aku juga takut patah. Tapi ternyata ngga sih. Sebelumnya aku tidak menancapkan ESP32 ke breadboardnya, jadi pin-pinnya aku sambungkan melalui kabel jumper female-to-male. Namun di aku ESP32 yang ga ditancep ke breadboard hasilnya kurang optimal. Ada beberapa kondisi yang terjadi kalo ESP32nya ga ditancep : (i) lampu LED apabila push button ditekan menyala sebentar-sebentar saja (mati nyala mati nyala). Bahkan sering miss pembacaannya. Kondisi ini aku alami saat proses upload, penekanan (dan tahan) tombol IO0 di ESP32nya sampe writing 100%. (ii) Lampu LED menyala redup (sebagai kondisi otomatisnya). Apabila ditekan push buttonnya memiliki tingkat akurasi tinggi dengan redup-terang lampu LEDnya. Kondisi ini aku alamin saat proses upload, penekanan dan tahan tombol IO0 di ESP32nya aku tahan ampe selesai upload. Tapi kondisi ini ga bisa dipantau lewat serial monitor. (iii) Lampu LED nyala apabila di tekan (atau disenggol) resistor 330 ohmnya. Kesimpulannya sih, di tutorial ini, kalo ESP32nya ga ditancepin maksimal ke breadboardnya, kondisinya ga stabil jadinya. bahkan aku tadi saat digoyang-goyangkan rangkaiannya, lampu LED suka nyala2 sendiri juga. Jadinya ga stabil. Makanya aku sarankan buat ditancepin ke bread board (walau aku juga ga tau cara ngelepasinnya gimana T.T)
Sekiann
Sekian sih gaiss tutorial dari aku. Selamat mencoba dan sehat selalu yaa ~