Como ligar um motor com um botão e desligar atraves de um timer

pessoal eu tenho esse codigo mais não esta funcionando da forma que eu quero pois so esta funcionando quando mantenho o botão precionado e não queria que funcionace dessa forma quero fazer ele funcionar quando o botao e precionado o rele liga e o tempo começa a ser contado mais dessa forma que esta o codigo o tempo ja conta quando ligo o arduino

const byte rele = 8;
unsigned long millis_antes = 0;
const int intervalo = 1; // Em minutos

byte BOTAO = 0;
byte MOTOR = 0;
byte PORTA_B = 10;

void setup(){
pinMode(PORTA_B, INPUT);
digitalWrite(PORTA_B,1);

pinMode(rele, OUTPUT);
digitalWrite(rele,0);

}

void loop() {

BOTAO = digitalRead(PORTA_B);

if(BOTAO == 0)
{
MOTOR = !MOTOR;
digitalWrite(rele,MOTOR);
delay(500);

if((millis() - millis_antes) < (60000 * intervalo)) {
digitalWrite(rele, HIGH);

}
else
{
digitalWrite(rele, LOW);

}
}
}

esse e o codigo alguem pode me ajudar a resolver isso

Uma das regras do fórum diz para não repetir os posts, é melhor apagar este e voltar ao locar original e explicar que o código não está a funcionar.