Lo que ha presentado aquí, según tengo entendido, es un problema de calibración básica. Definitivamente, tendrá que realizar alguna forma de resta o compensación por el desplazamiento creado por esa luz ambiental.
Ejecutaría el siguiente algoritmo cada vez que se inicie el dispositivo.
Comenzar:
-
Obtenga el valor de frecuencia para las condiciones de luz ambiental, es decir, sin ninguna excitación de IR o luz roja. Almacena esto como f_amb.
Bucle (RED 10ms, IR 10ms):
-
Obtenga el valor de frecuencia para las condiciones de excitación. Que sea f_ext.
-
f_actual = f_ext-f_amb
-
Hacer cálculos de oximetría de pulso
End Loop
Fin
El punto a tener en cuenta aquí es que no es necesario incorporar un tiempo de apagado entre los ciclos de 10 ms. En su lugar, simplemente asigne un retraso de tiempo de, por ejemplo, 20 ms en la secuencia de inicio del dispositivo para la ejecución de la calibración. De esta manera, se ahorra mucho tiempo que de lo contrario se habría perdido. Sin embargo, esto tendrá un costo de confiabilidad porque en el caso de un cambio en las condiciones de luz ambiental, a menos que el dispositivo se apague y se vuelva a encender, obtendrá valores incorrectos. Puede agregar una secuencia de 'verificación' para detectar cambios en las condiciones ambientales cada pocos minutos.
Todo lo mejor!