İçindekiler:

Arduino İle Sayısal Tuş Takımlarını Kullanma: 4 Adım
Arduino İle Sayısal Tuş Takımlarını Kullanma: 4 Adım

Video: Arduino İle Sayısal Tuş Takımlarını Kullanma: 4 Adım

Video: Arduino İle Sayısal Tuş Takımlarını Kullanma: 4 Adım
Video: Arduino Dersleri #34 Tuş Takımı (4*4) Kullanımı (Membran Tuş Takımı) 2024, Kasım
Anonim
Arduino ile Sayısal Tuş Takımlarını Kullanma
Arduino ile Sayısal Tuş Takımlarını Kullanma

Sayısal tuş takımları, projeleriniz için çeşitli arayüzler için basit bir son kullanıcı alternatifi sağlayabilir. Veya çok fazla düğmeye ihtiyacınız varsa, inşaat konusunda size çok zaman kazandırabilirler. Arduino kütüphanesini kullanarak bunları birbirine bağlayacağız ve ardından kullanışlı bir örnek çizimle bitireceğiz.

1. Adım: Başlarken

Başlarken
Başlarken

Tuş takımlarınızı nereden alırsanız alın, veri sayfasını alabildiğinizden emin olun - çünkü bu, kabloları bağlarken hayatı kolaylaştıracaktır. Örneğin - bu adımdaki görüntü.

Veri sayfası, tuş takımındaki hangi pinlerin veya konektörlerin satırlar ve sütunlar için olduğunu söyleyeceğinden önemlidir. Veri sayfanız yoksa - satırlar ve sütunlar için hangi ilgili kişilerin olduğunu manuel olarak belirlemeniz gerekir.

Bu, bir multimetrenin (buzzer) süreklilik işlevi kullanılarak yapılabilir. Bir probu pin 1'e, diğer probu pin 2'ye yerleştirerek başlayın ve tuşlara tek tek basın. Bir düğmenin devreyi ne zaman tamamladığını not edin, ardından bir sonraki pime geçin. Yakında hangisinin hangisi olduğunu anlayacaksınız. Örneğin, örnekte tuş takımı pinleri 1 ve 5 "1" düğmesi içindir, 2 ve 5 "4" için vs…

Bu noktada lütfen klavye Arduino kütüphanesini indirip kurun. Şimdi basit örneklerde her iki tuş takımının da nasıl kullanılacağını göstereceğiz.

2. Adım: 12 Haneli Tuş Takımı Kullanma

Küçük siyah tuş takımını, Arduino Uno uyumlu ve I2C arayüzlü bir LCD'yi görüntüleme amacıyla kullanacağız. LCD'niz yoksa, metni her zaman bunun yerine seri monitöre gönderebilirsiniz.

LCD'nizi bağlayın ve ardından tuş takımını Arduino'ya aşağıdaki şekilde bağlayın: Tuş takımı sıra 1'den Arduino'ya dijital 5 Tuş takımı sıra 2'den Arduino'ya dijital 4 Tuş takımı sıra 3'ten Arduino'ya dijital 3 Tuş takımı sıra 4'ten Arduino'ya dijital 2 Tuş takımı sütunu 1'den Arduino'ya dijital 8 Tuş takımı sütunu 2'ye Arduino dijital 7Keypad sütun 3'ten Arduino dijital 6'ya Tuş takımınız bizimkinden farklıysa, çizimdeki satırları şuradan not edin:

// tuş takımı tipi tanımı

RowPins[ROWS] ve colPins[COLS] dizilerindeki sayıları değiştirmeniz gerektiğinden. Tuş takımının satır ve sütunlarına bağlı dijital pin numaralarını sırasıyla giriyorsunuz.

Ayrıca dizi tuşları, belirli bir düğmeye basıldığında LCD'de görüntülenen değerleri saklar. Bunu, kullanılan fiziksel tuş takımıyla eşleştirdiğimizi görebilirsiniz, ancak bunu neye ihtiyacınız varsa değiştirebilirsiniz. Ancak şimdilik, satır/pin numarası tahsislerinden memnun kaldığınızda aşağıdaki taslağı girin ve yükleyin:

/* Sayısal tuş takımı ve I2C LCD https://tronixstuff.com Arduino için Tuş Takımı kitaplığını kullanır https://www.arduino.cc/playground/Code/Keypad, Mark Stanley, Alexander Brevig */

#include "Tuş takımı.h"

#include "Wire.h" // I2C LCD için #include "LiquidCrystal_I2C.h" // I2C bus LCD modülü için // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd(0x27, 16, 2); // 16 karakter ve 2 satırlık bir ekran için LCD adresini 0x27 olarak ayarlayın

// tuş takımı tipi tanımı

const bayt SATIRLAR = 4; //dört satır const bayt COLS = 3; //üç sütun karakter anahtarları[ROWS][COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

bayt satırPinleri[SATIR] = {

5, 4, 3, 2}; //tuş takımının satır pin çıkışlarına bağlan bayt colPins[COLS] = { 8, 7, 6}; // tuş takımının sütun pinlerine bağlanın

int sayı=0;

Tuş takımı tuş takımı = Tuş takımı(makeKeymap(tuşlar), rowPins, colPins, ROWS, COLS);

geçersiz kurulum()

{ lcd.init(); // lcd lcd.backlight()'ı başlat; // LCD arka ışığını aç }

boşluk döngüsü()

{ karakter tuşu = tuş takımı.getKey(); if (anahtar != NO_KEY) { lcd.print(key); say++; if (sayım==17) { lcd.clear(); say=0; } } }

Ve eskizin sonuçları videoda gösteriliyor. Şimdi, bir çizimde kullanılmak üzere düğmeye basmaların nasıl verilere dönüştürülebileceğini görebilirsiniz. Şimdi bu gösterimi daha büyük tuş takımı ile tekrarlayacağız.

3. Adım: 16 Haneli Tuş Takımı Kullanma

Daha büyük 4×4 tuş takımını, Arduino Uno uyumlu ve I2C LCD'yi Akafugu'dan görüntüleme amacıyla değiştireceğiz. Yine, bir LCD'niz yoksa, metni her zaman bunun yerine seri monitöre gönderebilirsiniz. LCD'yi bağlayın ve ardından tuş takımını Arduino'ya aşağıdaki şekilde bağlayın:

  • Arduino dijital 5'e tuş takımı satırı 1 (pim sekiz)
  • Tuş takımı satırı 2 (pim 1), Arduino dijital 4'e
  • Arduino dijital 3'e tuş takımı satırı 3 (pim 2)
  • Arduino dijital 2'ye tuş takımı satırı 4 (pim 4)
  • Arduino dijital 9'a tuş takımı sütunu 1 (pim 3)
  • Tuş takımı sütunu 2 (pim 5), Arduino dijital 8'e
  • Arduino dijital 7'ye tuş takımı sütunu 3 (pim 6)
  • Tuş takımı sütunu 4 (pim 7) Arduino dijital 6'ya

Şimdi taslak için - daha büyük sayısal tuş takımı için nasıl yer verdiğimize dikkat edin: dizideki ekstra sütun karakter tuşlarıdizideki ekstra pim colPinsve bayt COLS = 4.

/* Sayısal tuş takımı ve I2C LCD https://tronixstuff.com Arduino için Tuş Takımı kitaplığını kullanır https://www.arduino.cc/playground/Code/Keypad, Mark Stanley, Alexander Brevig */

#include "Tuş takımı.h"

#include "Wire.h" // I2C LCD için #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const bayt SATIRLAR = 4; //dört satır

const bayt COLS = 4; //dört sütun karakter anahtarları[ROWS][COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins[SATIR] = { 5, 4, 3, 2}; //tuş takımının satır pin çıkışlarına bağlan bayt colPins[COLS] = { 9, 8, 7, 6}; //tuş takımının sütun pin çıkışlarına bağlanın int count=0;

Tuş takımı tuş takımı = Tuş takımı(makeKeymap(tuşlar), rowPins, colPins, ROWS, COLS);

geçersiz kurulum()

{ Serial.başlangıç(9600); lcd.başla(16, 2); lcd.print("Tuş takımı testi!"); gecikme(1000); lcd.clear(); }

boşluk döngüsü()

{ karakter tuşu = tuş takımı.getKey(); if (anahtar != NO_KEY) { lcd.print(key); Seri.print(anahtar); say++; if (sayım==17) { lcd.clear(); say=0; } } }

Ve yine yukarıdaki krokinin sonuçlarını videoda görebilirsiniz.

Şimdi, sayısal tuş takımının muhtemelen en çok talep edilen kullanımı olan bir örnek proje için…

Adım 4: Örnek Proje – PIN Erişim Sistemi

Sayısal bir tuş takımı için en çok talep edilen kullanım, Arduino'ya tuş takımına girilen doğru bir sayıya göre bir şey yapması talimatının verildiği "PIN" tarzı bir uygulama gibi görünüyor. Aşağıdaki çizim, önceki çizim için açıklanan donanımı kullanır ve altı haneli bir PIN giriş sistemi uygular.

Gerçekleştirilecek eylemler, doğruPIN() ve yanlışPIN() işlevlerine eklenebilir. Ve PIN, char PIN[6] dizisinde ayarlanır. Biraz ekstra çalışma ile kendi PIN değiştirme işlevinizi de oluşturabilirsiniz.

// 16 haneli sayısal tuş takımı ile PIN anahtarı// https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const bayt SATIRLAR = 4; //dört satır

const bayt COLS = 4; //dört sütun karakter anahtarları[ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; byte rowPins[SATIR] = { 5, 4, 3, 2}; //tuş takımının satır pin çıkışlarına bağlan bayt colPins[COLS] = { 9, 8, 7, 6}; // tuş takımının sütun pinlerine bağlanın

Tuş takımı tuş takımı = Tuş takımı(makeKeymap(tuşlar), rowPins, colPins, ROWS, COLS);

karakter PIN[6]={

'1', '2', 'A', 'D', '5', '6'}; // gizli (!) sayı karakter denememiz[6]={ '0', '0', '0', '0', '0', '0'}; // karşılaştırma için kullanılır int z=0;

geçersiz kurulum()

{ Serial.başlangıç(9600); lcd.başla(16, 2); lcd.print("PIN Kilidi"); gecikme(1000); lcd.clear(); lcd.print("PIN Giriniz…"); }

void CorrectPIN() // doğru PIN girilmişse bunu yapın

{ lcd.print("* Doğru PIN *"); gecikme(1000); lcd.clear(); lcd.print("PIN Giriniz…"); }

geçersiz PIN() // yanlış PIN girilirse bunu yapın

{ lcd.print(" * Tekrar deneyin *"); gecikme(1000); lcd.clear(); lcd.print("PIN Giriniz…"); }

geçersiz checkPIN()

{ int doğru=0; int i; for (i = 0; i < 6; i++) {

if (deneme==PIN)

{ doğru++; } } if (doğru==6) { doğruPIN(); } başka { yanlışPIN(); }

for (int zz=0; zz<6; zz++) { deneme[zz]='0'; } }

geçersiz readKeypad()

{ karakter tuşu = tuş takımı.getKey(); if (anahtar != NO_KEY) { deneme[z]=anahtar; z++; anahtar(anahtar) { durum '*': z=0; kırmak; durum '#': z=0; gecikme(100); // ekstra geri dönüş için lcd.clear(); kontrolPIN(); kırmak; } } }

boşluk döngüsü()

{ readKeypad(); }

Proje videoda gösterilmiştir.

Artık Arduino sistemlerinizle on iki ve on altı düğmeli tuş takımlarını kullanma olanağına sahipsiniz. Yakın gelecekte tuş takımlarını kullanarak faydalı ve ilginç bir şey bulacağınıza eminim.

Bu gönderi size pmdway.com tarafından getirildi - dünya çapında ücretsiz teslimat ile üreticiler ve elektronik meraklıları için her şey.

Önerilen: