İçindekiler:
- 1. Adım: Başlarken
- 2. Adım: 12 Haneli Tuş Takımı Kullanma
- 3. Adım: 16 Haneli Tuş Takımı Kullanma
- Adım 4: Örnek Proje – PIN Erişim Sistemi
Video: Arduino İle Sayısal Tuş Takımlarını Kullanma: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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
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:
Bir Arduino'dan Diğerine Sayısal Veri Gönderme: 16 Adım
Bir Arduino'dan Diğerine Sayısal Veri Gönderin: Giriş David Palmer, CDIO Tech. Aston Üniversitesi'nde. Hiç bir Arduino'dan diğerine bazı sayılar göndermeniz gerekti mi? Bu Eğitilebilir Tablo nasıl olduğunu gösterir. S'ye göndermek için bir dizi sayı yazarak çalıştığını kolayca test edebilirsiniz
CircuitPython ile 4x4 Tuş Takımı Kullanma: 4 Adım
CircuitPython ile 4x4 Tuş Takımı Kullanma: Bu ucuz tuş takımı, CircuitPython projelerinize basit bir sayısal giriş yöntemi sunar. Adafruit ItsyBitsy M0 ekspres ile kullanacağım. Şunlara ihtiyacınız olacak: Tuş Takımı - benimki 4x4ItsyBitsy M0 Express veya benzeri bir boardMu Editor kurulu
Ubidots-ESP32+Sıcaklık ve Nem Sensörünü Kullanma-Ubidots-Kullanma-Uyarı Oluşturma: 9 Adım
Ubidots-ESP32+Sıcaklık ve Nem Sensörü-Ubidots-Kullanma-Uyarı Oluşturma: Bu eğitimde, Sıcaklık ve nem sensörünü kullanarak farklı sıcaklık ve nem verilerini ölçeceğiz. Bu verileri Ubidots'a nasıl göndereceğinizi de öğreneceksiniz. Böylece farklı uygulamalar için her yerden analiz edebilirsiniz. Ayrıca e-posta oluşturarak
4-Bit Sayısal Sonuç Göstergeli Devre Ekleme: 9 Adım
Dijital Sonuç Ekranlı 4-Bit Ekleme Devresi: Bu, yedi segmentli ekran, yedi segmentli sürücü ve AND, OR, NOT ve İki 4 bitlik sayıyı birbirine ekleyen ve sonuçları döndüren EXOR kapıları. Bilişim Teknoloji
Ubidots+ESP32 ve Titreşim Sensörünü Kullanma-Uyarı Oluşturma-Kullanma: 8 Adım
Ubidots+ESP32 ve Titreşim Sensörünü Kullanma-Uyarı Oluşturma: Bu projede, Ubidots-titreşim sensörünü ve ESP32'yi kullanarak makine titreşimi ve sıcaklığı hakkında bir e-posta uyarısı oluşturacağız. motorlu araçlardaki makineler ve bileşenler. Titreşim ben