ArduinoUno ,Esperar una cadena de caracteres para continuar ejecutando el código

Hola, buen día a todos este es mi primer post en esa Comunidad :slight_smile: . soy relativamente nuevo en Arduino.
Lo que pretendo hacer es leer una cadena caracteres ejemplo: 0,1,2,3,4,5,6,7 y ponerlos en un array int bin, esta cadena de caracteres puede contener hasta 8 números, pudiendo estar en desorden y así mismos como puede recibir 8 números pueden ser nomas 1 ejemplo; 3,0,4,1 ejemplo2; 1 . los números que pueden estar en el arreglo comprenden del 0 al 7.
Bueno a continuación dejo el pedazo de código donde estoy un poco estacado. (No es el código completo, si se ocupa mayor contexto no abría problema en ponerlo )

int  bin [] = {}; 
int Cont=0; 
int cantArray=1;

void setup() {
  Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}


 void loop(){
   recive();
  Serial.print("Si se imprime esto antes de que se llene el array no sirve, quiero que empieze hasta despues de recivir los datos ");
   
}
void recive(){
  bai:
   if (Serial.available() > 0)
   {
      String str = Serial.readStringUntil(',');
      int data = str.toInt();
      
      Serial.print("Esta es la cantidad de posiciones que hay en el array: ");
      Serial.println(cantArray);  
      bin[Cont]=data;
      Serial.println(bin[Cont]);
      Cont++;
      cantArray++;
    goto bai;
  }

  }

Yo creo que tu programa tienen un error mas alla que parcialmente esta bien encarado.
El error es que prestas atención al caracter delimitador y no al final.
Como terminas la secuencia es la pregunta que te hago?
Entiendo que tu haces el programa y nosotros podemos imaginarnos todo tipo de situaciones.

ingresas 1 luego digitas , luego ENTER ?
ingresas 2 luego ENTER y eso seria una de las alternativas
1,2 ENTER
con el que sistema tendria que cargar dos datos 1 y 2 en posiciones 0 y 1.
Si es asi, tu detector debería estar centrado en que no este presente la ',' (coma) seguida del ENTER
Es mas fácil teniendo control de los caracteres ingresados que usar funciones como Serial.readStringUntil(',')
Mas tarde edito este post y te muestro como podría ser.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.