Pages: [1]   Go Down
Author Topic: Stringa dal monitor seriale  (Read 886 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 31
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10466
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Messina (Italy)
Online Online
Sr. Member
****
Karma: 5
Posts: 311
Ciao a tutti!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Forse lesto si è confuso, con Serial.read() leggi un carattere alla volta...
Logged

Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

0
Offline Offline
Shannon Member
****
Karma: 130
Posts: 10466
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si, un carattere, infatti poi perlavo di come riunire la stringa
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Trieste/Udine
Offline Offline
God Member
*****
Karma: 16
Posts: 577
Arduino+Python Qt e un pò di Elettronica
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
//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);
    }
  }

 
}
Logged

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

Pages: [1]   Go Up
Jump to: