1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include <LiquidCrystal.h> LiquidCrystal lcd(8,9,4,5,6,7); // LCD Shield Bağlantı Pinleri String str1="",str2=""; // str1 LCD 1.Satırı, str2 LCD 2.Satırı boolean stringcomp=false; // C#'dan okuma tamamlandı mı? int cnt=0; // 1.satıra mı 2.satıra mı belirlemek için koyduğumuz sayaç
void setup() { Serial.begin(9600); lcd.begin(16,2); lcd.setCursor(0,0); } void SerialEvent() { while(Serial.available()) { char inChar=(char)Serial.read(); // C#'dan oku char'a çevir ve inChar'a yaz cnt++; // Sayacı arttır her okuduğunda if(inChar=='\n') // \n alt satıra geçme demek, eğer geçerse C#dan okuma tamamlanmış demektir stringcomp=true;
if(inChar=='*') // Bu karakteri kendimiz belirledik. LCD'yi silmek için { lcd.clear(); str1=""; str2=""; stringcomp=true; } if(stringcomp==false && cnt<=16) // Sayaç 16'dan küçükse okunan karakterleri str1'e yani LCD'nin 1.satırına yaz str1+=inChar;
if(stringcomp==false && cnt>16 && cnt<=32) // 16'dan büyükse 2.satıra yaz str2+=inChar; } } void loop() { lcd.setCursor(0,0); SerialEvent(); if(stringcomp) { lcd.clear(); lcd.print(str1); lcd.setCursor(0,1); lcd.print(str2); stringcomp=false; str1=""; str2=""; cnt=0; } delay(50); } |