Aiuto Led con Sensore movimento

Ciao a tutti!
Vi chiedo assistenza per un programma che sto scrivendo per comandare accensione/spegnimento e regolare la luminosità di un led attraverso un sensore ad ultrasuoni. Passando la mano sopra al sensore il led dovrebbe accendersi, ripassandola si spegne...ma tenendola sopra..alzandola dovrebbe aumentare la luminosità..
Per accendersi si accende facilmente..ma per regolare la luminosità mi da problemi...cosa sbaglio?

#define trig 8
#define echo 7
#define led 13


int distanza=0;
int tempo=0;
int stato=0;
int temp=0;
int pwm=64;

void setup(){
  pinMode(trig,OUTPUT);
  pinMode(echo,INPUT);
  pinMode(led,OUTPUT);
  Serial.begin(9600);
}

void loop(){

  digitalWrite(trig,HIGH);
  delayMicroseconds(10);
  digitalWrite(trig,LOW);
  
  tempo=pulseIn(echo,HIGH);
  distanza=tempo/58;
  
  Serial.println(distanza);
  
  if((distanza<30)&&(distanza!=0)&&(stato!=2)){
    if(stato==0){
      analogWrite(led,64);
      stato=stato+1;
    }
    else{
        temp=distanza;
        stato=stato+1;
    }
  }
 else{
   if(stato==2){
    if((distanza>=temp)&&(distanza<50)){
      do{
        delay(50);
        pwm=pwm+10;
        analogWrite(led,pwm);
      } while (pwm<255);
      pwm=64;
      delay(1000);
      stato=1;
    }
    else{
      if(distanza>=50){
        analogWrite(led,0);
        stato=0;
      }
    }
  }
   
 }
}

Il problema principale é che il Pin 13 sul Arduino UNO non é un pin PWM e percui non funziona il analogWrite().

Ciao Uwe

Ho la versione Arduino Leonardo..che ha il pwm anche sul pin 13