PROMO: Wemos D1 Mini gratis bagi Comment terbaikmu

Di dalam teknik digital hanya dikenal dua kondisi logic, yaitu 1 dan 0. Keduanya boleh dikatakan mewakili HIGH dan LOW, Secara kelistrikan, logic 0 adalah tegangan sebesar 0 volt, sementara itu logic 1 adalah tegangan sebesar 5 volt. Gambar di bawah menunjukkan contoh deretan sinyal logic 0101010, atau dapat pula dinyatakan dengan LOW--HIGH--LOW--HIGH--LOW--HIGH--LOW.



Kondisi logic harus bersifat pasti, tidak ada kondisi lainnya selain 0 dan 1. Namun dalam prakteknya hal tersebut bisa saja terjadi, sehingga timbul suatu ketidakpastian yang sebenarnya tidak boleh terjadi. Sebagai gambaran, perhatikan gambar di bawah. Pada sebuah nodeMCU diberikan masukan sinyal digital melalui sebuah saklar (S).



Pada saat saklar berada pada posisi 0, input menerima sinyal logic 0 atau LOW (tegangan sebesar 0 volt yang berasal dari titik ground G). Bila sekarang saklar ditukar ke posisi 1, input menerima sinyal logic 1 atau HIGH (yang berasal dari tegangan sebesar 5 volt). Sampai sejauh ini semuanya tampak baik-baik saja, nodeMCU hanya menerima masukan 0 atau 1 saja sesuai dengan konsep yang telah kita pelajari di atas.


Akan tetapi tunggu dulu! Kondisi apa yang bisa anda katakan pada saat saklar S sedang mengalami pertukaran, lepas dari posisi 0 namun belum terhubung ke posisi 1? Itulah dimana suatu kondisi ketidakpastian terjadi. Seharusnya begitu saklar S lepas dari posisi 0, maka pada saat itu juga nodeMCU menerima masukan 1 secara seketika tanpa harus menunggu terhubungnya saklar S ke posisi 1. Bagaimana kita menyelesaikan masalah ini?

Resistor Pull-Down dan Pull-Up Eksternal

Sebagai solusi kita dapat memakai rangkaian sederhana yang terdiri dari tombol tekan (push button) dan sebuah Resistor yang keduanya dipasang secara seri.



Pada rangkaian yang pertama (kiri):

  • Selama tombol (S) masih belum ditekan, nodeMCU mendapatkan masukan logic 0 (tegangan sebesar 0 volt) melalui Resistor (R), yang mana Resistor tersebut 'menarik' titik input dari nodeMCU untuk terkoneksi ke ground (G). Fungsi resistor semacam ini sering disebut sebagai Resistor Pull-Down.
  • Begitu tombol (S) ditekan, nodeMCU mendapatkan masukan logic 1 (tegangan sebesar 5 volt) melalui tombol tersebut. Tegangan 5 volt cenderung menuju ke titik input daripada ke Resistor (R) karena resistor menghalanginya menuju ke G. 

Gambar rangkaian diatas adalah contoh pengoperasian tombol tekan (push button) dengan memakai resistor pull-down eksternal, dimana GPIO5 (pin D5) difungsikan sebagai titik masukan.bagi Wemos D1 Mini.

Pada rangkaian yang kedua (kanan):

  • Selama tombol (S) belum ditekan, nodeMCU mendapatkan masukan logic 1 (tegangan sebesar 5 volt) melalu Resistor (R), yang mana resistor akan 'menarik' titik input untuk terkoneksi ke catu 5 volt. Fungsi resistor semacam ini sering disebut sebagai Resistor Pull-Up.
  • Begitu tombol (S) ditekan, nodeMCU mendapatkan masukan logic 0 (tegangan sebesar 0 volt) melalui tombol tersebut.


Gambar rangkaian diatas merupakan contoh penggunaan resistor pull-up eksternal untuk mengoperasikan tombol tekan (push button), dimana GPIO1 (pin D1) difungsikan sebagai titik masukan bagi Wemos D1 Mini.


Resistor Pull-Down dan Pull-Up Internal

Pada kasus diatas, Resistor merupakan komponen eksternal yang dilibatkan pada pengoperasian tombol (push button) dalam pemberian masukan sinyal digital bagi nodeMCU. Cara lain yang dapat kita lakukan untuk hal yang sama seperti dt atas adalah dengan memanfaatkan resistor pull-down dan pull-up internal. NodeMCU menyediakan resistor pull-down internal dan resistor pull-up internal. Penggunaan keduanya dapat dilakukan melalui pemrograman.

Misalkan sebuah tombol tekan (push button) dipasang pada GPIO6 (pin D6) yang mana pin tersebut difungsikan sebagai titik input dengan melibatkan resistor pull-up internal, rangkaian terlihat seperti berikut ini:



Dan kode konfigurasinya ditulis seperti berikut:

void setup() {
   pinMode(6, INPUT PULLUP);
}

Sekarang misalkan yang digunakan adalah resistor pull-down internal, maka rangkaiannya akan terlihat seperti ini:



Dan kode konfigurasinya ditulis seperti berikut ini:

void setup() {
   pinMode(6, INPUT PULLDOWN);
}


Post a Comment