Pull-Up ve Pull-Down Direnç Nedir

Pull-up ve pull-down dirençleri çoğunlukla entegre ve mikro denetleyicilerin buton bağlı giriş pinlerinde olduğunu görürüz. Peki nedir bu pull-up ve pull-down olayı.

Önce türkçe çevirisini yaparsak, pull-up “yukarı çek”, pull-down ise “aşağı çek” manasına gelmektedir. Peki yukarı ve aşağı çektiğimiz şey nedir diye soracak olursanız olayı şu şekilde açıklamaya çalışayım.

Entegre ve mikro denetleyicilerin buton bağlı uçları pozitif ya da negatif ile tetiklenmektedir. Yani butona bastığımızda ilgili pine ya pozitif ya da negatif sinyal gelmektedir. Buraya kadar herşey normal. Butondan elimizi çektiğimizde ilgili pin boş kalacak. Bazı mikrodenetleyici ve entegreler boş kalan pini negatif olarak algılarken bazıları ise pozitif olarak algılamaktadır. İşte bu durumun önüne geçilmesi için negatif tetiklemeli devrelerde butondan elimizi çektiğimizde pinin otomatik olarak +5V olarak algılanması için pull-up, pozitif tetiklemeli devrelerede ise butondan elimizi çektiğimizde otomatik olarak 0V olarak algılanabilmesi için pull-down dirençleri kullanılır.

Pull-up ve pull-down direnç bağlantısı aşağıdaki görselde gösterilmiştir.

Çoğu mikrodenetleyicilerin bazı portlarında yazılımsal olarak ayarlanabilen pull-up ve pull-down özellikleri bulunmaktadır.

Örnek olarak PIC mikrodenetleyicisinin pull-up özellikli portunu ve nasıl kullanılacağını inceleyelim.

Örneğin PIC16F628 denetleyicisinin B portunda dışarıdan görünmeyen dahili bir pull-up bağlantısı vardır. Bu da demek oluyor ki, denetleyicinin B portuna bağlı pinleri Pull-Up direnci kullanmadan direkt buton bağlantısı yapabiliriz. Bunu yapabilmek için programlama sırasında projemizin başlık dosyasına port_B_pullups(); komutunu eklemeliyiz. Tüm pinlerdeki pull-up özelliğini kullanmak için parantezler arasına 0xFF sayısını yazacağız.

Örnek bağlantı ve kodumuz aşağıdaki gibi olacaktır.

Şema:

 

Kod:

 

Eğer dahili pull-up direncini kullanmayacak olsaydık, bağlantı şeklimiz aşağıdaki gibi olacaktı;

 

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir