Kod Ara

Dört Tuşlu Tuş Takımı için Arduino Kodu ve Video

Dört Tuşlu Tuş Takımı için Arduino Kodu ve Video

Bu eğitimde, Arduino ile dört tuşlu bir tuş takımını nasıl kullanacağımızı öğreneceğiz. Bu proje, birden fazla butona ihtiyaç duyduğunuz ancak kullanılan kablo sayısını en aza indirmek istediğiniz uygulamalar için özellikle kullanışlıdır. Tuş takımını belirli bir şekilde bağlayarak, sekiz kablo yerine sadece beş kablo ile işlevsel bir kurulum elde edebiliriz.

4 key flixable keypad

Dört tuşlu tuş takımı, toplam kablo sayısını azaltan ortak bir bağlantıya sahip olduğu için kablo bağlantı sürecini basitleştirir. Her tuş, Arduino'ya belirlenmiş pinler üzerinden bağlanarak kolay etkileşim ve kontrol sağlar. Bu kılavuz, tuş takımının kablo bağlantısını, kodunu ve beklenen davranışını kapsayacaktır; böylece projeyi başarıyla tekrarlayabilirsiniz (videoda 02:30'da).

Donanım Açıklaması

Bu projenin ana bileşenleri dört tuşlu bir tuş takımı ve bir Arduino kartıdır. Tuş takımı dört buton içerir ve her buton Arduino'ya iki kablo ile bağlanır: biri ortak kablo, diğeri her buton için özel bir kablo. Bu kurulum, karmaşıklığı en aza indirirken basit bağlantılara olanak tanır.

Arduino, buton basımlarını dijital girişler kullanarak yorumlar ve stabil okumalar sağlamak için dahili pull-up dirençlerine güvenir. Bir butona basıldığında, ilgili pini toprağa bağlar ve Arduino'nun durum değişikliğini algılamasını sağlar.

Veri Sayfası Detayları

ÜreticiJenerik
Parça numarası4 Tuşlu Tuş Takımı
Mantık/IO voltajı5 V
Besleme voltajı5 V
Tuş sayısı4
Ortak pin tipiAktif-düşük
Buton direnci1 kΩ (tipik)
PaketEsnek PCB
Notlar / varyantlarBirden fazla düzende mevcuttur

  • Her buton iki bağlantı gerektirir: biri buton için, diğeri ortak toprak için.
  • Dahili pull-up dirençlerini kullanmak kablo bağlantısını basitleştirir ve bileşen sayısını azaltır.
  • Doğru çalışma için ortak pinin toprağa bağlı olduğundan emin olun.
  • Yanlış okumaları önlemek için yazılımda buton titreşimini (debounce) giderin.
  • Geri bildirim için basit bir seri çıktı ile buton işlevselliğini test edin.

Kablo Bağlantı Talimatları

Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad

Dört tuşlu tuş takımını Arduino'ya bağlamak için şu adımları izleyin:

  • İlk tuş kablosunu Arduino'daki 2 pinine bağlayın.
  • İkinci tuş kablosunu 3 pinine bağlayın.
  • Üçüncü tuş kablosunu 4 pinine bağlayın.
  • Dördüncü tuş kablosunu 5 pinine bağlayın.
  • Tuş takımından gelen ortak kabloyu Arduino'daki toprak pinine bağlayın.

Gevşek bağlantılardan kaçınmak için her kabloyu güvenli bir şekilde bağladığınızdan emin olun. Sorun yaşarsanız, her bağlantıyı videoda gösterilen pin atamalarıyla karşılaştırarak kontrol edin (videoda 04:15'te).

Kod Örnekleri ve Açıklaması

Aşağıdaki kod parçası, tuş takımı için pinleri başlatır ve bunları giriş olarak ayarlar:

#define key1 2 // kablo 1'i pin 2'ye bağla
#define key2 3 // kablo 2'yi pin 3'e bağla
#define key3 4 // kablo 3'ü pin 4'e bağla
#define key4 5 // kablo 4'ü pin 5'e bağla

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP); // pini giriş olarak ayarla
 pinMode(key2, INPUT_PULLUP); // pini giriş olarak ayarla
 pinMode(key3, INPUT_PULLUP); // pini giriş olarak ayarla
 pinMode(key4, INPUT_PULLUP); // pini giriş olarak ayarla   
}

Yukarıdaki kodda, her tuş ilgili bir pin numarasıyla tanımlanır. INPUT_PULLUP modu, butona basılmadığında pinlerin yüksek okumasını sağlayarak buton basım algılamasını basitleştirir.

Loop fonksiyonu her tuşun durumunu okur ve basıldığında ilgili mesajı yazdırır:

void loop() {
  int key1S = digitalRead(key1); // key1'e basılıp basılmadığını oku
  int key2S = digitalRead(key2); // key2'ye basılıp basılmadığını oku
  int key3S = digitalRead(key3); // key3'e basılıp basılmadığını oku
  int key4S = digitalRead(key4); // key4'e basılıp basılmadığını oku 

  if(!key1S) {
    Serial.println("key 1 is pressed");
  }
  if(!key2S) {
    Serial.println("key 2 is pressed");
  }
  // key3 ve key4 için ek kod...
  delay(100);
}

Bu kod bölümü, her tuşun durumunu kontrol eder ve bir tuşa basıldığında seri monitöre bir mesaj yazdırır. delay(100), birden fazla basımın hızlı bir şekilde algılanmamasını sağlayarak bir titreşim giderme (debounce) etkisi sağlar.

Gösterim / Beklentiler

Kablo bağlantısını başarıyla yapıp kodu Arduino'nuza yüklediğinizde, seri monitörde hangi tuşa basıldığını belirten mesajların görüntülenmesini beklemelisiniz. Bir tuşa basmak "key 1 is pressed" çıktısını verecek ve diğer tuşlar için de benzer şekilde devam edecektir. Mesajlar görünmüyorsa, kablo bağlantılarınızı kontrol edin ve ortak kablonun toprağa bağlı olduğundan emin olun.

Ters bağlantılara dikkat edin, çünkü bu beklenmeyen davranışlara yol açabilir. Kullanılan pinlerin kodunuzda tanımlananlarla eşleştiğinden emin olun (videoda 06:45'te).

Video Zaman Damgaları

  • 00:00 - Giriş
  • 02:30 - Kablo Bağlantı Açıklaması
  • 04:15 - Pin Atamaları
  • 06:45 - Tuş Takımını Test Etme

Görseller

4 key flixable keypad
4 key flixable keypad
Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad
50-Arduino Code for 4 key keypad
Dil: C++
++
/*
 * This is the Arduino code for a 4-key keypad.
 * Watch the video for details and demo: https://youtu.be/BiOh_Z2N7kk
 * 
 * Written by Ahmad Shamshiri for the Robojax Video channel,
get code, wiring diagram and resources at  www.Robojax.com/RJT37
 * Date: December 28, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
// Recorded December 28, 2017 for Robojax.com

#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP);// set pin as input
 pinMode(key2, INPUT_PULLUP);// set pin as input
 pinMode(key3, INPUT_PULLUP);// set pin as input
 pinMode(key4, INPUT_PULLUP);// set pin as input   
}

void loop() {
  int key1S = digitalRead(key1);// read if key1 is pressed
  int key2S = digitalRead(key2);// read if key2 is pressed
  int key3S = digitalRead(key3);// read if key3 is pressed
  int key4S = digitalRead(key4);// read if key4 is pressed 
 // Code written for Robojax.com video tutorial
     if(!key1S){
      Serial.println("key 1 is pressed");
     }
     if(!key2S){
      Serial.println("key 2 is pressed");
     }
     if(!key3S){
      Serial.println("key 3 is pressed");
     }
     if(!key4S){
      Serial.println("key 4 is pressed");
     }          
     delay(100);
}

İhtiyacın olabileceğini düşünüyor

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Arduino Kütüphaneleri (zip)