como utilizar a função millis?

estou com um problema fiz um robô controlado por bluetooh, ele anda em tdas as direções mais qndo eu aciono o servo motor ele fica disparado ou parado se acionar o servo primeiro, tentei usar o millis mais não estou conseguido

Vê o exemplo blink without delay nos exemplos do Arduino.

Boa tarde,

Já tentou interrupção...?

//VARIAVEL QUE RECEBE DADOS BLUETOOTH
char comando;
#include <Servo.h> //BIBLIOTECA SERVO MOTOR
Servo myservo; //CONTROLA A POSIÇÃO NA VARIÁVEL "POS" DO SERVO MOTOR
int pos = 0; //VARIÁVEL PARA ARMAZENAR POSIÇÃO DO SERVO MOTOR

void setup()
{
//DEFINE O PINO DO SERVO MOTOR
myservo.attach(10);
//DEFININDO ENTRADAS E SAIDAS
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);

//INICIANDO A SERIAL
Serial.begin(9600);
}

void loop()
{
//CONTROLE
while (Serial.available() > 0)
{ int x;
char comando = Serial.read();
switch (comando)
{
case 'B'://Tras
//Gira o Motor A e B no sentido horario

digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);

break;

case 'F': //frente
//Gira o Motor A e B no sentido anti-horario

digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);

break;

case 'L'://esquerda

digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);

break;

case 'R'://direita

digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);

break;

case 'S'://parado

digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);

break;

case 'U'://arma

for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
for (pos = 180; pos >= 0; pos -= 0) {
myservo.write(pos);
break;
default:
break;

}
}
}
}
}