Macademia'nın robotik ve mühendislik programı · ücretsiz seviye tespiti ve kişisel öğrenme yolu
Girdi

Keypad 4x4

16 tuşu 8 pinle okuyan matris tuş takımı. Satırlar ve sütunlar doğrudan Uno pinlerine bağlanır.

Laboratuvarda dene

Nasıl çalışır?

Tuş takımında her tuş bir satırla bir sütunu basıldığında birleştirir. 16 tuş için 16 tel yerine 4 satır ve 4 sütun, yani 8 tel yeter. Arduino satırları INPUT_PULLUP ile HIGH'ta bekletir, sütunları sırayla LOW yapar. Basılı tuşun sütunu LOW iken o tuşun satırı da LOW okunur; kesişen satır ve sütun tuşu ele verir.

Keypad kitaplığı bu taramayı ve sıçrama önlemeyi yapar. getKey() yeni basılan tuşu char olarak bir kez döndürür; basış yoksa '\0' döndürür.

İleri düzey: Diyotsuz bir matriste aynı anda üç tuşa basılırsa bir "hayalet" tuş algılanabilir, çünkü akım yanlış bir yoldan döner. Bu yüzden şifre girişi gibi tek tuşla çalışan işler matrisin en güvenli kullanımıdır. Laboratuvardaki parça aynı anda yalnız bir tuşu basılı sayar.

Laboratuvarda nasıl bağlanır?

NeredenNereye
Keypad R1, R2, R3, R4Uno D9, D8, D7, D6
Keypad C1, C2, C3, C4Uno D5, D4, D3, D2

Sağ paneldeki Basılı tuş listesinden bir tuş seçersin; seçilen tuş basılı sayılır, Yok dersen bırakılır. Bir tuşu listede seçili bırakmak onu basılı tutmaktır. Tuş haritası satır satır 1 2 3 A, 4 5 6 B, 7 8 9 C, * 0 # D biçimindedir.

Sık yapılan hatalar

  • Satır ve sütun pinlerini ters yazmak. Tuşlar yanlış harf verir ya da hiç algılanmaz. Her tuşu sırayla seçip seri monitörde ne yazdığına bak.
  • getKey() değerini denetlemeden kullanmak. Basış yokken '\0' döner; if (tus) ile süz.
  • Keypad pinlerini başka parçalara da vermek. D2-D9 bu hafta tuş takımına aittir; servo gibi parçalar başka pine taşınmalıdır.
  • delay() ile beklemek. Beklerken basılan tuşlar kaçabilir; millis() kullan.
  • Tuşu basılı bırakmayı unutmak. Laboratuvarda her basıştan sonra listeyi Yok'a al.
Esc
  • PanelAna sayfaSayfa
  • ModüllerTüm modüllerSayfa
  • ParçalarParça ansiklopedisiSayfa
  • Mühendislik yoluBüyükler için robotik: 128 parça, 7 seviyeSayfa
  • Robotik dersi (ESOF 323)Üniversite robotik dersi, 14 haftaSayfa
  • TestlerimMini testler ve puanlarSayfa
  • Blok atölyesiSerbest blok programlamaAraç
  • Devre laboratuvarıSanal Arduino ve devreAraç
  • Robot arenasıSanal robot sürüşüAraç
  • OyunlarBloklarla 8 öğretici oyunAraç
  • Mikro Kart atölyesiSanal LED kartı bloklarla programlaAraç
  • Robot atölyesiMikro Kart'ı robota tak, bloklarla görev yapAraç