Go Down

Topic: Dúvida Arduino (Read 800 times) previous topic - next topic

aurinojr

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
Code: [Select]
#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

bubulindo

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.
This... is a hobby.

aurinojr

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

Go Up