splitar.ino
#include "split.h"
String cad = "_E1_D101_D81_D91_D131_D121_D111";
//String c[10];
//byte contador = 0;
void setup() {
Serial.begin(9600);
Serial.println(" ");
Serial.println(cad);
if (cad.indexOf("E1") != -1) {
for (int i = 0; i < split(cad); i++) {
//Serial.print(String(i) + ":");
//Serial.println(sp[i]);
if (sp[i].indexOf("D") != -1) {
Serial.println("D=" + sp[i]);
int pin = sp[i].substring(1, sp[i].length() - 1).toInt();
int estado = sp[i].substring(sp[i].length() - 1).toInt();
Serial.println("pin=" + String(pin) + " estado=" + String(estado));
pinMode(pin, OUTPUT);
digitalWrite(pin, estado);
}
}
}
}
void loop() {
}
split.h
/*
* Llamada en el programa
* String cad = "_E1_D101_D80_D91";
* for (int i=0; i<split(cad); i++){
Serial.print(String(i)+":");
Serial.println(sp[i]);
}
*/
String sp[10];
byte split(String cad) {
String s = cad;
byte contador = 0;
while (s.indexOf("_") != -1) {
s = s.substring(s.indexOf("_") + 1);
sp[contador] = s.substring(0, s.indexOf("_"));
contador++;
}
return contador;
}