Thanks to the element14 video on how to use the SN74HC595 to add outputs to an Arduino, I was able to build the following.
I‘m a piano technician by trade, but have always wanted to build a piano tuning computer - a significantly more complex challenge than a simple guitar tuner, because of the harmonics involved.
Anyway, this is the phase display that will eventually show whether the piano is in tune or not. Leftward movement means the current note is flat, rightward means sharp.
This is exactly the same circuit shown in the video, with four cascaded registers running 30 LEDs.
Software is very similar to the video. I have an array of eight bytes with different light configurations. I have a loop that increments or decrements the array index however many times I need, and I use % 8 (modulus operator) to determine which of the light patterns to display. Then each iteration shifts the pattern out four times so it cascades down all four registers. You can see my Arduino Mega 2560 in the background. I can it run it from a Nano fairly easily. I used the SPI port pins because I’m hoping to convert the program to use that instead of shiftOut.