Controllo velocità motore DC con Arduino e L293D

Grazie per la risposta. Ho letto i tuoi link ed ho scritto il seguente codice:

int ML1 =  11; 
int ML2 =  12;
int ON = 10;

// The setup() method runs once, when the sketch starts

void setup()   {                
  pinMode(ML1, OUTPUT);   
  pinMode(ML2, OUTPUT);  
  pinMode(ON, OUTPUT);    
}

// the loop() method runs over and over again,
// as long as the Arduino has power

void loop()                     
{
  analogWrite(ON, 70);  
  digitalWrite(ML1, HIGH);  
  digitalWrite(ML2, LOW); 
  delay(3000);
  analogWrite(ON, 200);  
  digitalWrite(ML1, HIGH);  
  digitalWrite(ML2, LOW); 
  delay(3000);  
  digitalWrite(ML1, LOW); 
  digitalWrite(ML2, LOW);  
  delay(1000);    
  digitalWrite(ML1, LOW); 
  digitalWrite(ML2, LOW);  
  delay(5000);     
}

Tuttavia, nella prima parte:

analogWrite(ON, 70);

il motore si muove solo alcune volte, mentre altre emette solo uno strano sibilo. Come mai?

Il pin "ON" è connesso al pin Enable (pin 16) del L293D