Apa yang Anda miliki disebut Floating
pin. Pin Input Digital sangat sensitif terhadap perubahan, dan kecuali didorong secara positif ke satu kondisi (Tinggi atau Rendah), akan mengambil kapasitansi liar dari sumber terdekat, seperti papan tempat memotong roti, jari manusia, atau bahkan udara. Setiap kabel yang terhubung akan bertindak seperti antena kecil dan menyebabkan kondisi input berubah. Dan maksud saya setiap kawat, jejak di papan, kawat ke papan tempat memotong roti, pin papan tempat memotong roti, bahkan pin logam dari IC itu sendiri.
Ini menjadi referensi di halaman referensi Arduino:
Jika pin tidak terhubung ke apa pun, digitalRead () dapat mengembalikan TINGGI atau RENDAH (dan ini dapat berubah secara acak).
Jika Anda melihat Tutorial Pin Digital Arduino :
Ini juga berarti, bahwa pin input dengan tidak ada yang terhubung ke mereka, atau dengan kabel yang terhubung ke mereka yang tidak terhubung ke sirkuit lain, akan melaporkan perubahan acak dalam keadaan pin, mengambil suara listrik dari lingkungan, atau secara kapasitif menghubungkan keadaan dari pin terdekat.
Seringkali berguna untuk mengarahkan pin input ke kondisi yang diketahui jika tidak ada input. Ini dapat dilakukan dengan menambahkan resistor pullup (ke + 5V), atau resistor pull-down (resistor ke ground) pada input, dengan 10K menjadi nilai umum. Ada juga resistor pullup 20K yang nyaman dibangun ke dalam chip Atmega yang dapat diakses dari perangkat lunak. Resistor penarik bawaan ini diakses dengan cara berikut.
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
Resistor tarikan yang lemah ini memaksa keadaan pin input ke kondisi yang diketahui, dan mudah ditimpa oleh tegangan input yang lebih kuat, seperti koneksi langsung ke ground atau + 5v.