Problema com código (botão e led)

Eu comecei a estudar Arduino, e ainda estou no básico, mas já aprendi sobre coisas como porta PWM, ligar e desligar led através do botão, e queria juntar esses dois. Eu ligaria o led num botão, a onde a intensidade do led iria variar entre 0 e 255, e em outro botão eu iria desligar o led.

Eu consegui ligar o led, mas não consigo fazer o processo de desligar. Eu fui testando tudo que consegui imaginar, e no final eu acho que estou mais perdido do que quando comecei. Provavelmente boa parte do código não faz sentido e vou ter que reescrever ele. Enfim, se alguém puder me ajudar, eu agradeço

#define led 6
#define btn1 2
#define btn2 3
#define maximo 255
#define tmp 10

int minimo=0;

int btnclicado=0;
int btnliberado=0;

void trocaled(){
  if(digitalRead(led)==btn2){
    analogWrite(led, 0);
  }else{
    while(minimo==0){
    for(int i=minimo;i<maximo;i++){
      analogWrite(led, i);
        delay(tmp);
    }
    for(int i=maximo;i>minimo;i--){
      analogWrite(led, i);
      delay(tmp);
    }
    }
  }
  }
  
void keyup(){
  if((btnclicado==1)and(btnliberado==1)){
    btnclicado=0;
    btnliberado=0;
    minimo=0;
    trocaled();
  }
}

void setup() {
  pinMode(led, OUTPUT);
  pinMode(btn1, INPUT);
  pinMode(btn2, INPUT);
}

void loop() {
  if(digitalRead(btn1)==HIGH){
    btnclicado=1;
    btnliberado=0;
  }else{
    btnliberado=1;
  }
  keyup();
  }