Arduino Uno LCD keypad Shield ekranda yazı çıkmıyor

Av2xnn

Centipat
Katılım
24 Temmuz 2024
Mesajlar
468
Makaleler
10
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
Merhaba arkadaşlar bugünlerde ilgim Arduino'ya sardı, elimde bir adet ELEGOO markasının Arduino Uno R3 modeli var. LCD keypad Shield'i direkt olarak üzerine takıyorum, bilgisayardan kodu atıp tamamlıyorum outputtan bir hata almıyorum ama ekranda yazı çıkmıyor. Arka ve ön ışıklar olması gerektiği gibi yanıyor ekranın.
Kontrast ayarını da yaptım ama olmadı. Kodu aşağı kısma bırakıyorum, neden yazı çıkmadığını söylerseniz sevirinirm.

Kod:
#include <LiquidCrystal.h>

LiquidCrystal ekran(8, 9, 4, 5, 6, 7);

int basilan_tus = 0;
int okunan_deger = 0;

#define sag 0
#define yukari 1
#define asagi 2
#define sol 3
#define sec 4
#define yok 5

byte buton_bul()
{
 okunan_deger = analogRead(A0);
 if (okunan_deger > 1000)
 return yok;
 if (okunan_deger < 50)
 return sag;
 if (okunan_deger < 195)
 return yukari;
 if (okunan_deger < 380)
 return asagi;
 if (okunan_deger < 555)
 return sol;
 if (okunan_deger < 790)
 return sec;
}

void setup()
{
 ekran.begin(16, 2);
 ekran.setCursor(0, 0);
 ekran.print("Basilan Buton: ");
}

void loop()
{
 ekran.setCursor(0, 1);
 basilan_tus = buton_bul();

 switch (basilan_tus)
 {
 case sag:
 {
 ekran.print("sag ");
 break;
 }
 case sol:
 {
 ekran.print("sol ");
 break;
 }
 case yukari:
 {
 ekran.print("yukari");
 break;
 }
 case asagi:
 {
 ekran.print("asagi ");
 break;
 }
 case sec:
 {
 ekran.print("sec ");
 break;
 }
 case yok:
 {
 ekran.print("yok ");
 break;
 }
 }
}

Not: Kodu bir videodan aldım kendim yazmadım ayrıca keypad Shield eski olduğu için bozukta olabilir bilmiyorum.
 
Merhaba arkadaşlar bugünlerde ilgim Arduino'ya sardı, elimde bir adet ELEGOO markasının Arduino Uno R3 modeli var. LCD keypad Shield'i direkt olarak üzerine takıyorum, bilgisayardan kodu atıp tamamlıyorum outputtan bir hata almıyorum ama ekranda yazı çıkmıyor. Arka ve ön ışıklar olması gerektiği gibi yanıyor ekranın.
Kontrast ayarını da yaptım ama olmadı. Kodu aşağı kısma bırakıyorum, neden yazı çıkmadığını söylerseniz sevirinirm.

Kod:
#include <LiquidCrystal.h>

LiquidCrystal ekran(8, 9, 4, 5, 6, 7);

int basilan_tus = 0;
int okunan_deger = 0;

#define sag 0
#define yukari 1
#define asagi 2
#define sol 3
#define sec 4
#define yok 5

byte buton_bul()
{
 okunan_deger = analogRead(A0);
 if (okunan_deger > 1000)
 return yok;
 if (okunan_deger < 50)
 return sag;
 if (okunan_deger < 195)
 return yukari;
 if (okunan_deger < 380)
 return asagi;
 if (okunan_deger < 555)
 return sol;
 if (okunan_deger < 790)
 return sec;
}

void setup()
{
 ekran.begin(16, 2);
 ekran.setCursor(0, 0);
 ekran.print("Basilan Buton: ");
}

void loop()
{
 ekran.setCursor(0, 1);
 basilan_tus = buton_bul();

 switch (basilan_tus)
 {
 case sag:
 {
 ekran.print("sag ");
 break;
 }
 case sol:
 {
 ekran.print("sol ");
 break;
 }
 case yukari:
 {
 ekran.print("yukari");
 break;
 }
 case asagi:
 {
 ekran.print("asagi ");
 break;
 }
 case sec:
 {
 ekran.print("sec ");
 break;
 }
 case yok:
 {
 ekran.print("yok ");
 break;
 }
 }
}

Not: Kodu bir videodan aldım kendim yazmadım ayrıca keypad Shield eski olduğu için bozukta olabilir bilmiyorum.
Sorunun birkaç farklı sebebi olabilir. LCD Keypad Shield düzgün çalışıyor gibi görünüyor, çünkü ekranın arka ve ön ışıkları yanıyor. Ancak yazıların çıkmaması aşağıdaki nedenlerden kaynaklanabilir:

1. Kontrast Ayarı

Kontrast ayarının yanlış olması, yazıları görmemenize neden olabilir. Potansiyometreyi (genellikle ekran üzerindeki küçük bir mavi vida) dikkatlice çevirerek kontrastı yeniden ayarlayın.


2. Kod Sorunu

Kodda küçük bir hata olabilir. Yazılar ekranda sürekli güncellendiği için önceki yazılar silinmeyebilir. Bu durumda ekran karmaşık görünebilir. Her yazı yazılmadan önce ekranın ikinci satırını temizlemek faydalı olur. Şu satırı loop fonksiyonuna ekleyebilirsiniz:
Kod:
ekran.setCursor(0, 1);
ekran.print("              
ekran.setCursor(0, 1);

3. Pin Bağlantıları

Kodda tanımladığınız pinler, LCD Shield'inizle uyuşmayabilir. LCD Shield'ler genelde standart bir pin yapısına sahiptir, ancak modelinizin belgelerini kontrol etmek iyi bir fikirdir. Kodda kullanılan pinler:

Kod:
LiquidCrystal ekran(8, 9, 4, 5, 6, 7);

Eğer Shield'inizdeki pinler farklıysa, bunu kodla eşleştirmeniz gerekir.


4. Donanım Sorunu

LCD Keypad Shield'in analog pin bağlantıları düzgün çalışmayabilir. Özellikle A0 pini (buton okuma için kullanılıyor) veya dijital pinlerde bir sorun olabilir. Bu durumda:

  • Multimetre ile A0 pinini test edin. Butonlara bastığınızda değişen voltaj değerlerini görmeniz gerekir.
  • LCD ekran üzerindeki bağlantıları fiziksel olarak kontrol edin, lehim hataları ya da gevşek bağlantılar olup olmadığını kontrol edin.

5. LCD'in Arızalı Olması

Ekran kendisi arızalı olabilir. Bunu test etmek için aşağıdaki gibi basit bir kod çalıştırabilirsiniz:

Kod:
#include <LiquidCrystal.h>

LiquidCrystal ekran(8, 9, 4, 5, 6, 7);

void setup()
{
 ekran.begin(16, 2);
 ekran.setCursor(0, 0);
 ekran.print("Test Yazisi");
}

void loop()
{
}

Eğer bu kod çalıştığında ekran yazı gösteriyorsa, sorun loop içinde yapılan işlemlerde olabilir.


6. Keypad Shield'in Arızalı Olması

Eğer yukarıdaki tüm kontrollerden sonra sorun çözülmezse, Shield'de donanımsal bir arıza olabilir. Bunun için:

  • Aynı LCD ekranı başka bir Arduino projesinde test edin.
  • Farklı bir Arduino kartıyla veya Shield ile deneyin.

Çözüm Adımları​

  1. Kontrastı kontrol edin.
  2. Yukarıdaki test kodunu çalıştırarak ekranı ayrı bir şekilde test edin.
  3. Shield'inizi farklı bir Arduino'da deneyin.
Yukarıdaki adımları takip ederek sorunu büyük olasılıkla çözebilirsiniz. Benim fikrim ya kontrast ayarı yada bağlantı sıkıntılı olabilir. Çünkü kodunuzda herhangi bir mantıksal hata yok.
 
Merhaba arkadaşlar bugünlerde ilgim Arduino'ya sardı, elimde bir adet ELEGOO markasının Arduino Uno R3 modeli var. LCD keypad Shield'i direkt olarak üzerine takıyorum, bilgisayardan kodu atıp tamamlıyorum outputtan bir hata almıyorum ama ekranda yazı çıkmıyor. Arka ve ön ışıklar olması gerektiği gibi yanıyor ekranın.
Kontrast ayarını da yaptım ama olmadı. Kodu aşağı kısma bırakıyorum, neden yazı çıkmadığını söylerseniz sevirinirm.

Kod:
#include <LiquidCrystal.h>

LiquidCrystal ekran(8, 9, 4, 5, 6, 7);

int basilan_tus = 0;
int okunan_deger = 0;

#define sag 0
#define yukari 1
#define asagi 2
#define sol 3
#define sec 4
#define yok 5

byte buton_bul()
{
 okunan_deger = analogRead(A0);
 if (okunan_deger > 1000)
 return yok;
 if (okunan_deger < 50)
 return sag;
 if (okunan_deger < 195)
 return yukari;
 if (okunan_deger < 380)
 return asagi;
 if (okunan_deger < 555)
 return sol;
 if (okunan_deger < 790)
 return sec;
}

void setup()
{
 ekran.begin(16, 2);
 ekran.setCursor(0, 0);
 ekran.print("Basilan Buton: ");
}

void loop()
{
 ekran.setCursor(0, 1);
 basilan_tus = buton_bul();

 switch (basilan_tus)
 {
 case sag:
 {
 ekran.print("sag ");
 break;
 }
 case sol:
 {
 ekran.print("sol ");
 break;
 }
 case yukari:
 {
 ekran.print("yukari");
 break;
 }
 case asagi:
 {
 ekran.print("asagi ");
 break;
 }
 case sec:
 {
 ekran.print("sec ");
 break;
 }
 case yok:
 {
 ekran.print("yok ");
 break;
 }
 }
}

Not: Kodu bir videodan aldım kendim yazmadım ayrıca keypad Shield eski olduğu için bozukta olabilir bilmiyorum.
Eski bir Arduinocuydum, kontrast ayarını tekrar yapmayı dene yönlerini değiştir. Lehim çıkmış olabilir eskiyse sıkıntı yapabilir. Bu kodu başka bir ekranda denemeni öneririm. Başka ekranda çalışırsa sendeki ekranda sorun vardır. Bu sorun genelde lehim gevşemesinden falan oluyor. Kodu deneyecek bilgisayarım yok ondan böyle yazdım.
 

Technopat Haberler

Yeni konular

Geri
Yukarı