CharacterAnalysis

Bu örnekte, uğraştığımız karakter türünü tanımamıza izin veren operatörleri kullanıyoruz. Bir karakterin ASCII olup olmadığını, büyük harf veya sayısal olup olmadığını veya noktalama işareti olup olmadığını kontrol etmek yararlıdır. Mevcut seçenekler çeşitli durumları kapsar ve bu aşağıdaki çizimde gösterilmiştir. Arduino Yazılımının (IDE) seri monitörü aracılığıyla panoya gönderilen her karakter, bulabildiği tüm bilgileri döndüren çizim ile analiz edilir. Tek bir karakter birden fazla koşulu tetikleyebilir ve bu nedenle tek bir giriş için birden fazla yanıt alabilirsiniz.

Mevcut operatörler:

  • isAlphaNumeric ()
    alfasayısal
  • isAlpha ()
    alfabetik
  • isascii ()
    ASCII
  • isWhitespace ()
    bu boşluk
  • IsControl ()
    bu bir kontrol karakteri
  • isdigit ()
    sayısal bir rakam
  • isgraph ()
    boşluk olmayan yazdırılabilir bir karakter
  • isLowerCase ()
    küçük harf
  • isPrintable ()
    yazdırılabilir
  • ispunct ()
    noktalama işareti
  • isspace ()
    bu bir boşluk karakteri
  • isUpperCase ()
    büyük harf
  • isHexadecimalDigit ()
    geçerli bir onaltılık basamak (ör. 0 - 9, a - F veya A - F)

Gerekli Donanım

  • Arduino veya Genuino Kurulu

Devre

Bu örnek için devre yoktur, ancak kartınızın bilgisayarınıza USB ile bağlanması ve Arduino Yazılımının (IDE) seri monitör penceresinin açık olması gerekir.

Kod

Arduino Yazılımının (IDE) seri monitör penceresini açın ve her seferinde tek bir karakter yazın, ardından belirli bir karakter hakkında rapor almak için Gönder'e basın.

/*
  Character analysis operators

  Examples using the character analysis operators.
  Send any byte and the sketch will tell you about it.

  created 29 Nov 2010
  modified 2 Apr 2012
  by Tom Igoe

  This example code is in the public domain.

  http:egitim.aspx?e=CharacterAnalysis
*/


void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // send an intro:
  Serial.println("send any byte and I'll tell you everything I can about it");
  Serial.println();
}

void loop() {
  // get any incoming bytes:
  if (Serial.available() > 0) {
    int thisChar = Serial.read();

    // say what was sent:
    Serial.print("You sent me: \'");
    Serial.write(thisChar);
    Serial.print("\'  ASCII Value: ");
    Serial.println(thisChar);

    // analyze what was sent:
    if (isAlphaNumeric(thisChar)) {
      Serial.println("it's alphanumeric");
    }
    if (isAlpha(thisChar)) {
      Serial.println("it's alphabetic");
    }
    if (isAscii(thisChar)) {
      Serial.println("it's ASCII");
    }
    if (isWhitespace(thisChar)) {
      Serial.println("it's whitespace");
    }
    if (isControl(thisChar)) {
      Serial.println("it's a control character");
    }
    if (isDigit(thisChar)) {
      Serial.println("it's a numeric digit");
    }
    if (isGraph(thisChar)) {
      Serial.println("it's a printable character that's not whitespace");
    }
    if (isLowerCase(thisChar)) {
      Serial.println("it's lower case");
    }
    if (isPrintable(thisChar)) {
      Serial.println("it's printable");
    }
    if (isPunct(thisChar)) {
      Serial.println("it's punctuation");
    }
    if (isSpace(thisChar)) {
      Serial.println("it's a space character");
    }
    if (isUpperCase(thisChar)) {
      Serial.println("it's upper case");
    }
    if (isHexadecimalDigit(thisChar)) {
      Serial.println("it's a valid hexadecimaldigit (i.e. 0 - 9, a - F, or A - F)");
    }

    // add some space and ask for another byte:
    Serial.println();
    Serial.println("Give me another byte:");
    Serial.println();
  }
}
[Kodu Al]

See Also