I recently purchased a speaker by Grove:
This speaker is not a like a typical Piezo speaker that has two inputs (VCC and Ground). This speaker takes VCC, Ground, and Signal. The wiki explains that this speaker can be controlled by either analog or digital, but only describes the digital method. The method seems a little hacky to me and can only produce a square wave signal. It essentially writes HIGH to the speaker, delays x number of microseconds, and then writes LOW. By doing this repeatedly, a square wave is formed that oscillates at a specific rate.
This is fine to me but I would like to know how to control the speaker using an analog signal, so that I can hopefully produce a smoother waveform. Any suggestions?