sparkfun / Serial7SegmentDisplay

Example code and board files for the Serial 7 Segment Display.
https://www.sparkfun.com/products/11629
95 stars 73 forks source link

Display refresh rate #20

Closed MNewman closed 4 years ago

MNewman commented 7 years ago

I've noticed that when viewed on a 60fps camera the display visibly flickers. I assume this has something to do with the rate at which the segments are illuminated. I'm also assuming that one potential remedy would be adjusting the shutter rate of the camera.

Is dimming accomplished by leaving each segment on a smaller slice of time? Is there a way to increase the speed of redrawing the segments to overcome the aliasing effect on the camera?

bboyho commented 4 years ago

Hi,

Sorry, I just noticed this question when browsing our issues. If you are still wondering, the brightness uses an internal PWM with a work around. The work around turns on and off the segments at a certain speed. This speed is probably not synced with your camera which is what you are seeing with the flicker. If you were adjusting the code, you may need to adjust the SetBrightness() function in the library and reupload the default firmware. Looking online, it looks like users implemented the millis() function in their sketch and only updated the segments after a certain amount of time had passed.

I don't know too much about DSLR cameras. Doing some research online, it seems like the flicker can be avoided by adjusting the shutter speed to match the time of the segments turning on and off. Another technique would be to adjust the frame rate equal to the period of the segments blinking as well. These two techniques seem to be used to compensate for flickers in general.

You may want to post in the following forums to see if anyone else in the community has additional insight. It appears that this question about the flickering has been asked a few times in the Arduino forums. Otherwise, you would need to experiment with the code or your camera's settings if you are still having this problem.