Anlık (push) butonlar yalnızca basılı tutulduğu sürece kontak yapar, kalıcı (mandallı) butonlar ise her basışta konum değiştirir. Elektronik kartlarda en yaygın olanı küçük tact switch'lerdir; panellerde metal, ışıklı ya da plastik panel butonları, makinelerde ise endüstriyel 22 mm butonlar kullanılır. Butonlar NO (normalde açık) ya da NC (normalde kapalı) kontaklı olabilir. Arduino'ya bağlarken INPUT_PULLUP kullanılır ve buton arkını (zıplama) yazılımla ya da kondansatörle bastırmak gerekir.
Bir cihazı açmak, menüde ilerlemek ya da bir makineyi başlatmak... Buton, kullanıcıyla elektronik arasındaki en temel bağlantıdır. Ancak tact switch'ten endüstriyel panel butonuna kadar onlarca çeşit vardır ve her birinin bağlantısı farklıdır. Bu rehberde buton çeşitlerini ve Arduino ile doğru kullanımını anlatıyoruz.
Anlık ve kalıcı buton farkı
| Tür | Davranış | Kullanım |
|---|---|---|
| Anlık (momentary, push) | Yalnızca basılı tutulurken kontak yapar, bırakınca geri döner | Klavye, zil, menü, start-stop |
| Kalıcı (latching, mandallı) | Bir basışta açılır, ikinci basışta kapanır | Güç açma-kapama, mod seçimi |
Kalıcı bir davranış yazılımla da elde edilebilir: anlık bir butonun her basışında bir değişkeni tersine çevirmek yeterlidir.
Buton çeşitleri
- Tact switch: Kartlara lehimlenen küçük, anlık butonlar; ör. 6x6x14 mm 4 pinli tact switch. Üzerine renkli tact switch kapağı takılabilir.
- Buton modülleri: Pull-up direnci ve pinleri hazır kartlar; ör. Arduino buton switch modülü.
- Metal panel butonları: Paslanmaz, su ve darbeye dayanıklı; çoğu LED halkalı; ör. 19 mm ışıklı metal power buton.
- Oyun makinesi (arcade) butonları: Büyük, ışıklı ve dayanıklı; ör. 33 mm ışıklı oyun butonu.
- Endüstriyel panel butonları: 16, 19, 22 mm delikli panellere takılır; yeşil start, kırmızı stop, acil stop gibi; ör. 16 mm metal acil stop. Bağlantısı için acil stop rehberimize bakın.
NO, NC ve kontak terimleri
- NO (normalde açık): Basılmadan iletmez, basınca iletir.
- NC (normalde kapalı): Basılmadan iletir, basınca keser.
- COM: Ortak uç; NO ve NC kontaklar bu uca göre tanımlanır.
- 1NO+1NC: Butonda bir NO ve bir NC kontak bulunur; biri makineyi kontrol ederken diğeri bilgi sinyali verebilir.
4 pinli tact switch nasıl bağlanır?
4 pinli tact switch'in pinleri içeriden ikişer ikişer birbirine bağlıdır; butona basıldığında bu iki çift birleşir. Genellikle aynı kenardaki değil, karşılıklı (gövdenin uzun tarafındaki) pinler birbirine bağlıdır. Emin olmak için multimetrenin süreklilik kademesinde butona basmadan ve basarak pinleri ölçün. Breadboard'da tact switch, ortadaki boşluğun üzerine yerleştirilir; bkz. breadboard rehberi.
Buton Arduino'ya adım adım nasıl bağlanır?
- Bağlantı: Butonun bir ucunu Arduino'nun dijital pinine (ör. D2), diğer ucunu GND'ye bağlayın.
- Pull-up: Kodda pinMode(2, INPUT_PULLUP) kullanın. Dahili pull-up direnci sayesinde buton basılı değilken pin HIGH, basılıyken LOW okunur. Pull-up olmadan pin boşta kalır ve rastgele değerler okunur.
- Okuma: digitalRead(2) == LOW ise buton basılıdır.
- Zıplama (debounce): Mekanik kontaklar basıldığı anda birkaç milisaniye boyunca açılıp kapanır; tek basış birden fazla basış gibi okunabilir. Durum değiştikten sonra 20-50 ms bekleyip yeniden okumak ya da bir debounce kütüphanesi kullanmak bunu çözer. Donanım çözümü olarak butona paralel küçük bir kondansatör (ör. 100 nF) eklenebilir.
- Uzun basış: Basma süresini ölçerek kısa ve uzun basışa farklı işlevler verebilirsiniz.
Arduino'nun dijital girişlerinin temelini Arduino nedir rehberimizde anlattık.
Işıklı butonlar nasıl bağlanır?
Işıklı butonlarda kontak uçlarının yanında LED için iki ayrı uç (+ ve -) bulunur. LED gerilimi butonun üzerinde yazar (ör. 12V ya da 24V); bu gerilim için LED'in içinde direnç bulunur. 5V'luk bir Arduino ile 12V LED'li buton kullanırken LED, bir transistör ya da MOSFET üzerinden 12V kaynaktan yakılır; buton kontağı ise ayrı olarak Arduino girişine bağlanır.
Sık sorulan sorular
Tact switch ne demek?
Tact (tactile) switch, basıldığında hafif bir tık hissi veren küçük, anlık bir butondur. Elektronik kartlarda reset, menü ve kontrol butonu olarak kullanılır.
Buton neden birden fazla basış algılıyor?
Mekanik kontakların zıplaması (bounce) nedeniyle tek basış birkaç milisaniye içinde birden fazla açma-kapama oluşturur. Yazılımsal gecikme ya da kondansatörle debounce yapılmalıdır.
INPUT_PULLUP ne işe yarar?
INPUT_PULLUP, Arduino'nun içindeki pull-up direncini etkinleştirir. Bu sayede buton basılı değilken giriş kararlı biçimde HIGH olur ve harici direnç gerekmez.
Buton ne kadar akım taşır?
Tact switch'ler yalnızca sinyal düzeyinde çok küçük akımlar için tasarlanmıştır. Panel butonlarının kontak akımı üzerinde yazar; motor ve lamba gibi yükler bir röle ya da kontaktör üzerinden kontrol edilmelidir.
Kalıcı buton mu, anahtar mı?
Kalıcı butonlar basılarak konum değiştirir; anahtarlar ise kol, sürgü ya da rocker ile çevrilir. İşlev olarak benzerdirler; seçim kullanım şekline ve panel tasarımına göre yapılır.
Özet
- Anlık buton basılıyken, kalıcı buton her basışta konum değiştirerek çalışır.
- NO normalde açık, NC normalde kapalı kontaktır.
- 4 pinli tact switch'te pinler ikişer ikişer bağlıdır.
- Arduino'da INPUT_PULLUP kullanılır; basılınca LOW okunur.
- Kontak zıplaması debounce ile giderilir.
