Rangkaian Button
Last updated
Last updated
Jika kita mengkonfigurasi sebuah pin GPIO di mikrokontroler sebagai input, dan pin tersebut tidak terhubung dengan apapun, maka pin tersebut berada dalam kondisi floating. Kondisi floating yaitu berarti logika yang terbaca tidak terdefinisi dengan jelas, bisa logika 0 atau 1. Ataupun bisa juga terjadi dimana level tegangannya berada di antara dan . Electrical noise dari mesin-mesin besar dapat menyebabkan pin floating berubah-ubah nilainya.
Oleh karena itu, kita perlu menjaga input pin tersebut pada nilai logika 0 atau 1 dengan resistor pull-down atau pull-up. Ketika kita menggunakan resistor pull-down, maka pin tersebut terhubung ke GND, maka pin tersebut memiliki nilai 0. Ketika kita menggunakan resistor pull-up, maka pin tersebut terhubung ke tegangan supply, maka pin tersebut memiliki nilai 1.
Rangkaian dengan resistor pull-down disebut juga rangkaian active-high, sedangkan dan rangkaian dengan resistor pull-up disebut juga rangkaian active-low.
Pada rangkaian active-high, button dihubungkan di antara tegangan supply dan GPIO input. Berikut ini cara kerja rangkaian active-high:
Ketika button pada posisi open, maka tegangan terbaca pada GPIO adalah 3.3µV (logika LOW).
Keitka button pada posisi close, maka tegangan terbaca pada GPIO adalah 3.3V (logika HIGH).
Kondisi di dalam chip mikrokontroller ketika GPIO dikonfigurasi sebagain input dapat dimodelkan dengan resistor yang nilainya sangat besar (1 GΩ). Sehingga, untuk menghitung nilai tengangan pada GPIO input dapat menggunakan rumus pembagi tegangan.
Pada rangkaian active-low, button dihubungkan di antara GPIO input dan GND. Berikut ini cara kerja rangkaian active-low:
Ketika button pada posisi open, maka tegangan terbaca pada GPIO adalah 3.3V (logika HIGH).
Ketika button pada posisi close, maka tegangan terbaca pada GPIO adalah 0V (logika LOW).
Kondisi di dalam chip mikrokontroller ketika GPIO dikonfigurasi sebagain input dapat dimodelkan dengan resistor yang nilainya sangat besar (1 GΩ). Sehingga, untuk menghitung nilai tengangan pada GPIO input dapat menggunakan rumus pembagi tegangan.
Nilai resistor yang biasa digunakan yaitu . Untuk design yang membutuhkan low power, maka nilai resistor yang biasa digunakan yaitu . Nilai resistor yang kecil disebut dengan istilah strong pull-down/pull-up, dan nilai resistor yang besar disebut dengan istilah weak pull-down/pull-up.