Controll a bunch of 1V DC-motors directly by the arduino

Hello,
is there a possibility to controll 8 or more low current DC motors (1-3V, 40mA) directly by the arduino? They don't have to run all at the same time, but i have to be able to kontroll the engine speed.
For one Motor i tried this and it works, but i dont have enough Output Pins. Would be glad to get some advice. Thank You!

int motorPin1=2;
int motorPin2=3;

void setup(){
pinMode(motorPin1,OUTPUT);
pinMode(motorPin2,OUTPUT);
}

digitalWrite(motorPin1, LOW);
for (int i=0; i<255; i++){
analogWrite(motorPin2, i);
}

It really isn't a good idea to run motors directly off an arduino pin, even small ones.

Do the motors have to be reversible? Do the need to run at independent speeds?

If both answers are no, it would be simple to have them switched individually by a their own transistor (NPN), and a common enable transistor (PNP) run by pwm that would control the speed for them all.

Thanks for the answer. I'm not familiar with the transistors, how do i have to connect with the motors? The motors just have to rotate in one direction and accelerate steady from slow to fast.
What are the trasistors for? For switching?

On hardware side, you could use ULN2003 chips as drivers. For software, depends on what boards do you have, probably you can make more than 6 analog outputs with some kind of library, but default is 6 (non-mega).

I saw this today and thought I would do the biz.

I uses ULN2803 NPN darlington arrays for PWN control of motor and LEDS