Arduino ile Buton Kullanımı

Merhaba bu yazı dizimizde, buton kullanımına bakacağız, başlıkta Arduino ile yazmış olsakta; devrelerde, mikroişlemcilerde hatta dilediğiniz her yerde aynı yöntemle kullanabilirsiniz. Direnç bağlama yöntemi ile isimlendirilien pull-up ve pull-down etkinliği 10k ohmluk direnç ile gerçekleştirilir. Direnç kullanılmayan buton kullanımlarında ise butona basıldıktan sonra, hatta kalan enerji butona basılmasa bile basılıyormuş gibi davranır, direnç kullanarak bu enerji sönümlenir, bu iki yönteme ek olarak Arduino’nun dahili pull-up fonksiyonunuda işleyeceğiz.

1253

Pull Down Direnç

Düğmeye basıldığında gerilim kaynağıyla Arduino’nun girişi kısa devre olur. Elinizi düğmeden çektiğinizde hat üzerinde hâlâ enerji kalır. Bu enerji düğmeye basılmadığı durumunda bile Arduino’nun düğmeye basılmış gibi davranmasına neden olur. Bu enerjinin yok edilmesi için hat genellikle 10K ohm’luk bir direnç ile toprağa bağlanır. Bu dirence pull down direnç denir.

Pull-Up Direnç

Düğmeye basılmadığı durumlarda Arduino’nun giriş pini 5 volt düzeyindedir. Düğmeye basıldığında akım, Arduino’nun giriş pini yerine doğrudan toprağa ulaşmaktadır. Böylece pull-down direnç sistemini tam tersi çalışmaktadır. Arduino düğmeye basıldığında 0, düğmeye basılmadığında 1 değerini görmektedir. Pull-up direnci kullanma amacımız ise, düğmeye basıldığında toprak ve besleme hattının direkt olarak kısa devre olmasını engellemektir. Pull-down dirençte olduğu gibi pull-up dirençlerde genellikle 10K ohm olur.

Arduino Dahili Pull-Up Direnci

Bu fonksiyonu kullanmak için pinMode() fonksiyonunda INPUT_PULLUP kullanmamız gerekiyor, Arduino ve AVR çiplerin de 20k ohm ve 50k ohm arasında pull-up direnci bulunur, bu sayede direnç kullanmadan aynı işlemi yapabiliriz.

Arduino ile Buton Kullanımı pull up direnç,arduino ile buton kullanımı

Arduino Dahili Pull-Up Kodu

const int butonpin = 4;
const int ledPin = 8;
int butdurumu = 0;
void setup()

{
    pinMode(ledPin, OUTPUT);
    pinMode(butonPin, INPUT_PULLUP);
}

void loop()
{
    butdurumu = digitalRead(butonpin); //buton basma kontrolü
    if (butdurumu == LOW) //butona basılırsa
    {
        digitalWrite(ledPin, HIGH); //LED AÇIK
        delay(3000); //3 saniye bekle
        digitalWrite(ledPin, LOW); //LED KAPALI
    }
}