Ho provato mille volta quel metodo, ma mi ritorna un errore..
Ti posto il codice:
void loop()
{
if (Serial.available() > 0) { //Se sono presenti dati nel buffer
while (Serial.available() > 0) { //finchè ci sono dati in seriale li legge e li aggiunge alla variabile
valore_buffer[cont] = Serial.read(); //riempie il buffer con i dati in seriale
cont ++;
pausa(2);
}
}
stringa_buffer = valore_buffer;
for (int i = 0; i <10 ; i++) { //pulisco array
valore_buffer[i] = 0;
}
cont = 0;
if ((stringa_buffer.substring(0,1) == "s") && (stringa_buffer.substring(1,2) == "1")) { //se il comando è s indica lo stato della connessione
Serial.println("#00Connected to Bloetooth.");
digitalWrite(led_stato, HIGH);
stato_connessione = 49;
}
else if ((stringa_buffer.substring(0,1) == "s") && (stringa_buffer.substring(1,2) == "0")) { //se lo stato è uguale a 0
Serial.println("#00Disconnected from Bloetooth.");
digitalWrite(led_stato, LOW);
stato_connessione = 0;
stop_motori();
}
if ((stato_connessione == 49) && (stringa_buffer.substring(0,1) == "c")) {
if (stringa_buffer.substring(1,2) == "u") {
motore = atoi(stringa_buffer.substring(2,3));
Ora come ora me ne dà altri, ma non me lo faceva fare.. Non è che devo usare una stringa di "appoggio" e poi convertirla?
tipo:
stringa_temp = stringa1.substring(2,3);
motore = atoi(stringa_temp);