¿Es posible usar un sensor ultrasónico para despertar a un Arduino que está en sueño profundo cuando se detecta un objeto dentro de unos pocos cm y luego hacer cosas?
¿Es posible usar un sensor ultrasónico para despertar a un Arduino que está en sueño profundo cuando se detecta un objeto dentro de unos pocos cm y luego hacer cosas?
Para una solución basada en Arduino verdaderamente de baja potencia, al menos se necesita lo siguiente:
A) LADO DEL HARDWARE:
B) LADO DEL SOFTWARE:
Si realmente desea minimizar la potencia, no solo debe tener un circuito de MCU de baja potencia, sino un receptor ultrasónico que puede desactivar.
Encienda la MCU con un temporizador periódico de baja potencia y dispare un pulso, luego vuelva a dormir por lo menos durante el tiempo de llamada del sensor, o el tiempo del rango mínimo de interés.
Vuelva a activar la MCU y el receptor en el momento en el que primero espera un eco interesante, y permanezca despierto solo hasta que vea uno o el intervalo de tiempo durante el cual podría llegar su eco.
Actúa si escuchas un eco.
Una vez que escuche un eco o la ventana de interés caduque, apague todo menos el temporizador de baja potencia hasta el siguiente intervalo de medición.
La frecuencia con la que necesita repetir la medición depende de la rapidez con la que sus objetos puedan moverse y / o de lo breve que sea significativa la actuación de la salida y / o la latencia máxima permitida para responder a una aparición o desaparición. Como límite inferior, debes asegurarte de no tomar una nueva medida hasta que desaparezcan los reflejos de rebote múltiple o de pared distante del pulso de transmisión antiguo.
Lea otras preguntas en las etiquetas arduino sensor interrupts sleep ultrasound