Guarda, a me funziona quello.. Ho messo pure qualche piccolo accorgimento nel caso in cui si volessero inviare solo alcuni valori e non tutti, tipo
a100c101;#include <NewSoftSerial.h>
NewSoftSerial my(3,2);
char val;
String string="";
String a="";
String b="";
String c="";
int a_int,b_int,c_int;
void setup(){
Serial.begin(9600);
my.begin(9600);
}
void loop(){
if(my.available()>0)
{
a=b=c=string="";
val=my.read();
while(val!=';'){
if(my.available()>0)
{
string+=val;
val=my.read();
}
}
Serial.println(string);
for(int i=0;i<string.length();i++){
if(string.substring(i,i+1).equals("a"))
{
i++;
while(!string.substring(i,i+1).equals("b")&&!string.substring(i,i+1).equals("")){
a+=string.substring(i,i+1);
i++;
}
}
if(string.substring(i,i+1).equals("b"))
{
i++;
while(!string.substring(i,i+1).equals("c")&&!string.substring(i,i+1).equals("")){
b+=string.substring(i,i+1);
i++;
}
}
if(string.substring(i,i+1).equals("c"))
{
i++;
while(!string.substring(i,i+1).equals("")){
c+=string.substring(i,i+1);
i++;
}
}
}
if(!a.equals(""))a_int=stoi(a);
if(!b.equals(""))b_int=stoi(b);
if(!c.equals(""))c_int=stoi(c);
Serial.print(a_int);
Serial.print("--");
Serial.print(b_int);
Serial.print("--");
Serial.println(c_int);
}
}
int stoi(String text)
{
char temp[20];
text.toCharArray(temp, 19);
int x = atoi(temp);
if (x == 0 && text != "0")
{
x = -1;
}
return x;
}
Prova questo, magari hai una botta ci cu
