Como separar datos dentro de una variable

Buenas, estoy realizando una conexión de bluetooth con otro bluetooth, uno lo tengo para envío de datos y otro para recibir, pero me pasa que al recibir los datos, envío todos los datos juntos y cuando los leo los almaceno en una variable pero ahora el problema es que necesito cada variable por independiente y no sé cómo hacerlo, estuve buscando bastante pero no he encontrado información en concreto sobre cómo realizarlo. He intentado enviar las variables separadas por comas para así identificarlas pero no he podido encontrar la función para poder particionar la variable.

Si me pueden ayudar se los agradecería.

Muchas gracias.

Envialos con un caracter separador y de acuerdo a como los lees usa ese caracter para discriminarlos.
puedes usar en la parte de lectura el comenda ReadStringUntil y con el resolver las partes enviadas.

Hoa, muchas gracias por responder pero podrías darme un ejemplo de cómo se utiliza esa función? He buscado y no encuentro un ejemplo concreto y no termino de entender cómo funciona.

Busca en google Arduino ReadStringUntil ejemplo o example y ahi lo tienes.

He estado buscando en inglés para poder encontrar ejemplos sobre esta función y he encontrado uno, sin embargo, necesito algo de ayuda para poder adaptarlo a mis necesidades, aunque tengo algunas ideas. El código que he encontrado es este:

void loop() 
{
    if (Serial.available() > 0)
    {
        // First read the string until the ';' in your example
        // "1;130" this would read the "1" as a String
        String servo_str = Serial.readStringUntil(';');

        // But since we want it as an integer we parse it.
        int servo = servo_str.toInt();

        // We now have "130\n" left in the Serial buffer, so we read that.
        // The end of line character '\n' or '\r\n' is sent over the serial
        // terminal to signify the end of line, so we can read the
        // remaining buffer until we find that.
        String corner_str = Serial.readStringUntil('\n');

        // And again parse that as an int.
        int corner = corner_str.toInt();

        // Do something awesome!
    }
}

Y simplificado queda algo así:

void loop() 
{
    if (Serial.available() > 0)
    {
        int servo = Serial.readStringUntil(';').toInt();
        int corner = Serial.readStringUntil('\n').toInt();

        // Do something awesome!
    }
}

Sin embargo, aún tengo unas dudas y es que en mi caso tengo 4 variables que estoy enviando por serial y si las divido por ";" tendría unas de más, algo así "0;0;0;4600" y para poder extraer esos valores sería algo mas elaborado y es lo que no logro comprender ya que por ejemplo si deseo extraer un número en el que tengo ";" por delante y por detrás al aplicar la función ps siempre me estaría tomando el primer dato ya que se detiene cuando encuentra ese signo. Sin embargo estaba pensando en enviar símbolos diferentes entre cada dato y así realizar un código en el cual pueda identificar cada uno, sólo que me tocaría usar la función muchas veces para así poder decodificar todos los datos. No sé si sea una buena idea o haya otra forma.

Muchas gracias.