¿Cómo comparar una cadena de Serial.read ()?

Tengo este código debajo de donde obtuveeste foro que seguí No funcionó para mí, pero afirman que el código está bien. Ya probé varios métodos de comparación de cadenas comostring.equals(string) y el estándar== operador, aún sin suerte.

int ledPin = 13;
String readString;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT); 
  Serial.println("serial on/off test 0021"); // so I can keep track
}

void loop() {
  while (Serial.available()) {
    delay(3);  
    char c = Serial.read();
    readString += c; 
  }
  if (readString.length() >0) {
    if (readString == "on") {
      Serial.println("switching on");
      digitalWrite(ledPin, HIGH);
    }
    if (readString == "off") {
      digitalWrite(ledPin, LOW);
    }
    readString="";
  } 
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta