LittleHacker (Member)
Guru
Messaggi: 1033
Iscritto: 28/04/2009
|
Ciao a tutti,
ho un problema con Arduino, c'è che io invio con il cellulare(via bluetooth), una stringa formata da un carattere e numeri(variabili), ok, vado a stamparli a video, con Serial.print(Read); e mi fa vedere tutto, ma quando vado ad inserire un'if con indexOf o startWith, per sapere quali comandi mi sono arrivati, la condizione funziona a sinchiozzo, cioè:
Codice sorgente - presumibilmente C++ |
#include <SoftwareSerial.h> #include <string.h> SoftwareSerial mySerial(2, 3); // RX, TX void setup(){ mySerial.begin(9600); Serial.begin(9600); } void loop(){ if(mySerial.available()){ char reads = mySerial.read(); String Read = ""; Read = String(reads); //Serial.print(Read); if(Read.startsWith("Y")){ //Ecco Serial.println("Si"); }else{ Serial.println("NO"); } } delay(10); }
|
Lo startWith, mi dice 1 volta SI e 3 volte NO, e anche l'indexOf . Come mai?
Grazie!
Edit: Novità
Ho appena scoperto che se la Y la invio manualmente, con S2 Bluetooth, allora questo me la riconosce sempre, invece se, come nel mio programma, gli invio una raffica di:
Y239
Y483
Y984
Y54
Y1
Non mi riconosce la Y all'inizio
Ultima modifica effettuata da LittleHacker il 14/11/2012 alle 2:50 |