Leer cadena en una salida

He intentado diferentes soluciones pero no logro hacerlo funcionar como necesito.

Tengo 2 leds un botón y un potenciómetro con el que regulo la intensidad de uno de los leds mientras que la intensidad del otro led la regula la secuencia array disparada por el botón, sin embargo el segundo led parpadea tanto antes como después de leer la secuencia aunque el monitor serie no muestra errores.

int count[]= {
0,5,10,25,100,175,225,250,254,250,225,200,175,
150,125,100,75,50,25,15,5,0};

unsigned long tiempo;
int retardo = 50;
int axisVal = 0;
int ledRVal = 0;  
int ledVVal = 0;  
int i=22;

void setup()
{
  pinMode(2, INPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  Serial.begin(9600);
}
void loop()
{
  axisVal = analogRead(A3);
  analogWrite(9, ledRVal);
  ledRVal = map(axisVal, 0, 1024, 0 ,255);
  int button1Val = digitalRead(2);
    if (button1Val == HIGH)
    i=0;
    if(millis() - tiempo >= retardo)
    {
    	tiempo += retardo;
    	if((i<22);
	i++)
        {
        	if (i < 22)
           	Serial.println(count[i]);
		analogWrite(10, count[i]);
    		tiempo=millis();
        }
    }
}

Gracias

Esto esta mal!

    if ((i < 22);
        i++)
    {
      if (i < 22)

al menos podria ser asi

void loop(){
  axisVal = analogRead(A3);
  analogWrite(9, ledRVal);
  ledRVal = map(axisVal, 0, 1024, 0 , 255);
  int button1Val = digitalRead(2);
  if (button1Val == HIGH) 
    i = 0;
  if (millis() - tiempo >= retardo)   {
      tiempo += retardo;
      if ((i < 22)
          i++;
      Serial.println(count[i]);
      analogWrite(10, count[i]);
      tiempo = millis();
  }
}

con tu código después de cada pulsación el led que queda leyendo un valor 50, ya no parpadea pero se queda encendido :\

A ver ahora

const int count[] = {
                      0, 5, 10, 25, 100, 175, 225, 250, 254, 250, 225, 200, 175,
                      150, 125, 100, 75, 50, 25, 15, 5, 0
                    };

const byte BOTON= 2;                   
const byte LED1 = 9;
const byte LED2 = 10;

unsigned long tiempo;
int retardo = 50;
int axisVal = 0;
int ledRVal = 0;
int ledVVal = 0;
int i = 22;

void setup(){
  pinMode(2, INPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  axisVal = analogRead(A3);
  analogWrite(LED1, ledRVal);
  
  ledRVal = map(axisVal, 0, 1024, 0 , 255);
  int button1Val = digitalRead(BOTON);
  if (button1Val == HIGH) 
      i = 0;
  if (millis() - tiempo >= retardo)   {
      if (i < 22)
          i++;
      else   // esto elimínalo si no te sirve
          i = 0;
          
      Serial.println(count[i]);
      analogWrite(LED2, count[i]);
      tiempo = millis();
  }
}

Mi código solo corregía tu error.
Y sigue haciéndolo con 2 o 3 cambios que no le hacen.
Cuando llega a 22 tu contador a través del indice i lo pongo a 0.

cambiando el (i = 0) por (i = 22) de después de "else" ya funciona como estaba buscando, un millón de gracias.