Ketika sebuah tombol terhubung dalam konfigurasi itu, inputnya adalah apa yang disebut mengambang , yang berarti itu bukan 0 atau 1. Ketika tombol ditekan, terhubung ke ground, jadi itu pasti 0, tetapi ketika tidak ditekan, kami tidak tahu nilai pin.
Tarik Resistor
Kita perlu memasukkan apa yang disebut resistor "pull-up" untuk menarik sinyal ke logika 1 saat tombol tidak ditekan.
Gambar dari Sparkfun
Artinya adalah ketika tombol tidak ditekan, Arduino membaca logika 1. Ketika tombol ditekan, arus mengalir melalui resistor ke ground dan Arduino membaca logika 0.
Resistor Penarik Internal
Arduino juga memiliki resistor penarik internal sehingga Anda tidak perlu menambahkan komponen tambahan ke sirkuit Anda. Ada beberapa cara untuk menggunakan ini.
Anda harus melakukannya seperti ini:
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
Sekarang kita bisa melakukannya hanya dalam satu baris:
pinMode(pin, INPUT_PULLUP);
Ini memungkinkan resistor tarik 20k pada pin itu. Input tidak akan lagi mengambang ketika tombol tidak ditekan.
Catatan: Ini hanya berfungsi ketika ujung yang lain terhubung ke ground.