This is an example of a bad debounce software that I noticed in a hands drier located in the Barcelona airport (mid/2013).
As you can see, this shinny new drier is pretty much useless for the purpose of drying hands. However it’s a great example of a bad hardware / software integration and lack of product testing. (it’s no an isolated case, the other hands driers in that bathroom has same issue)
Maybe the designers of this hands dryer should have read the Arduino tutorial on debounce: http://arduino.cc/en/Tutorial/Debounce
The root of the issue could be both software or hardware. It could be the software was written for another sensor, and that sensor ended up replaced with a similar but with different performance.
Regardless of being a bad sensor. The Hands drier as is could probably be fixed via software, in two ways:
it seems the device has too long of activation debounce, meaning the software is such that must “sees” your hand waving for at least 5sec it turns on. BAD, that should be lowered to maybe 1 sec. That way you increase the responsiveness of the device.
In the other side of the equation it seems the software is turning off the air way too soon. Around 1 sec of “no hands” it turn it self off. The solution is simple: just increase the minimum on-time to let’s say 10 or 15sec. That should be enough to get the hands dried. Of course if during the ON-TIME a hand is seen once again, that should reset the deactivation timer. That’s the way to do it!
Folks at Barcelona. Next time you design electronics, just ask an Arduino maker how to do the debounce! And make sure you test your work before you call it done!