settaggio PWM freq.

Ciao a tutti,

sto elaborando un semplice prog per esercitarmi a studiare il codice di arduino:
Consta nel comando di 3 servi attraverso un joystik.
ho previsto in output i pin PWR 9-10-11.
il 9 e il 10 funzionano correttamente l’11 no.
Mi sono un pò documentato è credo che il problema sia nel fatto che i pin hanno un control time( che non ho ancora ben capito cosa sia) diverso.
vi allego il codice affinché possiate vedere eventuali (probabili) miei errori.

Qualcuno sa se è possibile settare anche l’ 11 come il 9 e 10, oppure se si può cercare un altra soluzione.

grazie in anticipo.

// ARM_ROV 0.1
//Simulation of a arm for a ROV
// by Paverik



 #include <Servo.h>
 unsigned long time;
 byte mem=0;

 Servo myservo2; 
 Servo hand;
 Servo myservo;
 int potpin5=5;                    // analogic pin 5 from joystick up down
 int potpin=0;                    // analogic pin 0 from joystick right left
 int valhand=2;                  // analogic pin 2 from pot of the robot hand
 int weightpin=3;               // analogic pin from weight sensor
 int val5;                     // var read the analogic pin 5
 int val;                     // var read the analogic pin 0
 int val2;                   // var read the analogic pin 2
 int weight;                // var read the analogic pin 3
 int ledpin=13;            // weight allarm led red
 int ledpin2=2;           // weight allarm led yellow
 int ledpin4=4;          // weight allarm led  green

 void setup()
{
  myservo2.attach(9);            // select output pin 9
  hand.attach(11);              // select output pin 11
  myservo.attach(10);          // select output pin 10
  pinMode(ledpin2,OUTPUT);
  pinMode(ledpin4,OUTPUT);
  Serial.begin(9600); 
  time=millis();
}

   void loop()
{
  // monitor value analogic pin-----------------------------------------------------
  
  Serial.print("valore potenziometro up ");
  Serial.println(val5);
  Serial.print("valore potenziometro r/l ");
  Serial.println(val);
  Serial.print("weight ");
  Serial.println(weight);
  Serial.print("HAND ");
  Serial.println(val2);
  
  //move servo  up down ------------------------------------------------------------
  
  val5=analogRead(potpin5);
  val5=map (val5,0,1023,0,179);
  myservo2.write(val5);
  delay(5);
  
   //move servo  right left ---------------------------------------------------------
   
  val=analogRead(potpin);
  val=map (val,0,1023,0,179);
  myservo.write(val);
  delay(10);
  
   //move servo  hand ---------------------------------------------------------
   
  val2=analogRead(valhand);
  val2=map (val2,0,1023,0,179);
  hand.write(val2);
  delay(10);
  
  //read the weigth------------------------------------------------------------------
  
  weight=analogRead(weightpin);
  
  //weight allarm--------------------------------------------------------------------
  
  // max weight allarm with blink-led------------------------------------------------
  {
    if (weight>600)                   // max sicurity weight
  {
    if (millis() > time+100){                                          
    mem=!mem;                        
    digitalWrite(ledpin,mem);    
    time = millis();
  // weigth with fix ligt led--------------------------------------------------------
}
  }
  else
  {
  digitalWrite(ledpin,LOW);
  }
  if (weight>400)
  {
  digitalWrite(ledpin2,HIGH);
  }
  else
  {
  digitalWrite(ledpin2,LOW);
  }
  if (weight>100)
  {
  digitalWrite(ledpin4,HIGH);
  }
  else
  {
  digitalWrite(ledpin4,LOW);
  }
  
}
}

sono sempre io, ho già capito il perchè non funziona grazie ad un post sul forum. la libreria Servo può pilotare solo due servi.

mi metto al lavoro per trovare un cod alternativo.

ciao