Go Down

Topic: Stringa dal monitor seriale (Read 920 times) previous topic - next topic

Mark116

Ciao a tutti, potete spiegarmi come leggere tramite arduino una stringa inviata dal monitor seriale?

lesto

devi usare il serial.read(), però così leggi una stringa alla volta.

sta a te fare il codice. di solito si usa il come carattere di fine stringa il \n, per inviarlo in automatico quando premi invio cìè l'opzione da spuntare nel serila monitor "add newline" o qualcosa del genere
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Dario Gogliandolo

Forse lesto si è confuso, con Serial.read() leggi un carattere alla volta...
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

lesto

si, un carattere, infatti poi perlavo di come riunire la stringa
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Martinix

se ti può aiutare ti passo un stupido programmino, che riceve uan stringa (max 100 caratteri) e la stampa, a me serviva per fare una specie di protocollo seriale 8accendi, spegni ecc led via seriale).
forse ti potra essere utile.

Code: [Select]

//prova controllo acensione led via seriale
int  lun =2;
void setup ()
{
  delay (3000);
  Serial.begin (9600);
  pinMode (13, OUTPUT);
  pinMode (12,OUTPUT);
  Serial.println ("pronto per comunicare!");
 
}

void loop ()
{
  char prova[100]={0};
 
 
  if (Serial.available() > 0)
  {
    delay (250);
    for (int h=0; h < lun; ++h)
   
      prova[h]=Serial.read();
   
 
   
     Serial.print ("Per ora ricevo ");
     Serial.println (prova);
   // Serial.print (prova[0]);
    if (prova[0] == 'a')
    {
      if (prova [1]== '1')
digitalWrite (13, HIGH);
      if (prova[1]=='2')
digitalWrite(12, HIGH);
    }
    if (prova[0]== 'b')
    {
      if (prova[1]== '1')
digitalWrite(13, LOW);
      if (prova[1]=='2')
digitalWrite(12, LOW);
    }
  }

 
}
Le informazioni date, son suggerimenti, osservazioni, ma come le applicate è a vostro rischio e pericolo!

Go Up