Estoy proyectando un sensor de movimiento que al activarse enciende una luz determinado tiempo. Si se vuelve a activar comienza la cuenta del lapso de la luz encendida. Voy a utilizar la instrucción Millis o un sistema de interrupciones. Hasta aquí lo tengo claro. Pero quisiera que el lapso que la luz permanece encendida pueda controlarse "manualmente" (con un potenciometro o cualquier otro medio) y no se me ocurre como diseñarlo. Agradeceré si alguien tiene un proyecto similar o conoce como introducir el control manual del tiempo.
Si el lapso de tiempo lo controlas con millis() y queres usar un potenciometro para para controlar el tiempo, podrías hacerlo usando la función map.
unsigned long time = 0;
int pot = 0;
pot = analogRead(A0);
time = map(pot, 0, 1023, 0, 3600000); // 3600000 = 1 hora
Es solo una idea, saludos!
Desde ya muchas gracias por la rápida respuesta. Me parece muy buena "idea". Voy a implementarla.
De esa forma podes controlar el tiempo, pero siempre vas a tener un "aproximado", podes dividir el potenciometro en 4 partes por ejemplo, y asignarle 0, 15, 30, 60 minutos.
Voy a utilizar la instrucción Millis o un sistema de interrupciones
Consejo: Nunca pienses en interrupciones con cosas que demoran tanto como un PIR.