Por exemplo, eu gostaria de separar a palavra oi, ela possui duas caracteres(o, i) e ao separar esses caracteres, eu teria outra programação já pronta, uma com a letra "o" e outra com a letra "i", porém eu não sei como que eu faço essa separação. Se isso for possível, eu agradeço a ajuda.
Minha tentativa de programação
String comando="";
String parametro="";
int P1 = 2;
int P2 = 3;
int P3 = 4;
int P4 = 5;
int P5 = 9;
int P6 = 8;
void setup() {
Serial.begin(9600); //inicia a serial
pinMode(P1,OUTPUT);
pinMode(P2,OUTPUT);
pinMode(P3,OUTPUT);
pinMode(P4,OUTPUT);
pinMode(P5,OUTPUT);
pinMode(P6,OUTPUT);
}
void lerserial() { //funçao que transforma o que e recebido pela serial em uma string
comando = "";//reset do valor
parametro="";//reset do valor
boolean isCommand=true;//determina aonde salvar o caracter
char carac; //armazena cada caracter
while(Serial.available()>0) { // enquando commandeber caracteres
carac=Serial.read(); //grava-lo na variavel carac
if(carac ==' ') {//se o caracter for espaco
isCommand=false;//gravar o restante na var parametro
}
if((carac !='\n') && (isCommand==true)) {//se o caracter NAO for quebra de linha e for um comando
comando.concat(carac);//concatena o valor na var comando
}
if((carac !='\n') && (isCommand==false)) {//se o caracter NAO for quebra de linha e for um parametro
parametro.concat(carac);//concatena o valor na var parametro
}
delay(50); //delay para nova leitura
}
}
void loop() {
if(Serial.available()) { // se estiver recebendo algo pela serial
Serial.println("Estou recebendo");
lerserial(); //executar a funçao que transforma os caracteres em string
Serial.print("Comando:"); Serial.println(comando);
Serial.print("Parametro"); Serial.println(parametro);
// tratar
if(comando == "a" || comando == "A") {
digitalWrite(P1,HIGH);
digitalWrite(P2,LOW);
digitalWrite(P3,LOW);
digitalWrite(P4,LOW);
digitalWrite(P5,LOW);
digitalWrite(P6,LOW);
Serial.print("a ");
Serial.print(parametro.toInt());
}}