[SOLUCIONADO] Problema con el uso del bucle for recorriendo un string

Hola, buenas tardes desde aquí. Estoy intentando hacer un emisor de RF para simular un EV1527 con Arduino Mega 2560.
El código en sí mismo funciona bien, pero quiero agregarle un for que recorra una cadena de 24 caracteres(“1” o “0”) con un condicional para automatizarlo mejor y no hace lo mismo que poniéndolo todo separado.

Este es el código:

const int emisor = 3;
const int clkC = 400;
const int clkL = 1000;
bool j=true;

void setup() {
  Serial.begin(115200);
  pinMode(emisor, OUTPUT);
}

void cero(){
  digitalWrite(emisor,HIGH);
  delayMicroseconds(clkC);
  digitalWrite(emisor,LOW);
  delayMicroseconds(clkL);
}

void uno(){
  digitalWrite(emisor,HIGH);
  delayMicroseconds(clkL);
  digitalWrite(emisor,LOW);
  delayMicroseconds(clkC);
}

void senal(char cadena[24]){
  for(int i=1;i<=24;i++){
    if(cadena[i]=="1"){
      uno();
    }else if(cadena[i]=="0"){
      cero();
    }
  }
  cero();
}

void loop() {
    if(j==true){
      senal("00000000000000000010001");
      delay(10);
      j=false;
    }

/* TODO ESTO ES EL CÓDIGO DEL FOR PERO SEPARADO, PERO CUMPLE SOLO CON UNA CADENA("000000000000000000010001")
    for(int i=1;i<=19;i++){
      cero();
    }
    uno();
    for(int i=1;i<=3;i++){
      cero();
    }
    uno();
    cero();
    delay(10);
*/

}

Cabe recalcar, que como se ve en mi hilo anterior, esto lo hice para reemplazar a la librería RCSwitch.h que no cumple con los requisitos de mi proyecto.
Saludos y gracias por sus respuestas.

Solucionado con el siguiente cambio a la funcion senal:

void senal(char cadena[24]){
  for(int i=0;i<=23;i++){
    int a=cadena[i];
    if(a==49){
      uno();
    }else if(a==48){
      cero();
    }
    Serial.println(a);
  }
}