How to use a small speaker with three pins?

How do I use the following speaker with the Arduino?

http://www.dx.com/p/diy-arduino-buzzer-module-black-135036#.VOz3RETkfmE

Note that it has 3 pins.

I've tried giving it power (3.3 and 5 volts) by using the pin labeled "-" as ground, and the middle pin as the positive, I've then connected the "S" (which I'm assuming is "Signal") to pin 9 on the Arduino:

void setup() {
  pinMode(9, OUTPUT);
  Serial.begin(9600);
}


void loop() {
  for(unsigned int i = 0; i < 20000; i += 500) {
      tone(9, i);
      Serial.print("debug: frequency: ");
      Serial.println(i);
  }
  delay(500);
  Serial.println("debug: finished sleeping");
}

I don't know what frequencies it can produce, so I tried all of them. I also tried with i++.

I've also tried some other simple programs that supposedly generate some tones, but I hear nothing in all cases.

Finally I tried giving it power just on a DC power supply, I tried again with "-" as ground, and then tried giving it 3 to 5 volts on the "S" pin, no sound, then again 3 to 5 volts on the middle pin with the same pin as ground as before. Again no sound.

How do I use this speaker?

One of the comments at the dx.com site says:

I figured out that GND should go to pin marked as "S", and Arduino's PWM signal goes to pin that is marked as "-".

He doesn't mention whether the other pin requires 5V.
It might be wise to use a resistor from the Arduino PWM output to the speaker - try 100 ohms.

Pete

el_supremo:
One of the comments at the dx.com site says:He doesn't mention whether the other pin requires 5V.
It might be wise to use a resistor from the Arduino PWM output to the speaker - try 100 ohms.

Pete

That actually works. I'm using a 100 ohm resistor and I have GND to the pin marked "S" while pin 9 is connected to the pin marked "-".

What happens if I remove the resistor? Will I break something?

To be honest I'm surprised I didn't break it with my careless efforts earlier.

The resistor was more a precaution to avoid the possibility of shorting the Arduino pin. It will also work as a fixed volume control - you can always try a lower valued resistor, or a potentiometer, to get a louder output.

Pete