Pada dasarnya fungsi resistor pull up dan pull down adalah untuk mengatasi kondisi floating (mengambang antara low dan high) yang terjadi pada suatu rangkaian. Sebagai contoh 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.
BACA JUGA : Amplifier mini IC LM386,LM380, LM383
Pengertian Resistor
Resistor adalah komponen dasar elektronika yang digunakan untuk membatasi jumlah arus yang mengalir dalam suatu rangkaian. Komponen ini bersifat resitif dan umumnya terbuat dari bahan karbon. Resistor biasanya di desain dengan lambang R dan satuan resistansi disebut Ohm yang dilambangkan dengan simbol Ω (Omega).
Fungsi lain resistor adalah sebagai pembatas arus listrik, dapat dijadikan sebagai pembagi dari tegangan listrik dan sebagai penurun dari tegangan arus listrik.
Resistor Pull Up dan Resistor Pull Down
Dalam rangkaian digital dikenal sinyal “high” dan “low” atau “1” dan “0”. Pada umumnya rangkaian digital memiliki sumber tegangan (VCC) sebesar 5 volt atau 3,3 volt. Pada rangkaian digital 5 volt sinyal “high” adalah 5 volt dan sinyal “low” adalah 0 volt, sedangkan pada rangkaian digital 3,3 volt sinyal “high” adalah 3,3 volt dan sinyal “low” adalah 0 volt. Tentunya sinyal “high” tidak harus persis 5 volt ata 3,3 volt, tergantung dari toleransi rangkaian dan IC (Integrated Circuit) yang digunakan.
Pada suatu rangkaian digital, 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.
Resistor Pull Up
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. Dengan pull-up resistor, pin input akan terbaca high saat tombol tidak ditekan. Dengan kata lain, sejumlah kecil arus mengalir antara VCC dan pin input (tidak ke ground), sehingga pin input dibaca mendekati VCC.
Perhatikan gambar diatas. Ketika tombol ditekan, maka akan menghubungkan pin input langsung ke ground. Arus mengalir melalui resistor ke ground, sehingga pin input akan terbaca dalam keadaan low. Jika tidak ada resistor, jika switch ditekan maka VCC akan terhubung langsung dengan ground, sehingga arus yang sangat besar akan mengalir antara VCC dan ground. Kondisi ini disebut short circuit. Kondisi ini dapat menyebabkan kerusakan fisik suplai daya dan rangkaian itu sendiri. Dengan adanya resistor maka arus yang sangant bear tersebut akan dapat dibatasi.
Resistor Pull Down
Pull down digunakan untuk mengatasi floating pada kondisi low. Perhatikan rangkaian pull down resistor berikut :
Pada rangkaian diatas, saat switch button ditekan pin input akan membaca high dan pin input akan membaca low saat switch button dilepas. Pilihan antara pull up atau pull down tergantung pada rangkaian yang ingin ditambahkan. Pada rangkaian diatas untuk mengatasi floating harus ditambahkan pull down. Penambahan pull up tetap akan mengatasi floating, akan tetapi saat switch ditekan atau pun tidak pin input akan tetap membaca high, sehingga mikrokontroller tidak mengetahui apakah swith ditekan atau tidak.
Penentuan Nilai Resistor Pull up atau Pull down
Umumnya nilai 10 kΩ cukup untuk sebagian besar rangkaian. Tetapi untuk rangkaian digital yang kompleks dan “high speed”, nilai resistor standar tidak bisa digunakan. Idealnya switch memiliki resistansi seri nol dan pin input mikrokontroller memiliki impedansi input tak hingga. Pada kenyataanya rangkaian switch memiliki resistansi seri yang tidak nol dan input pin mikrokontroller memiliki impedansi input tidak tak hingga. Contohnya pada gambar dibawah resistansi seri switch adalah 100 ohm dan impedansi internal pin input mikrokontroller adalah 1 MΩ. Level tegangan ketika switch ditutup adalah 0,05 volt dan ketika switch dibuka adalah 4,95 volt.
Beberapa hal berikut harus dipertimbangkan ketika memilih nilai resistor untuk “pull up” atau “pull down” :
Level tegangan setelah ditambahkan Resistor
Level tegangan ini harus dipertimbangkan karena chip digital seperti mikrokontroller biasanya memiliki batas level tegangan input yang dianggap sebagai sinyal low. Umumnya sinyal low harus sedekat mungkin dengan nol volt dan sinyal high harus sedekat mungkin dengan tegangan supply.
Oleh karena itu, dalam memilih nilai resistor “pull up” atau “pull down” disarankan untuk menghitung berapa jangkauan nilai resistor yang dibutuhkan untuk memenuhi syarat level tegangan sinyal high dan low.
Kecepatan rangkaian yang digunakan
Jika rangkaian yang di “pull up” atau “pull down” diperlukan untuk mengubah sinyal dari low ke high atau dari high ke low dengan cepat, misalnya untuk keperluan switching, komunikasi, PWM, nilai resistor untuk “pull up” dan “pull down” sangat menentukan apakah rangkaian tersebut bisa berfungsi dengan baik.
Hal ini terjadi karena adanya komponen kapasitor parasitik tidak diinginkan yang ada pada setiap komponen. Untuk lebih jelasnya dapat dilihat pada gambar diatas. Komponen switch, pin input mikrokontroller, dan jalur dari switch ke pin input semuanya mempunyai komponen kapasitor parasitik. Komponen kapasitor parasitik ini dapat memperlambat perubahan sinyal di jalur tersebut. Hal ini disebabkan karena sifat kapasitor yang tidak dapat merubah tegangan pada dirinya secara tiba-tiba. Seperti pada cara pemilihan resistor untuk menyesuaikan dengan batas tengangan input chip digital, terdapat dua cara yaitu metode “trial and error” dan metode kalkulasi.
Metode “trial dan error” untuk memilih nilai resistor pada rangkaian kecepatan tinggi adalah dengan menggunakan osiloskop. Jalur yang diukur harus dibiarkan switching dengan kecepatan yang diinginkan, lalu sinyal di jalur tersebut dilihat dengan osiloskop. Pada layar osiloskop dapat dilihat apakah level tegangan low dapat mendekati 0 volt dan apakah level tegangan high dapat mendekati tegangan suplai pada kecepatan tinggi.
Sedangkan metode kalkulasi adalah dengan menggunakan rumus dibawah ini. Pertama-tama, kita harus mengukur atau menebak berapa nilai kapasitansi parasitik dari datasheet chip, lalu menghitung berapakah kecepatan maksimum rangkaian yang diperlukan. Lalu nilai resistor dapat dihitung dengan rumus ini.
R adalah nilai resistor “pull up” atau “pull down” yang diinginkan, C adalah nilai kapasitansi parasitik dan f adalah frekuensi switching rangkaian yang diinginkan.
Konsumsi energi rangkaian
Misalnya suatu rangkaian yang kompleks menggunakan 100 “pull up” resistor dimana setiap resistor bernilai 1 kΩ. Jika tegangan suplai rangkaian tersebut adalah 5 volt, maka konsumsi daya satu resistor adalah 5 / 1 kΩ = 5 mA. Sehingga konsumsi daya 100 “pull up” resistor adalah 500 mA. Walau konsumsi daya resistor “pull up” dan “pull down” terlihat kecil, jika diakumulasi konsumsi daya resistor tersebut bisa signifikan. Banyak contoh rangkaian di dunia nyata yang menggunakan jumlah resistor “pull up” atau “pull down” yang signifikan. Contohnya rangkaian LED matriks, mikrokontroller dengan jumlah pin yang banyak, FPGA, dll. Oleh karena itu, setelah mempertimbangkan point nomor 1 dan 2 diatas dan mendapatkan jangkauan nilai resistor yang bisa digunakan, pilih nilai resistor paling besar untuk menghemat energi yang digunakan.
Menghitung Nilai Pull Up atau Pull Down
Sebagai contoh jika kita ingin membatasi arus sekitar 1mA saat tombol ditekan pada rangkaian pull up atau pull down, sedangkan tegangan yang digunakan pada rangkaian adalah 5 Volt (VCC = 5V). Berapa nilai resistor yang akan kita gunakan? Untuk menghitung nilai pull-up resistor menggunakan Hukum Ohm sebagai berikut:
V = I . R
Mengacu pada rumus diatas maka rumus yang kita gunakan adalah:
VCC = (arus yang mengalir pada R1) x R1
Berdasarkan persamaan diatas diperoleh rumus :
R1 = VCC/(arus yang mengalir pada R1)
Sehingga hasilnya seperti dibawah ini:
R1 = 5V/0,001A = 5.000 Ω = 5Kω
Kita harus selalu mengkonversi semua unit satuan tegangan ke Volt, arus ke Ampere dan tahanan ke Ohm sebelum melakukan perhitungan (misalnya 1mA = 0,001A dan 5.000Ω = 5kΩ). Maka nilai pull-up resistor yang digunakan adalah sebesar 5kΩ
Kesimpulan
- Baik resistor pull-up maupun pull-down, keduanya sama-sama digunakan untuk mencegah terjadinya nilai float.
- 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.
- Resistor pull-down digunakan untuk mencegah nilai float pada kondisi low dengan menambahkan sebuah resistor pada jalur ke ground dan paralel dengan jalur input ke microcontroller