
İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13

Ne zaman bir tuş takımı görsem, bir sürü pin ile geliyor, bu Arduino pinlerinizin büyük bir israfı, yani bir tuş takımını tek pinli çalıştırabilir miyiz?. Cevap burada.
Adım 1: Malzeme Listesi

Donanım:
01 Arduino UNO
02 Ekmek Tahtaları
I2C ile 01 LCD
16 Basmalı düğmeler
04 direnç 1.5 kΩ
04 direnç 620 Ω
04 direnç 220 Ω
08 direnç 100 Ω
01 direnç 1 kΩ
07 Atlama telleri
Yazılım:
PC'nizde kurulu Arduino IDE
Adım 2: Şematik ve Cicruit


Tüm fikir, sağdaki kabloyla toprağa dikey olarak ve diğer kabloyla (düğme kablosu) yatay olarak bağlanan 4 * 4 basma düğme matrisine ve 1.5 kΩ, 620Ω, 220Ω ve 100Ω dirençlerine sahip olmamızdır. 4 sıra, şematik olarak gösterildiği gibi dört adet 100Ω direnç ile bağlanır.
Bir düğmeye her bastığınızda devreyi kapatırsınız ve akım farklı bir yoldan ve farklı direnç zincirlerinden geçer, bu nedenle pim A0 her basma düğmesi için farklı bir analog okuma alır. Şimdi ihtiyacınız olan tek şey kodlama.
Adım 3: Kod
#Dahil etmek
#Dahil etmek
LiquidCrystal_I2C lcd(0x3f, 20, 4);
int Düğme = A0;
int okuma değeri;
geçersiz kurulum()
{
Seri.başla(9600);
lcd.begin();
pinMode(Düğme, GİRİŞ);
lcd.backlight();
lcd.print("Merhaba Dünya");
gecikme(2000);
lcd.clear();
lcd.print("Tek pinli 4*4 tuş takımı");
gecikme(2000); }
boşluk döngüsü()
{
okuma değeri = analogRead(Button);
Serial.println(okuma değeri);
if (readvalue==852){lcd.clear();lcd.print("A");}
else{ if (readvalue==763){lcd.clear();lcd.print("B");}
else{ if (readvalue==685){lcd.clear();lcd.print("C");}
else{ if (readvalue==965){lcd.clear();lcd.print("D");}
else{ if (readvalue==565){lcd.clear();lcd.print("9");}
else{ if (readvalue==614){lcd.clear();lcd.print("6");}
else{ if (readvalue==360){lcd.clear();lcd.print("3");}
else{ if (readvalue==335){lcd.clear();lcd.print("#");}
else{ if (readvalue==396){lcd.clear();lcd.print("8");}
else{ if (readvalue==349){lcd.clear();lcd.print("5");}
else{ if (readvalue==235){lcd.clear();lcd.print("2");}
else{ if (readvalue==279){lcd.clear();lcd.print("0");}
else{ if (readvalue==452){lcd.clear();lcd.print("7");}
else{ if (readvalue==271){lcd.clear();lcd.print("4");}
else{ if (readvalue==170){lcd.clear();lcd.print("1");}
else{ if (readvalue==92){lcd.clear();lcd.print("*");}else{}}}}}}}}}}}}}}}} }
Adım 4: Değerlerin Düzeltilmesi

Seri monitörü açtığınızda 1023 değerini gösterecek, bir düğmeye basarsanız size başka bir okuma verecektir, bu değerleri alıp kodda bazı değişiklikler yapmanız gerekir.
Adım 5: Eleştiri ve İncelemeden Sonra Proje

Hepimizin bilgimizi öğrenmek ve paylaşmak için burada olduğumuza şüphe yok, topluluktan bazı kişilerin çok yardımcı olan bazı yorumları sayesinde, projemde bazı ayarlamalar ve iyileştirmeler yapmaya karar verdim:
donanım:
Breadboard'larda kötü bağlantı sorununu önlemek için tüm bileşenleri bir PCB'de lehimlemeye karar verdim.
kod:
Bir arkadaşım bana bir yazılım geri tepme kullanmamı tavsiye etti ve programın bir okuma seçmesi biraz zaman almak için sadece bir döngü (örneğin "for" döngüsü), bu, çok fazla okuma yaptığı anlamına gelir (örneğimde 500) ancak sürer sadece sonuncusu.
for (i=1; i<= 500; i++) { // sadece 500'üncü analoğu alın
değer = analogRead(Button);} // bu biraz zaman ayırmaya ve kötü okumalardan kaçınmaya yardımcı olur
Onun sayesinde başka bir arkadaşım bana "okunan değeri" bir değil bir dizi değerle karşılaştırmamı tavsiye etti çünkü "okunan değer" aynı buton için çok fazla değer alıyor. Örneğin "A": 849, 850, 851 852, 853, 854, 855 yani 7 değer aralığıdır: bir eşik (852) ve sol ve sağ 3 değer. burada yapmamız gereken "readvalue" ile "852" ile "3" arasındaki farkın mutlak değerini karşılaştırmaktır.
if(abs(readvalue-852)<=8){lcd.clear();lcd.print("A");}
Adım 6: Bazı Lehimleme İşlerinden Sonra



7. Adım: Gerçek Anı

Gördüğünüz gibi program bazen düğmeleri karıştırıyor ama yine de çalışıyor, teoride devrede yanlış bir şey yok ama kodun daha fazla kalibrasyona ihtiyacı var.
8. Adım: Son
Umarım bu projeyi beğenirsiniz ve yapmaya çalışırsınız, belki benden daha iyisini yaparsınız.
Sorularınız varsa bana sorun, yorum bırakın ve beğendiyseniz bana oy vermeyi unutmayın.
Önerilen:
Tuş Takımı Servo Kilidi: 5 Adım

Tuş Takımı Servo Kilidi: Herkese merhaba, iyi bir gün geçirmeniz dileğiyle. Umarım değilse, bu eğitime ve bazı terapötik müziklere biraz açık fikirlilikle geri sarabilirsiniz. Programlama bir güçlük olabilir. Neyse ki, bu öğretici bir güçlük değil, bu yüzden belki de başarabilirsiniz
Arduino Mekanik Tuş Takımı: 5 Adım (Resimli)

Arduino Mekanik Tuş Takımı: Başka bir proje için pin pad'e ihtiyacım vardı, bu yüzden evde sahip olduğum parçalarla bir tuş takımı yapmaya karar verdim
Arduino Tuş Takımı 4x4 Eğitimi: 4 Adım (Resimlerle)

Arduino Tuş Takımı 4x4 Eğitimi: Tuş takımı girişi, arduino uno ve 4x4 tuş takımı tam kodu ile seri monitöre gösterildi
Alarm Tuş Takımı MQTT ESP8266: 4 Adım (Resimlerle)

Alarm Tuş Takımı MQTT ESP8266: Bu Talimatta size ev alarmımı etkinleştirmek ve devre dışı bırakmak için pille çalışan bir tuş takımını nasıl yaptığımı gösteriyorum. Gelecekte, içinde RFID okuyucu bulunan ve pille çalışmayan gelişmiş bir tane yapmayı planlıyorum. Ayrıca bir tuş takımı aracılığıyla okumayı planlıyorum
Tek Dokunuşla Tuş Takımı Ezici: 4 Adım (Resimlerle)

Tek Dokunuşla Tuş Takımı Ezici: Kapıyı her açmanız gerektiğinde bir kod yazarak değerli saniyelerinizi boşa mı harcıyorsunuz? Bu küçük 'aygıt' sizin için doğru tuşlara basarak süreci kolaylaştırır ve avucunuzun içine gizlenebilir, böylece elinizi tuş takımına ve - uygulama