Control ciclico de un motor y ademas controlar puerta.

Buenos días.

Soy de Santa Fe, Argentina y quisiera empezar a probar el Arduino Nano, tengo una inquietud para ver cómo resolverlo. Es la siguiente: Quisiera hacer a través del nano, un circuito que sea un control cíclico para un motor con dos relés, que por ej. ande 2 minutos para un lado, se detenga hasta frenarse por inercia (Por Ej. unos 40 segundos) y luego arranque nuevamente, de esta manera lograr un control cíclico.

PERO... aquí mi duda, con las sentencias delay() seria simple, lo que pasa que al mismo tiempo tengo que sensar unas entradas como apertura de puerta y temperatura. Si se abre la puerta, se detiene el motor, si se cierra la puerta luego de unos 5 segundos arranca el ciclador, si la temperatura llega a objetivo, una salida de OK.-

Bueno, espero que se entienda mi duda...

Y que puedan ayudarme....

Un saludo. Gabriel

La solución es simple, estudia el ejemplo que hay en el IDE

Archivo-Ejemplos-02Digital-BlinkWithoutDelay

Podrás ejecutar procesos ciclicamente y al mismo tiempo hacer otras cosas.

Jopapa

Muchas gracias, busque esa solución y es la que había hecho, postee para ver si había alguna sentencia mas especifica...

Agradezco mucho la respuesta.-

Hay tres alternativas para consumir tiempo: 1) delay() tiene la contra que detiene el programa en ese punto hasta cumplir el tiempo indicado. 2) millis() esta es la solución mas usada cuando tienes que hacer otras cosas en tu loop() como leer sensores o atender otros dispositivos. 3) una opción poco usada pero requiere un nivel algo mayor de programación es usar una rutina de timer, el timer cuenta ticks a intervalos predefinidos, supongamos 1mseg. Asi que como ves, funciona de igual modo que millis().

Claro que usar un timer para emular millis() no tiene mucho sentido. El sentido esta en que puedes armar una máquina de estados dentro de esa rutina y atender muchas cosas que deben ocurrir en cada tick del timer.