Bu butonlar keypad üzerinde mi?
Keypadin hangi butonları bu görevi görüyor?
Benim kodda gördüğüm kadarıyla sadece # tuşu tanımlı. Onun da içinde hem buton ileri var hemde buton geri var. Ayrıca orada iki tane while döndüsü var ama ne işe yaradığı belli değil. Koşul belirtilmiş ama her hangi bir işlem yapmıyor.
Olayı basite indirgemek için aşağıdaki fonksiyonları ve o fonksiyonları çağırdığın kısımları komple sil. # tuşuna basıldığında yapılacak işlemler kısmına
Yaz ve # tuşuna her bastığın da Serial monitörden 1234 rakamını okuyabiliyor musun kontrol et. Bu çalıştığında bir sonraki adıma geçebiliriz.Kod:int sayi = 1234; Serial.print(sayi);
Bütün tuşlara sırayla bas. Her hangi birinde algılarsa o tuşu # olarak görüyor demektir.merhaba
dediğinizi uyguladım serial monitörde # tuşuna bastığımda çıkan birşey olmadı
8628 eklentisine bak8628 eklentisine bak
Bütün tuşlara sırayla bas. Her hangi birinde algılarsa o tuşu # olarak görüyor demektir.
Yoksa başka bir sıkıntı var.
Void setup kısmında Serial.begin(115200); var mı? Yoksa ekle, varsa serial monitörün sağ altında baud yazar. Orasıda 115200 seçili olmalı.bütün tuşları da denedim şimdi ekranda rakamlar değişiyor fakat monitöre yazdırmıyor
Void setup kısmında Serial.begin(115200); var mı? Yoksa ekle, varsa serial monitörün sağ altında baud yazar. Orasıda 115200 seçili olmalı.
Bunları kontrol et. Hala birşey yazmıyorsa lcd ye yazdırmayı deneyelim.
Tuş kombinasyonu da hata var.şimdi yazdı monitöre
5. tustan sonra basılanların hepsi monitörde yazı yazdırıyor
ekran görüntüsünde ki yazılanlar # tuşuna basınca çıkan yazılar
8629 eklentisine bak
Tuş kombinasyonu da hata var.
Şuan Sadece resimde kırmızı ile çizdiğim if içine giriyor.
Yeşil ile çizdiğim yerde tuşlar belirtilmiş. Oradaki kombinasyonu değiştirerek doğru kombinasyonu bulmak lazım.
Öncelikle o yeşil alanı 123A456B789C*0#D olacak şekilde değiştirip dene.
8630 eklentisine bak
Aşağıdaki linkteki videoyu izle ve konunun o mesajdan aşağısına oku. Orada i2C scanner diye bir uygulama var. Onu kullanarak keypadin kodunu tespit etmeyi dene. 0x20 gibi bir kod türetecek. O kodu en yukarıdada keypad ayarı olarak gireceksin. Şu anda 0x20 yazıyor o ayarda. Yeni bulduğun kod. Farklı ise değiştireceksin.
NodeMcu + LCD + Keypad + I2c + PCF8574
Bu gün gelen pcf8574 ile beraber seriyi tamamladım. Dün i2c seri haberleşme modülünü alarak 2x16 lcd ekran pinlerine lehimlemiştim. Bu gün de gelen pcf8574 seri haberleşme modülünü 4x4 keypadimin pinlerine lehimleyerek nodemcu'nun pinlerini yeterli hale getireceğim. Normalde i2c seri haberleşme...mekatronik.org
Tamam o zaman tuş kombinasyonu da sorun var.
else if(idx == #)
bu şekilde tanımlıydı.Tamam o zaman tuş kombinasyonu da sorun var.
Sen mesela keypad de 5 ten sonrası çalışıyor diyorsun ya. Onun sebebi 5'e kadar olan sayıların *#ABD ye tanımlı olmaları. Sen bu tuşları tanımlamadığın için sana çalışmıyor gibi geliyor.
Şimdi yapman gereken bu tuşları aynı # deki gibi tanımlamak. Mesela karede nasıldı?else if(idx == #)
bu şekilde tanımlıydı.
Altına aynen bu şekilde * A B C D tuşlarını da tanımla. Her birinin içine de serial monitöre yazı yazacak şekilde bir çıktı yaz.
Mesela D harfi için ekrana D yazdırmak istedin. Sen keypad den D harfine bastığın da ekrana C yazıyorsa yukarıda 123A456B789C*0#D tanımladığımız yerdeki D harfini silip yerine C yazacaksın. Ve artık Sadece C ye bastığında ekrana C yazacak. Tüm bu kontrolleri her tuş için tek tek yapmalısın.
Umarım doğru anlatmışımdır. Yazarken beynim yandı
Yanlış bir şey yapmışsın. Eski haline al. Benim yukarıda yazdığımı adım adım yap.I2C de ki keypad bağlantısını değiştirerek birşeyler meydana çıktı.
1 den 9 a kadar bastığımda monitörde saçma rakamlar yazıyor
0 bastığımda 0 yazıyor
# bastığımda 1234 yazıyor
abcd ve * bastığımda ise tepki vermiyor
Yanlış bir şey yapmışsın. Eski haline al. Benim yukarıda yazdığımı adım adım yap.
Sonuç olarak şuan tüm tuşlar istediğin gibi çalışıyor mu?Dediğiniz şekilde yaptım ama olmadı baştan
Sonra keyped bağlantısıni resimde ki gibi yaptım dediğiniz şekilde A B C D X ve # tuşlarına tanımlamaları yaptım monitörden tanimladigum rakamları gördüm8634 eklentisine bak
Tanimladiklarim evet diğerleri kafasına göre takiliyorSonuç olarak şuan tüm tuşlar istediğin gibi çalışıyor mu?
Sadece rakamlar mı kaldı peki?Tanimladiklarim evet diğerleri kafasına göre takiliyor
Evet ama 0 a hiç bişey yapmadan 0 çıkıyorSadece rakamlar mı kaldı peki?
Basmadan çıkıyorsa keypad sorunudur. Ama her hangi bir düzeltme yapmadan direk sıfıra basınca sıfır çıkıyorsa "oynadı güldü, yerini buldu" diyebiliriz.Evet ama 0 a hiç bişey yapmadan 0 çıkıyor
Toplam = 0;
yapana kadar aktarır durur. Şimdi # ifinin içineSerial.print(toplam) ;
toplam = 0;
Basmadan çıkıyorsa keypad sorunudur. Ama her hangi bir düzeltme yapmadan direk sıfıra basınca sıfır çıkıyorsa "oynadı güldü, yerini buldu" diyebiliriz.
Rakamları şöyle test edebilirsin;
# tuşunu Enter gibi yapılandır. Yani rakamı girip # ye basınca serial monitöre girdiğin rakamı yazdırsın. Onun için de, oradaki ilk if'in içinde rakam toplama yapar ve "toplam" değişkenine aktarır. Mesela 1'e basınca toplam değişkenine 1 aktarır, peşinden 2' ye basarsan toplam değişkenine 12 aktarmış olursun. Taki senToplam = 0;
yapana kadar aktarır durur. Şimdi # ifinin içine
Yaz. toplam değişkenin adına dikkat et. Büyün - küçük harf duyarlıdır. Ben ezbere yazıyorum. Sen oradaki in aynısını yaz. Bunu yaptıktan sonra keypad den 1 e bas ve peşinden # ye bas. Böylece serial monitör de 1 rakamını görmen gerekir. Her rakam girip # ye bastığında girdiğin rakamı serial monitörde okumalısın. Rakamları da bu şekilde test et. Eğer 1'e basıp, monitörde 2 okuyorsan yukarıdaki kodlama da 1 yazan yere 2 yazarak düzelt.Kod:Serial.print(toplam) ; toplam = 0;