I have 36 Octolively panels installed in a coffee table and for safety (because of the size of the array) a piece of 10mm thick tempered glass over the top.
Without the glass in place over the Octolively panels they work as expected on all sensitivity levels. When the glass is installed the sensitivity of IR sensing drops and I have to increase the sensitivity setting.
Level 1: nothing sensed.
Level 2: a few LEDs respond
Level 3: nearly all LEDs respond but there is the occasional false trigger.
Level 4: all LEDs respond well but there is a lot of false triggering. Possibly from reflections from adjacent IR emitters (the glass is just above the 10mm LEDs).
I have had a look at the code but the sensitivity and detection routines are beyond my limited understanding of C.
Could you give me a few pointers on what to experiment with?
The couple of candidates I have come up with are:
#define num_acd_readings 14
//or
uint8_t cutoffs[] = {100, 50, 35, 20};
Am I on the right track or barking up the wrong tree?
Comments
Adjusting the cutoffs down [40, 35, 30, 25] has given me a useful sensitivity range for all 4 levels however there is still quite a bit of false triggering. Is there an easy way to increase the filtering by adjusting the existing code?
I placed some 6mm long by 6mm ID heatshrink sleeves around the IR sensors (not emitters) and that cured the false triggering problem. I found not shrinking the tubing gave the best sensitivity.
Thanks for your assistance Windell.