Programa Temporizador con Sensor Óptico

Hola!

Me han dejado un proyecto con el arduino UNO pero no soy muy bueno programando.

Basicamente lo que necesito que haga es que el sensor lea cada 5 segundos si hay un objeto o no, y si no hay un objeto mediante un relevador apague una circuito (una máquina industrial), pero si detecta un objeto en esos 5 segundos reiniciar el contador a 5 segundos otra vez y seguir leyendo el objeto.

He intentando varios programas pero ninguno me funciona.

Si pudieran ayudarme con un programa de como hacerlo se los agradecería mucho :slight_smile:

Haber si entendí bien.

el proceso sería algo así:

-Esperar 5 segundos. -Ver si hay Objeto. -Si no hay objeto: poner en LOW alguna salida digital. -Si hay objeto: volver a "contar" los 5 segundos. -Final.

Algo así sería el procedimiento que tendria que hacer el código?

Así es!

Ya me salió el programa, se los comparto por si alguien lo necesita. Lo logré utilizando un potenciometro para fijar el tiempo en que se mide (de 0 a 10 segundos)

int value = 0; unsigned long start = 0;

bool InicioDisparo = false;

void setup() { Serial.begin(9600); //iniciar puerto serie pinMode(13, OUTPUT); }

void loop(){ value = digitalRead(2); int valor_pot = analogRead(A0)*10; Serial.println(valor_pot);

if (value == LOW){ // suponiendo que el rele del PIR no genere rebotes InicioDisparo = true; digitalWrite(13,HIGH); start = millis(); // cargo Start con el valor de millis() } if (InicioDisparo && (millis()-start> valor_pot) ){ digitalWrite(13,LOW); //y quede HIGH por 5 Seg y que se reinicie el contador cada vez que se recibe una señal del Sensor pir InicioDisparo = false; // no dejo que pase de nuevo hasta que se rearme. } }