This repository powers an arduino project consisting of a spinning display of LEDs that shows the current time to the user. Let's see it in action:
- If the start button is pressed when the motor is stopped (1.5 seconds have passed since last full rotation), the motor shall be commanded to begin spinning, approaching a speed of 10 rotations per second as measured using the beam break sensor
- When the device is spinning steadily, the LEDs shall display an image of the current time in 24-hour hh:mm:ss format
- If the stop button is pressed at any time, the motor shall be powered off
After pressing the on button, the motor speed is set and the device spins up. Once the rotation speed threshold is reached, the LEDs begin to display an image representation of the current time.
A quick summary of how an image is actually displayed is that each time the beam break sensor detects a rotation, if the clock is in the running state, then the beam break ISR starts or adjusts the rate of a timer interrupt, and the timer interrupt updates the LEDs for each column of the image as the clock spins around.
Onshape CAD for the 3d printed components can be found here.