descomponer cadena por puerto serial

Hola gente, primero que todo agradecer por su ayuda..por hacer comunidad

Estoy en un problema y quizas alguien me puede dar una mano, se trata de lo siguiente

Me gustaria enviar datos desde el puerto serial al arduino …una serie de números que representan tiempos de inicio y parada de actividades, para lo cual pienso que enviando un vector de datos y descomponiendo este segun su posición…de ahi utilizar esos datos y pegarlos en las funciones de tiempo correspondiente resultaría…y ahí estoy!!…no consigo consigo enviar un array y descomponerlo…alguien tiene alguna sugerencia?…
he trabajado en el sketch que publican aqui mismo

pero no lo logro . como puedo enviar una cadena y ponerle comas entre medio para que el sketch entienda que son dos numeros?…de la siguiente forma

{00,12,33,55,11,44,22}

una cadena de numeros decimales, espero haber sido claro ...atento sus comentarios y gracias

Aclárame una cosa: es enviar números separados por coma? O es recibirlos y descomponer la cadena?

PD: te dije que postearas en Software; pero ya que lo hiciste aquí, entonces ya no lo hagas. Deja que algún moderador mueva este hilo donde corresponde.
Si creas otro hilo con la misma pregunta, cometes una falta de nuevo.

Hola..gracias por tu respuesta..no vi ningún mensaje tuyo...entonces solo postie,..en fin, trataré de no cometer más errores..

lo de la coma es una idea...yo lo que estoy buscando es enviar una cadena de datos, la coma seria un señalizador para separar números decimales de más de un digito...mi idea es que esos datos sean horas que se puedan pegar en una función de alarma...

se me ocurre lo de la coma por este sketch que Dongato postio hace años atrás en el link que deje más arriba, el logra descomponer la cadena en números de dos dígitos separando la cadena que define con comas, entonces yo quiero hacer algo similar pero recibiendo los datos desde el serial

char cadena[] = "Numeros 56, FF, -34, 432, 2FA";
int numeroobtenido =0;

#include "CharToInt.h"

void setup()
{
Serial.begin(9600);

Serial.println(cadena);

Serial.print("Numero en la posicion 8 ");
numeroobtenido=calculadesdeASCII(cadena,8);
Serial.println(numeroobtenido,DEC);

}

void loop()
{

}

espero haberme dado a entender mejor...
saludos y gracias

Separados por coma me suena a algo así:

char cadena[] = "11,22,33,44,55,66,77,88,99";
byte valor[9]; // Puede ser de tipo int si supera 255 o se requieren de negativos.
// El tamaño lo defines si la cadena siempre tendrá una cantidad fija de números, de lo contrario habría que hacerlo diferente.

// Aquí comienza la magia

byte i = 0;
char* fragmento = strtok(cadena, ",");
while (fragmento != NULL) {
  valor[i] = atoi(fragmento);
  i++;
  fragmento = strtok(NULL, ",");
}
// Nótese que no verifica la longitud del array; por lo tanto, este debe tener suficiente espacio para almacenar cada elemento.
// Caso contrario, puede haber corrupción de memoria y un eventual cuelgue del programa.

// Aquí termina la magia

Presta atención a lo que dicen los comentarios...

Hola!
Estuve con el mismo problema. Desde una simple interfaz en VB, envío números que representan datos para la arduino, que a su vez, se transmiten por unos módulos de radiofrecuencia...
La cuestión fue poder separar la cadena entrante por , y asignar correspondientemente a una array o lo que fuera

Hace unos días consulté en el foro, y me rescato en total, dos cuestiones:

  1. Incluir un terminador, es decir, una letra o lo que quieras que nos indique cuando la cadena termina. Esto es importante, porque podemos "descartar" las cadenas que no fueron correctamente recibidas, para evitar confusión en los correspondientes lugares que los datos ocupen.

  2. Un usuario me posteo el código para llamar una pequeña VOID, la cual divide la cadena en perfectas condiciones, yo por mi parte lo intente mucho pero no hubo caso, esto fue excelente y me funciona a la perfección

Hice ambas cosas, con una "p" como final de cadena, y utilizo el código propuesto. Actualmente todo funciona de lo más bien, pero no pongo todavía, el tema del descarte en casos de falla...

Dejo el código y el link de mi consulta, cuestión de adaptarlo

Suerte!

void candenaAarray (byte* array, String cadena) {
  // array debe ser lo suficientemente grande como para almacenar todos los valores en la cadena.
  char str[cadena.length() + 1];
  cadena.toCharArray(str, sizeof(str));
  char* p = strtok(str, ",");
  for (byte i = 0; p != NULL; i++) {
    array[i] = atoi(p);
    p = strtok(NULL, ",");
  }
}