Something I find fascinating about synthesizers is knowing that a voltage waveform is creating the sound we hear. I figured it would be cool to have a way to physically view the different waveforms I create with my synthesizer, but I don't have money laying around to buy an oscilloscope.
Using components I had laying around, I programmed up an Arduino Mega and connected it to an LCD screen. Then I constructed a simple frequency tone generator with a 555 timer and connected the output across the Arduino so I could sample the output to try to generate a reconstruction of the voltage waveform on the LCD screen.
This waveform plotting doesn’t work well on a 1602 LCD because it has very limited resolution. The 16 columns and 2 rows of fixed-size characters makes it difficult to achieve the level of detail needed to depict a waveform. With just 8 custom characters for vertical bars, the display can only show a coarse, blocky approximation of the waveform, losing much detail. For better signal visualization, I would use a graphical LCD or OLED with pixel-level control.