Saya telah mengatur UNO Arduino saya dengan 4 kabel input, mereka terhubung ke port 10, 11, 12, 13, mereka terhubung ke papan tempat memotong roti saya dengan apa pun kecuali kabel.
Kode saya hanyalah:
Serial.println(digitalRead(13));
Serial.println(digitalRead(12));
Serial.println(digitalRead(11));
Serial.println(digitalRead(10));
Masalahnya adalah, setelah saya menyambungkan pin ke 5V atau 3V3 sebentar, bacaan akan mulai gila seperti: 1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 Tanpa rasa! Tanpa kabel yang terhubung langsung ke VCC saya (5V atau 3V3) bacaannya terus berubah, padahal seharusnya nol!
Apakah Arduino saya mati? Bagaimana saya bisa memperbaikinya?
arduino
floating-pin
Guilherme Garcia da Rosa
sumber
sumber
Jawaban:
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 Anda melihat Tutorial Pin Digital Arduino :
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.
sumber
pinMode(pin, INPUT_PULLUP)
? Mudah diingat, dan sangat sulit untuk dikacaukan.Ini normal. Kecuali jika input terhubung ke sesuatu, itu akan menunjukkan TINGGI atau RENDAH atau terus berubah. Ini dijelaskan oleh halaman referensi digitalRead di situs web Arduino.
Pin input berperilaku dengan beberapa kapasitansi kecil, jadi menghubungkan secara singkat ke 3V3 atau 5V akan mengisi daya kapasitansi. Anda mungkin menemukan efek yang sama menggunakan jari telanjang.
Anda dapat menghindari masalah dengan menambahkan resistor nilai besar antara pin dan GND.
Tanyakan pada diri sendiri mengapa Anda mengharapkan nol?
sumber