Dalam dunia digital, biasanya kondisi nyala ditandai dengan angka “1” atau “High” sedangkan kondisi mati ditandai dengan angka “0” atau “Low”. Tanda sinyal “High” atau “Low” ini biasa dapat digunakan oleh mikrokontroler sebagai nilai input banding.

Namun, nilai input yang biasa diterima oleh mikrokontroler ini kadang dapat mengalami suatu masalah yang cukup umum yaitu floating logic atau logika mengambang. Masalah ini dapat muncul karena adanya pengaruh listrik statis disekitar sirkuit sehingga mikrokontroler tidak dapat mengenali input “High” atau “Low” secara jelas dan penerimaan/pemasukan input pun menjadi error.

“Mengambang” atau floating berarti input tidak terhubung ke Vcc atau GND. Dalam kondisi ini, input dapat menangkap noise dari lingkungan sekitar ataupun rangkaian lain sehingga input yang akan diterima oleh mikrokontroler tidak stabil dan akan berubah-ubah antara level logika “High” dan “Low” secara acak. Contoh nyatanya adalah saat kita menggunakan button untuk memberi input ke mikrokontroler. Setelah kita berhenti menekan button agar input yang dibaca oleh mikrokontroler adalah Low, nyatanya input yang dibaca mikrokontroler bisa saja masih berubah secara acak antara “High” dan “Low” karena noise elektromagnetik dari perangkat lain atau dari kabel yang berfungsi sebagai antena. Inilah yang menyebabkan mikrokontroler salah mengenali input yang seharusnya “Low” karena tidak ditekan, malah menjadi “High”. Salah satu solusi untuk mengatasi masalah ini adalah dengan menggunakan pull down resistor dan pull up resistor.

Pull Down Resistor

Pull Down Resistor adalah rangkaian yang dapat menjaga input yang diterima mikrokontroler agar selalu memiliki level logika “Low” (0) ketika switch terbuka atau button tidak ditekan (tidak ada sinyal aktif yang menghubungkannya ke GND).

Pull up resistor dan pull down resistor keduanya menggunakan konsep voltage divider. Konsep pull down resistor berarti resistor dan button dipasang seri dengan posisi salah kaki button akan terhubung ke VCC dan salah satu kaki resistor akan terhubung ke GND (button dekat VCC dan resistor dekat GND). Kemudian ditengah-tengah button dan resistor akan dihubungkan dengan sebuah kabel atau jumper yang nantinya akan dihubungkan ke input mikrokotroler.

Berdasarkan rumus voltage divider,  dengan R2 adalah komponen yang salah satu kakinya terhubung ke GND dan R1 adalah komponen yang salah satu kakinya terhubung ke VCC. Dengan rangkaian pull up resistor, berarti bila button ditekan atau switch tertutup, maka input yang akan diterima oleh mikrokontroler adalah  (0 karena button), yang berarti  atau sama dengan . Bila button tidak ditekan atau switch terbuka yang berarti tidak ada sinyal aktif juga, pull-down resistor akan menarik (pull) tegangan pada pin input ke level rendah yaitu GND sehingga nilai input akan terus bernilai “Low” atau “0”. Konsep ini dapat mengatasi masalah floating karena rangkaiannya akan memastikan bahwa bila button ditekan atau switch tertutup, input pasti akan terhubung ke tegangan positif (Vcc), sehingga tegangan pada pin input menjadi tinggi, melampaui resistansi pull-down dan menghasilkan nilai “High” atau “1”. Bila button tidak ditekan atau switch terbuka, maka input pasti akan terhubung ke GND menghasilkan nilai “Low” atau “0” sehingga input tidak akan mengambang antara “High” dan “Low” lagi.

Pull Up Resistor

Pull Up Resistor adalah rangkaian yang dapat menjaga input yang diterima mikrokontroler agar selalu memiliki level logika “High” (1) ketika switch terbuka atau button tidak ditekan (tidak ada sinyal aktif yang menghubungkannya ke GND). Kenapa bisa bernilai “High” atau “1”?

Konsep pull up resistor berarti resistor dan button dipasang seri dengan posisi salah kaki resistor akan terhubung ke VCC dan salah satu kaki button akan terhubung ke GND (resistor dekat VCC dan button dekat GND). Kemudian seperti rangkaian pull down resistor sebelumnya, ditengah-tengah button dan resistor akan dihubungkan dengan sebuah kabel atau jumper yang nantinya akan dihubungkan ke input mikrokotroler.

Berdasarkan rumus voltage divider  dengan rangkaian pull up resistor, berarti bila button ditekan atau switch tertutup, maka input yang akan diterima oleh mikrokontroler adalah  (0 karena button), yang berarti 0 V. Bila button tidak ditekan atau switch terbuka yang berarti tidak ada sinyal aktif, maka pull-up resistor akan menarik (pull) tegangan pada pin input ke level tinggi (Vcc) sehingga nilai input akan terus bernilai “High” atau “1”. Konsep ini dapat mengatasi masalah floating karena rangkaiannya akan memastikan bahwa input pasti akan terhubung ke VCC bila button tidak ditekan atau switch terbuka dan input pasti akan terhubung ke GND bila button ditekan atau switch tertutup sehingga input tidak akan mengambang antara “High” dan “Low” lagi.

Referensi:

https://maestronik.com/ketahui-arti-dan-fungsi-resistor-pull-up-dan-pull-down/

https://electronzap.com/how-to-learn-basic-electronics/using-fixed-resistor-basics/pull-up-or-down-resistor-basics/