How do I connect an 18 ohm speaker to an arduino?

I am simply making an "arduino piano". I have a piezo, but it does not work well with the range of frequencies needed. I also have an 18 ohm speaker. Most people use a 8 ohm speaker with a 100 ohm resistor. Does this mean I could use a 90 ohm resistor (which obviously doesn't exist, but something close to it) and connect my 18 ohm speaker?

That would exceed the safe output current of the Arduino, which is about 20mA. An acceptable value would be 200 ohms (thus 218 total).

Is there any way I could connect this speaker to my arduino then?

electricviolin: Is there any way I could connect this speaker to my arduino then?

An 18 Ohm speaker refers to the impedance of a sine wave at 1KHz... not the DC resistance!

Use a capacitor to couple the speaker (one lead at Gnd) to a digital pin.

Coupling Cap

Connect the output to a self-powered computer speaker, works great. See my version here. http://forum.arduino.cc/index.php?topic=179761.0 There's working code, a schematic, and youtube video

mrburnette: An 18 Ohm speaker refers to the impedance of a sine wave at 1KHz... not the DC resistance!

Use a capacitor to couple the speaker (one lead at Gnd) to a digital pin.

Coupling Cap

I know. It matters very little for this application. The speaker impedance is so low compared to the resistor, that it is effectively current driven. Thus the difference between the DC and audio impedance is not significant. The DC offset is so attenuated that the very slight cone displacement won't make any significant difference. Also the drive level is miniscule.

If you capacitively couple this speaker with no inline resistance, the instantaneous current can go very high. That is not a good idea. It could easily damage the output pin.

You want an audio amplifier or class D amplifier really...

I used the computer speaker method - works well - thanks crossroads (and everyone else)!