2x16 LCD Display Karakter Sorunu
  • Yaptığım projede sensörden sıcaklık değerini alıyorum ve gelen değere göre röle aktif veya pasif oluyor. Lcd de ise sıcaklık değerini ve rölenin durumunu yazdırıyorum. Ancak ilk çalışmada herşey güzelken ekrandaki yazıda program gereği değişme olduğunda yazı bozuluyor ve saçma sapan karakterler geliyor. Arduino yu resetlediğimde düzelme oluyor ancak problem tekrarlanıyor. Sorunumu çözemedim. Yardımcı olursanız sevinirim.
  • lcd de yazmadan once silin(clear) sonra herşeyı tekrar yazın. altta eski kalıntılar kalıyordur. yada lcd ye yazdırdıgınız bılgıden once once genişçe bir boşluk verisi basın sonra gerçek veriyi basın
  • Güç sorunu olabilir, LCD nin güç pinlerine kondansatör bağlayıp deneyin
  • röle kartı çok yakın ise parazit yapıyor olabilir , yine aynı şekilde güç yetersiz geliyor olabilir.
  • olması gereken: https://hizliresim.com/bLbqn
    olan: https://hizliresim.com/yz4MYM

    kodlar
    void loop(void) {


    float temperature = getTemp()+0.50;
    String derece=String(temperature);

    if(temperature<24)<br /> {
    lcd.setCursor(0,0);
    lcd.print("Sicaklik: ");lcd.print(derece);
    lcd.setCursor(0,1);
    lcd.print("Isitici Acik ");
    digitalWrite(role,LOW);
    }

    if(temperature>24&&temperature<26)<br /> {

    if(!digitalRead(role))
    {
    lcd.setCursor(0,0);
    lcd.print("Sicaklik: ");lcd.print(derece);
    lcd.setCursor(0,1);
    lcd.print("Isitici Acik ");
    }
    else
    {
    lcd.setCursor(0,0);
    lcd.print("Sicaklik: ");lcd.print(derece);
    lcd.setCursor(0,1);
    lcd.print("Isitici Kapali ");
    }
    }
    if(temperature>26)
    {
    lcd.setCursor(0,0);
    lcd.print("Sicaklik: ");lcd.print(derece);
    lcd.setCursor(0,1);
    lcd.print("Isitici Kapali ");
    digitalWrite(role,HIGH);
    }

    delay(1000);

    }
  • LCD ye Kondansatör bağladınmı
  • Hayır kondansatör denemedim
  • Çözüm basit . Okomanin dediği gibi clear komutu kullan. Her set cursor 0.0 satirinin ustune cd.clear() ekle

    cd.clear()
    lcd.setCursor(0,0);
    lcd.print("Sicaklik: ");lcd.print(derece);
    lcd.setCursor(0,1);
    lcd.print("Isitici Acik ");
    digitalWrite(role,LOW);

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.