Rehber Arduino ile LCD'ye basit sistem bilgisi yazdırma

Merhaba. Bu tür bir rehber daha önce OLED ekranlar için yazılmıştı. Fakat düz LCD için görmemiştim. Bu yüzden böyle bir rehber yazıyorum. 7 aydır rehber yazmıyormuşuz :)

Ne işe yarar?
Basitçe, RAM kullanımını (MB ve yüzde) olarak gösterir. Ve CPU kullanımını gösterir.


Gereksinimler:​

  • Bilgisayar ile iletişim kurabilecek herhangi bir Arduino.
  • En az 16x8 bir I2C ya da normal LCD.
Eğer LCD'niz I2C'ye sahip değilse:

  • 1 10K Potansiyometre,
  • 1 220 Ohm direnç,
  • gerekecektir.

Yapım aşaması:​

Arduinoya LCD'nize göre olan dosyayı atın:
C++:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); //Çalışmazsa adresi değiştirin. Örnekler: 0x27,0x3F


char *strings[12];   //
char *ptr = NULL;    //
String kol_Str = ""; //

String lnk_1 = "";
String lnk_2 = ""; // 
String lnk_3 = "";

void setup()
{

  lcd.begin();
  lcd.backlight();

  Serial.begin(9600);
}

void loop()
{
  if (Serial.available())
  {
    while (Serial.available() > 0)
    {

      kol_Str = Serial.readString();
      int index = 0;
      char kolyedek[13];
      String kol_Str_yedek;
      kol_Str.toCharArray(kolyedek, 13); 

      ptr = strtok(kolyedek, "-"); 
      while (ptr != NULL)
      {
        strings[index] = ptr;
        index++;
        ptr = strtok(NULL, "-"); 
      }

      lnk_1 = strings[0];
      lnk_2 = strings[1];
      lnk_3 = strings[2];
 
      lcd.clear();

      lcd.setCursor(0, 0);
      lcd.print("RAM: " + lnk_1 + " %" + lnk_2);
      lcd.setCursor(0, 1);
      lcd.print("CPU: %" + lnk_3);
    }
  }
}
C++:
#include <Wire.h>
#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

char *strings[12];  
char *ptr = NULL;    //
String kol_Str = ""; //

String lnk_1 = "";
String lnk_2 = "";
String lnk_3 = "";

void setup()
{

  lcd.begin(16, 2);

  Serial.begin(9600);
}

void loop()
{
  if (Serial.available())
  {
    while (Serial.available() > 0)
    {
     
      kol_Str = Serial.readString();
      int index = 0;
      char kolyedek[13];
      String kol_Str_yedek;
      kol_Str.toCharArray(kolyedek, 13);

      ptr = strtok(kolyedek, "-");
      while (ptr != NULL)
      {
        strings[index] = ptr; 
        index++;
        ptr = strtok(NULL, "-"); 
      }

      lnk_1 = strings[0];
      lnk_2 = strings[1];
      lnk_3 = strings[2];

      lcd.clear();
      
      lcd.setCursor(0, 0);
      lcd.print("RAM: " + lnk_1 + " %" + lnk_2);
      lcd.setCursor(0, 1);
      lcd.print("CPU: %" + lnk_3);
    }
  }
}


Arduinoya pinlerinizi bağlayın:
1643822032894.png
1643822050401.png


Artık Arduino'yu bilgisayarınıza bağlayabilirsiniz.
Sıra bilgisayardaki yazılım aşamasında. Bunun için 2 farklı dilde kod yazdım. Hangisini isterseniz onu kullanın. Programla bilgisi olan arkadaşların daha da geliştirebileceğine inanıyorum. Benim Node.js versiyonu dışında pek bir bilgim yok. Exe haline getirilebiliyor mu bilemem.

COM PORT'u düzgün seçerseniz çalışacaktır...

 
Elimde klon bir UNO var, hangi ekranı almamı önerirsiniz?

Proje çok hoşuma gitti.
Bu modeli buldum ancak renkli bir şey de olabilir gibi görüntü açısından.
 
Merhaba. Bu tür bir rehber daha önce OLED ekranlar için yazılmıştı. Fakat düz LCD için görmemiştim. Bu yüzden böyle bir rehber yazıyorum. 7 aydır rehber yazmıyormuşuz :)

Ne işe yarar?
Basitçe, RAM kullanımını (MB ve yüzde) olarak gösterir. Ve CPU kullanımını gösterir.


Gereksinimler:​

  • Bilgisayar ile iletişim kurabilecek herhangi bir Arduino.
  • En az 16x8 bir I2C ya da normal LCD.
Eğer LCD'niz I2C'ye sahip değilse:

  • 1 10K Potansiyometre,
  • 1 220 Ohm direnç,
  • gerekecektir.

Yapım aşaması:​

Arduinoya LCD'nize göre olan dosyayı atın:
C++:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); //Çalışmazsa adresi değiştirin. Örnekler: 0x27,0x3F


char *strings[12];   //
char *ptr = NULL;    //
String kol_Str = ""; //

String lnk_1 = "";
String lnk_2 = ""; //
String lnk_3 = "";

void setup()
{

  lcd.begin();
  lcd.backlight();

  Serial.begin(9600);
}

void loop()
{
  if (Serial.available())
  {
    while (Serial.available() > 0)
    {

      kol_Str = Serial.readString();
      int index = 0;
      char kolyedek[13];
      String kol_Str_yedek;
      kol_Str.toCharArray(kolyedek, 13);

      ptr = strtok(kolyedek, "-");
      while (ptr != NULL)
      {
        strings[index] = ptr;
        index++;
        ptr = strtok(NULL, "-");
      }

      lnk_1 = strings[0];
      lnk_2 = strings[1];
      lnk_3 = strings[2];
 
      lcd.clear();

      lcd.setCursor(0, 0);
      lcd.print("RAM: " + lnk_1 + " %" + lnk_2);
      lcd.setCursor(0, 1);
      lcd.print("CPU: %" + lnk_3);
    }
  }
}
C++:
#include <Wire.h>
#include <LiquidCrystal.h>

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

char *strings[12]; 
char *ptr = NULL;    //
String kol_Str = ""; //

String lnk_1 = "";
String lnk_2 = "";
String lnk_3 = "";

void setup()
{

  lcd.begin(16, 2);

  Serial.begin(9600);
}

void loop()
{
  if (Serial.available())
  {
    while (Serial.available() > 0)
    {
    
      kol_Str = Serial.readString();
      int index = 0;
      char kolyedek[13];
      String kol_Str_yedek;
      kol_Str.toCharArray(kolyedek, 13);

      ptr = strtok(kolyedek, "-");
      while (ptr != NULL)
      {
        strings[index] = ptr;
        index++;
        ptr = strtok(NULL, "-");
      }

      lnk_1 = strings[0];
      lnk_2 = strings[1];
      lnk_3 = strings[2];

      lcd.clear();
     
      lcd.setCursor(0, 0);
      lcd.print("RAM: " + lnk_1 + " %" + lnk_2);
      lcd.setCursor(0, 1);
      lcd.print("CPU: %" + lnk_3);
    }
  }
}


Arduinoya pinlerinizi bağlayın:


Artık Arduino'yu bilgisayarınıza bağlayabilirsiniz.
Sıra bilgisayardaki yazılım aşamasında. Bunun için 2 farklı dilde kod yazdım. Hangisini isterseniz onu kullanın. Programla bilgisi olan arkadaşların daha da geliştirebileceğine inanıyorum. Benim Node.js versiyonu dışında pek bir bilgim yok. Exe haline getirilebiliyor mu bilemem.

COM PORT'u düzgün seçerseniz çalışacaktır...

16x2 için yapabilime şansımız var mı ?
 
Yaptım ancak veriler çok yavaş geliyor. Normalde bu konulardan anlarım ancak Arduino kodunda sıkıntı yok C# kodunda hata var gibi duruyor.
 
Yaptım ancak veriler çok yavaş geliyor. Normalde bu konulardan anlarım ancak Arduino kodunda sıkıntı yok C# kodunda hata var gibi duruyor.
Nasıl yani? Daha da açarsanız bakabiliriz. Arduino kodu da, C# kodu da güncellendi ama Github üzerinde, buraya eklenmedi.
C# kodu dengeli, her 1 saniyede gönderecek şekilde ayarlı, bende normal şekilde çalışıyor.
 
Nasıl yani? Daha da açarsanız bakabiliriz. Arduino kodu da, C# kodu da güncellendi ama GitHub üzerinde, buraya eklenmedi.
C# kodu dengeli, her 1 saniyede gönderecek şekilde ayarlı, bende normal şekilde çalışıyor.

LCD i2C 16x2 Arduino klon FT232r çipli uygulamayı açıp portu yazıyorum (com6) ve LCD de yüzdeler gözükmüyor 2 dk sonra yüzdeler geliyor, 2 dk da bir yenileniyor.

Arduino kodunda uzun bir delay da bulamadım.
 

Geri
Yukarı