Como comparar uma string de Serial.read ()?

Eu tenho esse código abaixo de onde eu vimeste fórum que eu segui. Não funcionou para mim, mas eles afirmam que o código está correto. Eu já tentei vários métodos de comparação de strings, comostring.equals(string) e o padrão== operador, ainda sem sorte.

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="";
  } 
}

questionAnswers(5)

yourAnswerToTheQuestion