Vary 5 vibration motors frequency through Arduino

Hi,

I'm new to electronics and Arduino programming.

I have:
A Arduino Duemilanove w/ ATmega328
5 Vibration motors
Rated voltage 3.0 V DC
Operating voltage 2.7~3.3 V DC
Rated speed 9,000 rpm Min at rated voltage (150Hz)
Rated current 90 mA Max at rated voltage
Starting current 120 mA Max
Starting voltage 2.3 V DC Max, Motor is rotating at min starting voltage.

I want to control the vibration motors through Arduino for the input getting from a external c++ program. The external c++ program is to send the frequency for the vibration motors and how many motors to work at a given time. How do I write data to Arduino from external c++ program and how do I read data from Arduino program? I use Netbeans for c++ programming and Windows XP OS.

I read in the forum that motor speed could be controlled through PWM output pins using analogWrite() command. My question is how the motors could be driven for a given frequency(Hz)?

And also I've read that it is not safe to drive motors directly from Arduino board and should use a external power source. So in this do I have to connect a transistor for each motor or can I use a battery instead?

ex:

input frequency - f(Hz)
input no of motors - n

In this I want to drive n motors in f frequency until next input values are read.

Any help which can be given regarding this is greatly appreciated.

Thank you.

Why'd you post this here in Audio - why not here:

http://arduino.cc/forum/index.php/board,9.0.html

You'd probably get a better response...