Dúvida Arduino

Pessoal estou querendo montar um sistema que digito uma senha ele mostra no Serial Monitor: Senha Correta acende um led e destrava a porta, mas o código está dando erro só funciona com char, vou postar o código aqui

#define ledverde 3
#define ledvermelho 4

String senhaadm = "teste";
void setup() {                
  // Inicializa os pinos digitais como saida.
  pinMode(ledverde, OUTPUT);    
  pinMode(ledvermelho, OUTPUT);
  pinMode(motor, OUTPUT);
  Serial.begin(9600);
  //Serial.flush();
  digitalWrite(ledvermelho, HIGH);
}

void loop() {
  String tecla; 
  tecla = Serial.read();
  if (tecla.equalsIgnoreCase(senhaadm)){
    digitalWrite(ledvermelho, LOW);
    digitalWrite(ledverde, HIGH);
    Serial.println("Senha Correta");
    /*delay(10000); // temporizador
    digitalWrite(ledvermelho, HIGH);
    digitalWrite(ledverde, LOW);*/  
  } else {
           Serial.println("Senha Errada");
}
}

já tentei com int, e String mas não da certo! alguem sabe pq??

Obrigado

Serial.read apenas lê um caracter e não uma string completa.
Se queres ler tudo o que foi enviado tens de chamar Serial.read enquanto Serial.available>0. Estás a ver a ideia??
Se calhar o melhor é ignorar a String e usar um array de chars. Normalmente as passwords são case-sensitive, logo não faz sentido usar o IgnoreCase.

huum. Obrigado pela dica eu fiz esse ignorecase só pra teste mesmo.