Mengenal Perbedaan Resistor Pull-Up dengan Pull-Down


Ketika menggunakan suatu switch, push button, sebagai data input ke microcontroller terkadang terjadi masalah nilai tidak terbaca. Nilai input tersebut mengambang, float state, antara high dan low. Untuk mengatasi masalah tersebut dapat digunakan resistor pull-up atau pull-down.
Pada dasarnya baik resistor pull-up maupun pull-down, keduanya sama-sama berfungsi untuk menghindari suatu node mengalami nilai yang mengambang, float, antara low dan high.
Kasus pertama, dimana sebuah switch yang satu node terhubung dengan sumber tegangan dan satu node lainnya terhubung dengan pin input microcontroller akan cenderung mengalami masalah kondisi float untuk keadaan low. Pada saat ditekan microcontroller akan menerima data input bernilai high dari switch tersebut, akan tetapi pada saat tidak ditekan nilainya undefined, cenderung float, antara low dengan high.
Kasus kedua, dimana sebuah switch yang satu node terhubung dengan ground dan satu node lainnya terhubung dengan pin input microcontroller akan cenderung mengalami masalah kondisi float untuk keadaan high. Pada saat ditekan microcontroller akan menerima data input bernilai low dari switch tersebut, akan tetapi pada saat tidak ditekan nilainya undefined, cenderung float, antara low dengan high.

Resistor Pull-Down
Untuk kasus pertama, dimana nilai float terjadi pada kondisi low, perlu digunakan resistor pull-down. Resistor pull-down akan membuat nilai float menjadi nilai low. Dengan menambahkan sebuah resistor menuju ground, yang dirangkai paralel dengan jalur yang menuju input pin microcontroller.
Setelah menggunakan resistor pull-down, untuk kasus pertama, bila switch ditekan akan memberikan data input bernilai logika high pada microcontroller. Sementara pada saat tidak ditekan, nilai yang diterima microcontroller tidak lagi float, melainkan telah bernilai low.
Cocok digunakan untuk aplikasi dengan kondisi default switch (saat tidak ditekan) bernilai low. Untuk external interrupt Arduino menggunakan switch dengan resistor pull-down, disarankan menggunakan mode operasi interrupt RISING. Dimana interrupt akan dijalankan saat switch ditekan data input berubah dari low menjadi high. Begitu switch tidak ditekan, akan bernilai low.

Resistor Pull-Up
Untuk kasus pertama, dimana nilai float terjadi pada kondisi high, perlu digunakan resistor pull-up. Resistor pull-up akan membuat nilai float menjadi nilai high. Dengan menambahkan sebuah resistor menuju sumber tegangan, yang dirangkai paralel dengan jalur yang menuju input pin microcontroller.
Setelah menggunakan resistor pull-up, untuk kasus kedua, bila switch ditekan akan memberikan data input bernilai logika low pada microcontroller. Sementara pada saat tidak ditekan, nilai yang diterima microcontroller tidak lagi float, melainkan telah bernilai high.
Cocok digunakan untuk aplikasi dengan kondisi default switch (saat tidak ditekan) bernilai high. Untuk external interrupt Arduino menggunakan switch dengan resistor pull-up, disarankan menggunakan mode operasi interrupt FALLING. Dimana interrupt akan dijalankan saat switch ditekan data input berubah dari high menjadi low. Begitu switch tidak ditekan, akan bernilai high.

Kesimpulan
Baik resistor pull-up maupun pull-down, keduanya sama-sama digunakan untuk mencegah terjadinya nilai float, undefined state, yang akan diolah untuk data input microcontroller. Perbedaan keduanya lebih pada aplikasi yang digunakan. Resistor pull-up digunakan untuk mencegah nilai float pada kondisi high dengan menambahkan sebuah resistor pada jalur sumber tegangan dan paralel dengan jalur input ke microcontroller. Sedangkan resistor pull-down digunakan untuk mencegah nilai float pada kondisi low dengan menambahkan sebuah resistor pada alur ke ground dan paralel dengan jalur input ke microcontroller.

Lihat juga mengenai cara membaca nilai resistor.

Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment.