Fecha de publicado: 26-Jul-2018. Fecha de actualización: 19-Oct-2024.
Programa en Arduino para separar caracteres…
String split = "133,215,365";
void setup() {
Serial.begin(9600);
}
void loop() {
int parte1 = getValue(split,',',0).toInt();
Serial.print(parte1);
delay(1000);
}
String getValue(String data, char separator, int index)
{
int found = 0;
int strIndex[] = {0, -1};
int maxIndex = data.length()-1;
for(int i=0; i<=maxIndex && found<=index; i++){
if(data.charAt(i)==separator || i==maxIndex){
found++;
strIndex[0] = strIndex[1]+1;
strIndex[1] = (i == maxIndex) ? i+1 : i;
}
}
return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}
Actualización (19-oct-2024).
Inicialmente publiqué este código rápidamente porque lo usé en un proyecto en Arduino y quería guardarlo para poder reusarlo en otra ocasión. Ahora le hice algunos cambios para hacerlo más comprensible y agrego una explicación del mismo.
La idea es que en algún momento podemos recibir en Arduino una cadena (String) con valores separados con un caracter, una coma por ejemplo, y necesitamos obtener cada uno de los valores de la cadena.
La función String getValue(String data, char separator, int index), recibe el String data, el cual es recorrido caracter por caracter hasta encontrar el separador indicado por el caracter separator, y regresa la subcadena indicada por el número entero index. Considerando la numeración como en los arreglos, la primera subcadena tiene el índice cero, la segunda 1, y así sucesivamente.
Si se trata de acceder un índice que sobrepasa el número de subcadenas que hay, la función getValue() regresa una cadena vacía. El usuario debe tomar en cuenta esto al usar esta función en sus propios proyectos.
// Programa en C++ para Arduino
// Por: Julio César Sandria Reynoso
// Obtiene las partes de una cadena separada por el caracter indicado
String split = "123,45,67890";
char separador = ',';
void setup() {
Serial.begin(9600);
Serial.print("Cadena a separar: ");
Serial.println(split);
String parte0 = getValue(split,separador,0);
Serial.print("parte0 = ");
Serial.println(parte0);
String parte1 = getValue(split,separador,1);
Serial.print("parte1 = ");
Serial.println(parte1);
String parte2 = getValue(split,separador,2);
Serial.print("parte2 = ");
Serial.println(parte2);
String parte3 = getValue(split,separador,3);
Serial.print("parte3 = ");
Serial.println(parte3);
}
void loop() {
}
String getValue(String data, char separator, int index) {
int found = 0;
int strIndex[] = {0, -1};
int maxIndex = data.length()-1;
for(int i=0; i<=maxIndex && found<=index; i++){
if(data.charAt(i)==separator || i==maxIndex) {
found++;
strIndex[0] = strIndex[1]+1;
strIndex[1] = (i == maxIndex) ? i+1 : i;
}
}
return found>index ?
data.substring(strIndex[0], strIndex[1]) : "";
}
La ejecución de este programa muestra en el monitor serial la siguiente salida:
Cadena a separar: 123,45,67890
parte0 = 123
parte1 = 45
parte2 = 67890
parte3 =
Si quieres aprender sobre robótica con Arduino, programación o algo más relacionado con computación o tecnologías de información, pide informes en el Instituto de Robótica de Xalapa (www.irox.mx).
Mtro. Julio C. Sandria R.

En este artículo se muestra cómo establecer una sencilla conexión inalámbrica punto a punto entre dos módulos XBee S2C de Digi-Key, usando XBee Explorer USB de SparkFun para conectarlos a una computadora. Esto con la finalidad de que puedan ser usados para comunicación inalámbrica entre dos dispositivos o robots basados en Arduino o Raspberry Pi.
Los módulos XBee S2C son módulos de radiofrecuencia (RF) que proporcionan comunicación rápida y robusta en configuraciones multipunto y punto a punto. Los módulos usados en este artículo son módulos RF XBee S2C 802.15.4 de Digi-Key que tienen las siguientes ventajas:
Los módulos XBee S2C deben ser configurados antes de usarlos. Una forma fácil y rápida de hacerlo es usando otros módulos que permitan conectarlos a una computadora. Para este artículo se usaron módulos XBee Explorer USB de SparkFun, los cuales tienen un conector micro-usb para conectarse a una computadora.

Conecte ambos XBee S2C a la misma computadora y oprima el botón de la lupa en el software XCTU para descubrir dispositivos. Después de un momento de buscar los dispositivos conectados a los puertos USB, se mostrará un cuadro de diálogo con los dispositivos encontrados:



















El interés por crear esta guía de programación, nació por la necesidad de documentar parte del trabajo que se hace en el Instituto de Robótica de Xalapa A.C. (en Xalapa, Veracruz, México), en los cursos y talleres de robótica para niños, jóvenes y adultos. Y para ofrecer una guía en español para nuestras nuevas generaciones de niños y jóvenes ávidos por aprender cosas nuevas.
Este documento está dirigido a las personas que quieren aprender a crear aplicaciones para dispositivos móviles, ya sea teléfonos celulares o tabletas, con el sistema operativo Android. Se usa el ambiente de programación visual 