Pages: [1]   Go Down
Author Topic: Chiarimenti Serial.find()  (Read 1215 times)
0 Members and 1 Guest are viewing this topic.
Bologna
Offline Offline
God Member
*****
Karma: 5
Posts: 520
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Un saluto a tutti. Ho visto in reference questa funzione, Serial.find, ma non ho capito come usarla e a cosa serva... Dal mio inglese, che è assai scarso, penso di aver capito che mi potrebbe servire, ma prima vorrei sapere effettivamente cosa fa. Grazie! smiley-grin
« Last Edit: July 18, 2012, 02:43:47 pm by SUBSEA » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 136
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao, la traduzione del reference descrive grossomodo che la funzione si mette a leggere in buffer seriale finchè non incontra la stringa che hai passato come parametro. Se la trova restituisce true altrimenti false se non la trova ovvero la funzione ha terminato la lettura del buffer senza incontrare la stringa passata come parametro.

Ciao
Logged

Bologna
Offline Offline
God Member
*****
Karma: 5
Posts: 520
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao fabpolli, questo era quello che avevo tradotto, ( ma di cui non ero sicuro) ma io mi chiedevo come fare per farla funzionare. Ho provato a buttar giù qualche schizzo, ma mi dice che la conversione da int a cura manca. Cosa posso fare? smiley-cry
« Last Edit: July 19, 2012, 02:41:31 am by SUBSEA » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 136
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao, ho provato in uno sketch questo codice
Code:
if (Serial.find("pippo")){
  }

e non mi restituisce nessun errore. Prova a postare il tuo codice...
ciao
Logged

Bologna
Offline Offline
God Member
*****
Karma: 5
Posts: 520
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao e grazie ancora. Intanto ti spiego il mio progetto: inviare da un arduino un segnale seriale che lun altro leggerà e, se comparirà una cifra, farà una creta azione. Questo è lo sketch a cui avevo pensato:
Code:
void setup(){
  Serial.begin(9600);
}
void loop(){
  Serial.print(9);
}
per la trasmissione e questo:
Code:
void setup(){
  Serial.begin(9600);
  pinMode(13,OUTPUT);
}
void loop(){
  if(Serial.find(9)){
    digitalWrite(13, HIGH);
  }
}
per la ricezione. Io sono praticamente estraneo al campo delle comunicazioni, ma è un ambiente che mi affascina molto e che vorrei imparare. Grazie e non schifarti degli ORRORI che saranno presenti in questi sketch!  smiley-mr-green
Ora il problema è che il led non si accenede, nonostante che io abbia collegato il pin tx del 1° al pin rx del 2°.
« Last Edit: July 19, 2012, 04:36:21 am by SUBSEA » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 136
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nel serial find hai messo 9 e non "9" il parametro deve essere un char quindi dovresi convertire il valore in char prima di inviarlo sulla seriale.

Ciao
Logged

Bologna
Offline Offline
God Member
*****
Karma: 5
Posts: 520
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok. Inviando i comandi da PC funziona tutto. Però ora vorrei che un arduino comunicasse con l'altro senza bisogno del pc. E fattibile? smiley-sad-blue
Logged

Offline Offline
Jr. Member
**
Karma: 2
Posts: 98
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

metti il tx del primo nell'rx dell'altro e l'rx del primo nel tx dell'altro dovrebbe funzionare
Logged

Bologna
Offline Offline
God Member
*****
Karma: 5
Posts: 520
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Si si già fatto ma purtroppo senza risultati... smiley-fat
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6986
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

metti il tx del primo nell'rx dell'altro e l'rx del primo nel tx dell'altro dovrebbe funzionare

Collega il GND con il GND dell'altro Arduino.
Anzi se usa una seriale software su un Arduino cosi puoi utilizzare la seriale per il Debug.

Esempio preso dagli esempi di Arduino
Code:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX

void setup() 
{
 // Open serial communications and wait for port to open:
  Serial.begin(57600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

 
  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Pages: [1]   Go Up
Jump to: