Seri port ekranındaki yazıları temizlemek için arduino içinde kod var mı?
  • Basitçe anlatmak gerekirse seri port ekranında bulunan yazılar içerisinden serial.find() ile istediğim veriyi alıp işlem yaptırıyorum ancak o veri orda durduğu için başka bir if şartına gitmiyor.Seri port ekranında bulunan yazıları arduino içerisinde bir kod ile temizleyebilir miyiz veya alternatif olarak bir çözüm var mıdır?
  • Arduino seri monitörü normal bir terminal değilmiş, bu yüzden standart terminal komutlarını kullanarak ekranı temizlemek te mümkün değilmiş.
    ancak Putty (https://www.putty.org) gibi gerçek bir terminal emülatörü kullanırsanız aşağıdaki kodlarla temizlenebileceği söylenilmekte

    Serial.write(27); // ESC command
    Serial.print("[2J"); // clear screen command
    Serial.write(27);
    Serial.print("[H"); // cursor to home command
  • bu yöntemi denedim çalışıyor fakat puttyi açık tutmak zorunda kalıyorum ve putty kapandığında yine çalışmıyor benim istediğim arduinonun kendi içinde bu işi nasıl yaptırabilirim, eğer böyle bir yöntem yoksa en azından farklı bir çözüm önerisi olan varsa sevinirim amacım seri portta okunan bir değere göre if kosullarını kullanarak işlem yaptırmak ancak serial.find ile deger ekranda kaldıgı için diger ife girmiyor baska bir yol olursa sevinirim.
  • aklıma şöyle birşeyler geldi ama denemeden bilemem
    tek satır okumaya çalışın Serial.println(" ") ile yeni boş satıra geçirin sonra okunan satır boş işe ona göre işlem yapmayı deneyin derim
  • Arduino ile serial monitorde yazan yazıları nasıl okuyorsunuz onu anlamadım. Bence siz olayı çok yanlış anlamışsınız.

    Serial.find() ile bulduklarınız arduinonun kendi belleğinde saklanan verilerdir. Biraz arduino dökümanı okursanız seri porttan gelen verilerin 64 byte lık bir buffer'da saklandığını göreceksiniz. Yani Serial.read() ile 64 byte okursanız bufferda hiçbişey kalmaz, hepsi temizlenir.
  • zaten konuyu cok iyi bildiğimi söylemedim ancak putty ile dediğim şekilde yaptığımda sistem çalışıyor.Mesela serial.find("aktif") ise kosula giriyor ve putty ile ekran temizlendiği için diğer kosullara da giriyor ama direkt arduino içinde bir sekilde bunu hallettmem lazım
  • siz sanırım alttaki gibi birşey yapmaya çalışıyorsunuz
    if (Serial.available()) {
    if (Serial.find("ok")) {
    Serial.println("ok algilandi");
    } else if (Serial.find("no")) {
    Serial.println("no algilandi");
    } else {
    Serial.println("kayitsiz komut!");
    }
    }
    bu kodlarla ok komutu hariç başka komut okuyamazsınız

    aşağıdaki gibi bişrşey olmalı yapmak istediğinizi doğru anladıysam eğer
    String str; // başlangiçta tanımlanacak

    while (Serial.available()) {
    str = Serial.readString();
    }

    if (str == "ok") {
    Serial.println("ok algilandi");
    } else if (str == "no") {
    Serial.println("no algilandi");
    } else if (str != "null") {
    Serial.println("kayitsiz komut!");
    }

    str = "null";
  • buna benzer birşeydi ama hallettim ilginiz için çok teşekkürler,Serial monitordaki yazıları karakter karakter okuyup String bir değişkene attım orada yakaladım istediğimi.

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.