Hi,
I developed a cheap class-D amplifier for PWM outputs to direct drive a speaker of 4 ohms or more. It is based on a 74AC14 which contains 6 inverting schmitt-triggers. The AC variant allows very high output currents, more than most other families. It is available at around ~0,30 EUR here in Germany. The amp give good volume, much more than what is possible from the Arduino ports directly. A bipolar electrolyte capacitor should be used to protect speakers from DC, I used a unipolar one, but that is not recommended. The coils are optional and just needed for RF reject on longer speaker cables that act as radio at such high slew rates. Any coil with about 100µH that can handle about 0.2A will do.
The circuit does not contain a low-pass filter and is therefore for PWM rates in the non-hearable region. Some noise on low volume parts of music can be noticed due 8-bit output. This circuit can also be used with SimpleSDAudio library.
Enjoy,
Tut
PWM_8Bit_MonoAmplifier.fzz (52.6 KB)