Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •   Free for Newly Opened Institutions   •  

Anaokulu veya eğitim kurumunuz için kodlama eğitimi mi arıyorsunuz? Hemen İletişime Geç
Arduino

Çoklu Buton: Altı Tuşu Birlikte Okumak

2 dk okuma

Bir kumanda ya da oyun konsolu için birden çok buton nasıl okunur? Pin tasarrufu ve aynı anda basma sorununu anlattık.

Tek buton bir şeyi açıp kapatır. Bir yön kumandası, bir menü ya da küçük bir oyun konsolu istiyorsanız birden çok butonu birlikte okumanız gerekir.

En basit yol: her butona bir pin

Altı butonu altı pine bağlamak en anlaşılır çözümdür. Her biri INPUT_PULLUP ile tanımlanır ve döngüde tek tek okunur. Avantajı açıktır: iki butona aynı anda basılması sorun olmaz, hangisinin basılı olduğunu ayrı ayrı bilirsiniz.

Dezavantajı da açıktır: altı pin, Uno'nun kullanılabilir dijital pinlerinin üçte birine yakındır.

Pin tasarrufu: analog okuma

Butonları farklı değerlerde dirençlerle bir gerilim bölücüye bağlayıp tek bir analog pinden okuyabilirsiniz. Her butona basıldığında pin farklı bir gerilim görür:

  1. Basılı buton yok — pin en yüksek değeri okur.
  2. Birinci buton — belirli bir aralık.
  3. İkinci buton — başka bir aralık.

Kodda okunan değeri aralıklara bölerek hangi butonun basıldığını anlarsınız. Altı butonu tek pine indirmek mümkündür.

Bu yöntemin bedeli şudur: iki butona aynı anda basılırsa ortaya çıkan gerilim üçüncü bir butonunkine benzeyebilir. Yön tuşlarını çapraz kullanmak isteyen bir oyun için uygun değildir.

Matris yöntemi

Çok sayıda buton için satır-sütun matrisi kurulur: 16 buton, 4 satır ve 4 sütun ile 8 pinde okunur. Kart sırayla bir satırı etkinleştirip sütunları tarar.

Matriste iki tuşa aynı anda basmak genellikle çalışır; üç tuşta "hayalet tuş" sorunu çıkabilir — basılmayan bir tuş basılmış gibi görünür. Diyot eklemek bunu çözer.

Aynı anda birden çok tuş

Bir oyun kumandasında "yukarı + sağ" birlikte basılabilmelidir. Bunu isteyen bir tasarımda her butona ayrı pin vermek en güvenli yoldur; dirençli tek pin yöntemi bu ihtiyacı karşılayamaz.

Ara bir çözüm, sık kullanılan çapraz kombinasyonlara ayrı direnç değerleri ayırmaktır: yukarı, sağ ve "yukarı+sağ" üç ayrı aralık olur. Kombinasyon sayısı arttıkça aralıklar birbirine yaklaşır ve yöntem sınırına dayanır.

Tuş haritasını kodda tek yerde tutun

Hangi pinin hangi tuş olduğunu kodun içine dağıtmak, kablo düzeni değiştiğinde on ayrı satırı düzeltmek demektir. Bunun yerine tuşları tek bir dizi olarak tanımlayın; devrede bir tuşun yerini değiştirdiğinizde yalnız o diziye dokunursunuz.

Tek butonun temelleri ve zıplama sorunu için buton yazımıza bakabilir, ardından HipoCodes devre simülasyonunda çoklu okumayı deneyebilirsiniz.

Etiketler

  • buton takımı
  • çoklu buton
  • kumanda
  • arduino
  • robotik kodlama
  • elektronik

Bunlar da ilginizi çekebilir