Acionamento de motor com relé e sensor de Fotoelétrico


#1

Bom dia, estou com muita dificuldade em fazer um programa no arduino. O intuito do programa é fazer com que o motor seja acionado durante 10 secs e desligado por 5secs, e teria uma condição de que quando um botão e o sensor estivessem acionados o motor para, no local onde o sensor se encontra. A principal dificuldade é que o programa esta lendo todo o void loop para fazer a leitura do sensor, o que dificulta o o acionamento da logica, pois não para instantaneamente, ja li algumas coisas sobre subrotinas e até mesmo fazer interrupçoes no programa mas estou tentando encontrar uma saida mais simples para esse problema. Desde ja agredeço a colaboração.
OBS: O motor é de vidro elétrico o que dificulta a resolução pois não utilizamos um motor de passo

Segue abaixo o codigo utilizado:

int botao1 = 6;
int sensor = A0;
int relay = 13;
int estadobotao1 = 0;
int estadosensor = 0;

void setup() {
pinMode(botao1,INPUT);
pinMode(sensor,INPUT);
pinMode(relay,OUTPUT);
Serial.begin(9600);

}
void loop() {
estadobotao1 = digitalRead(botao1);
estadosensor = analogRead(sensor);
Serial.println (estadosensor);
if((estadobotao1==HIGH)&&(estadosensor>500)){
digitalWrite(relay,LOW);
}
if ((estadobotao1==LOW)){
digitalWrite(relay, HIGH);
delay(10000);
digitalWrite(relay, LOW);
delay(5000);
}
}