İlk olarak, şimdilik 100 Ω direnci unutun. Düğmenin çalışması için gerekli değildir, bir programlama hatası yapmanız durumunda sadece bir koruma olarak vardır.
- Düğmeye basılırsa P2 doğrudan +5 V'ye bağlanır, böylece "1" gibi yüksek bir seviye olarak görülür.
- Düğme bırakılırsa +5 V artık sayılmaz, bağlantı noktası ile toprak arasında sadece 10 kΩ bulunur.
Bir mikrodenetleyicinin G / Ç pini giriş olarak kullanıldığında yüksek empedanstır, yani veri sayfasına göre maksimum olacak olan genellikle 1 uA'dan çok daha az olan küçük bir kaçak akım akar. Tamam, diyelim ki 1 µA. Daha sonra Ohm Yasasına göre, bu direnç boyunca 1 µA 10 kΩ = 10 mV voltaj düşüşüne neden olacaktır . Yani giriş 0,01 V olacaktır. Bu düşük bir seviye veya bir "0" dır. Tipik bir 5 V mikrodenetleyici 1,5 V'tan düşük herhangi bir seviyeyi düşük olarak görecektir. x
Şimdi 100 is direnç. Pim çıkışını yanlışlıkla yaptıysanız ve düşük ayarladıysanız, düğmeye basmak kısa devreye neden olur: mikrodenetleyici pim üzerinde 0 V, aynı pim üzerinde +5 V anahtarını ayarlar. Mikrodenetleyici bundan hoşlanmaz ve IC hasar görebilir. Bu durumlarda 100 is direnç akımı 50 mA ile sınırlamalıdır. (Bu hala biraz fazla, 1 kΩ direnç daha iyi olurdu.)
Bir giriş pimine (düşük kaçak dışında) akım akmayacağından, direnç boyunca neredeyse hiç voltaj düşüşü olmayacaktır.
10 kΩ, aşağı çekme veya aşağı çekme için tipik bir değerdir. Daha düşük bir değer size daha düşük bir voltaj düşüşü sağlar, ancak 10 mV veya 1 mV çok fazla fark yaratmaz. Ancak başka bir şey var: düğmeye basılırsa direnç boyunca 5 V vardır, bu nedenle 5 V / 10 kΩ = 500 µA akım akacaktır. Bu, herhangi bir soruna neden olmayacak kadar düşüktür ve düğmeyi uzun süre basılı tutmayacaksınız. Ancak düğmeyi, uzun süre kapalı olabilecek bir anahtarla değiştirebilirsiniz. Daha sonra 1 kΩ aşağı çekmeyi seçerseniz, anahtar kapalı olduğu sürece direnç boyunca 5 mA'ya sahip olursunuz ve bu biraz atıktır. 10 kΩ iyi bir değerdir.
Bir çekme direnci elde etmek için bunu baş aşağı çevirebileceğinizi ve düğmeye basıldığında toprağa geçebileceğinizi unutmayın.
Bu, mantığınızı tersine çevirir: düğmeye basmak size "1" yerine "0" verecektir, ancak çalışma aynıdır: düğmeye basmak 0 V girişini yapar, düğmeyi serbest bırakırsanız direnç +5 V seviyesine giriş (ihmal edilebilir voltaj düşüşüyle).
Genellikle bu şekilde yapılır ve mikrodenetleyici üreticileri bunu dikkate alır: çoğu mikrodenetleyici, yazılımda etkinleştirebileceğiniz veya devre dışı bırakabileceğiniz dahili çekme dirençlerine sahiptir. Dahili pull-up'ı kullanırsanız, sadece düğmeyi toprağa bağlamanız yeterlidir, hepsi bu. (Bazı mikro denetleyiciler de yapılandırılabilir aşağı çekmelere sahiptir, ancak bunlar daha az yaygındır.)