(Dúvida) Controlar motor de passo utilizando Serial Monitor

Olá

Estou desenvolvendo um projeto que tem como objetivo automatizar um processo de deposição de filmes finos.

No momento estou com problemas na programação do Arduino. Quero fazer o motor girar após ser digitado "1" no Serial Monitor. A seguir está minha programação, que não está funcionando, pois quando digito "1", nada acontece. Já testei a programação sem o Serial Monitor, apenas fazendo o motor girar e funcionou perfeitamente, então, o problema não está na montagem física. Se alguém puder me ajudar a encontrar o porquê de não estar funcionando, eu seria extremamente grato.

#include <Stepper.h>

const int passosporrevolucao = 500;

Stepper motor(passosporrevolucao, 8,10,9,11);

void setup()
{
Serial.begin(9600);
motor.setSpeed(60);
Serial.println("Digite para 1 fazer o motor descer e subir");
}

void loop()
{
int n = Serial.read();
if(n == 1){
motor.step(2723);
delay(2000);
motor.step(-2723);
delay(2000);
}
}

Muito obrigado,

Luan Rodrigues.

Ola,
O serial.read() retorna um byte (ou char, ou inteiro de 8 bits).
Quando se digita 1 em um terminal serial, não é o inteiro 1 que e transmitido.
O que e transmitido e ao caracter ASCII '1' ou o inteiro 49 (0x31 e 061).

Então, tem que fazer a comparação com o caracter '1' e não com o inteiro 1.

if (n==49) {
}
// ou assim
if (n==0x31) {
}
// tbm pode ser assim
if (n==0x61) {
}
// deixando que o compilador se vire convertendo o caracter '1' para inteiro correspondente
if (n=='1') {
}

E, tente programar sem usar o delay().