I am looking for a circuit to drive a speaker to make a fairly loud simple tone - a square wave driven from a microcontroller (Arduino/ATMega).
There are obviously a billion chips and amplifiers out there that talk about "gain" and stuff, but I want to do something much simpler. I currently have a darlington pair transistor stack which will dump a couple of amps from a 12 volt source through the (4 or 8 ohm) speaker, from the uC's digital output pin.
For a "Standard 4 ohm speaker" - I am not sure how to drive this. Is it okay to just dump a "12 volt / 3 Amp" square wave into the speaker - or should I step up/down the voltage/signal with a transformer?
If the speaker was purely resistive (which it is not) one would argue that I need to only provide adequate current so that with the 4 ohm load I am not exceding the maximum wattage of the speaker, per (W=IIR) (Where I is controlled by the transistor, R by the speaker, and W is the maximum wattage).
Is it as simple as this, or am I missing something?