Driving speaker from Arduino

I did a quick search for "Cat repellent arduino" and though there is a thread, it doesn't answer a question I have:

I too am wanting to make a device to scare cats away.

Is the output of the Arduino good enough to drive a speaker to get a decent bit of noise out of it?

Push coming to shove, a FET could be used to drive the speaker, but I guess I have to ask.

Is the output of the Arduino good enough to drive a speaker to get a decent bit of noise out of it?

No. Connecting the output to an amplifier would be the best solution.

Yes, but that is a lot of stuff to get the result. As I am (hoping) to be pumping out 30kHz signals, I hope that I don't need to get too complicated.

I am ok with the FET option though.

A regular speaker won't do much with those frequencies; you need one that is designed for those frequencies.

For amplifying sound I'd opt for a BJT rather than FET, but as your output is likely to be a block wave there won't be much difference.

What you want is called an "audio amplifier". It's not complex. Plenty of such modules ready-built on eBay. :roll_eyes:

But to drive a 30 kHz piezo tweeter, you want a sine wave, not an Arduino square wave.

By way of reference, research the "portable dog killer". :grinning: