conflitto tra myservo.write e analogwrite?

Ciao a tutti, sto lavorando a un progetto per cui devo gestire contemporaneamente un servocomando e un sistema di led.

Il concetto é semplice: quando il servo ha aperto del tutto un diaframma, se ancora non c’è abbastanza luce dentro un ambiente, il led inizia gradualmente a illuminarsi.

Nello script ho ottenuto il risultato mappando un valore in due sottovalori, da 0 a 85 per i gradi di apertura desiderati del servo e da 85 a 340 (cioé 256 valori) per il led.

La cosa strana é che, nonostante la porta seriale mi confermi che i valori del led salgono gradualmente dopo che il servo è a 85, questo si accende solo una volta raggiunto il 255.
Ho notando che disattivando, nel setup, la connessione al servo, il led si accende invece gradualmente, come dovrebbe.

Che ci sia qualche conflitto nel gestire i due pwm in contemporanea?
Grazie a tutti.

#include <Servo.h>  
Servo myservo;  

const int analogInPin = A5;  // potenziometro
const int analogOutPin = 10; // led

int sensorValue = 0;        //potenziometro
int outputValue = 0;        
int led = 0;
int servo = 0;
void setup() {

  Serial.begin(9600); 

  myservo.attach(9);  // se disattivato il led si illumina gradualmente
  
  pinMode(analogOutPin,OUTPUT);
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);            
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 340); 
 
 servo = outputValue;
 if (servo > 85)
 {servo = 85;}
 
 
 
led = map (outputValue, 85, 340, 0, 255);
 if (outputValue < 85)
 {led = 0;}
  
  

  myservo.write(servo);
  
  analogWrite(analogOutPin, led);           


  Serial.print("potenziometro = " );                       
  Serial.print(sensorValue);      
  Serial.print("\t output = ");      
  Serial.print(outputValue);   
  Serial.print("\t servo= ");      
  Serial.print(servo); 
  Serial.print("\t led = ");      
  Serial.println(led); 

  
  delay(15);                     
}

da http://www.arduino.cc/en/Reference/Servo:

On boards other than the Mega, use of the library disables analogWrite() (PWM) functionality on pins 9 and 10, whether or not there is a Servo on those pins.

Quindi se usi la libreria Servo scordati di pin 9 e 10 per il PWM... e di sfiga (classica legge di murphy) tu usi proprio uno di quei due!

const int analogOutPin = 10; // led

vabbè ti rimangono comunque altri 4 pin PWM! http://arduino.cc/en/Hacking/PinMapping168

Grazie, risolto dunque!