Pages: 1 2 [3] 4 5   Go Down
Author Topic: Xbee - lettura dal seriale  (Read 3539 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10497
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

anzichè usare la my.print usa una my.println, al lato ricezione dovresti vedere il numero inviato seguito da uno \n.

oppure usi my.write, che dovrebbe stampare 2 bute per ogni numero indipendentemente dal valore (in pratica la print converte OGNI CIFRA in una lettera, con la write i dati arrivano "puliti", ma illeggibili da un'essere umano)
Logged

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

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

anzichè usare la my.print usa una my.println, al lato ricezione dovresti vedere il numero inviato seguito da uno \n.

oppure usi my.write, che dovrebbe stampare 2 bute per ogni numero indipendentemente dal valore (in pratica la print converte OGNI CIFRA in una lettera, con la write i dati arrivano "puliti", ma illeggibili da un'essere umano)
Ora provo anche in questo modo, ma se leggi l'edit ho in parte risolto la parte di lettura. Il problema è ancora il fatto che i dati mi arrivino ad intermittenza ed interrompendosi in maniera strana tipo: a0b255a0b25
su di un piedino del pulsante per il reset ho messo il gnd, l'uscita dell'altro piedino finisce nel pin reset dell'atmega e sempre nello stesso pin c'è una resistenza di 10 kohm che viene dai 5 v :/
Logged

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

hai messo i gnd dei due arduino insieme?
Logged

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

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hai messo i gnd dei due arduino insieme?
?
Logged

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

hai messo i gnd dei due arduino insieme?
?

domanda stupida da parte mia,stai usando gli xbee.

quegli "a" e "b" che vedo nel tuo esempio, immagino che li avrai aggiunti per capire quando inizia un numero e finisce l'altro..

non capisco cosa intendi per arrivo di dati ad intermittenza. l'interruzione forse deriva dal fatto che spegni il serial monitor?
Logged

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

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hai messo i gnd dei due arduino insieme?
?

domanda stupida da parte mia,stai usando gli xbee.

quegli "a" e "b" che vedo nel tuo esempio, immagino che li avrai aggiunti per capire quando inizia un numero e finisce l'altro..

non capisco cosa intendi per arrivo di dati ad intermittenza. l'interruzione forse deriva dal fatto che spegni il serial monitor?
Si, sono per capire quando inizia un numero e quando finisce l'altro.
Per intermittenza intendo dire che sul serial monitor ricevo
b
2
5
5
[..]
a
0
b
2
5
Qui si ferma(non sempre in un determinato punto)
Aspetto circa 1 secondo e riparte..
Logged

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

uhmmm magari si resetta arduino? se nello stand alone metti il led al pin 13 te ne accorgi perchè quando arduino si resetta il led fa un lampeggio
Logged

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

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhmmm magari si resetta arduino? se nello stand alone metti il led al pin 13 te ne accorgi perchè quando arduino si resetta il led fa un lampeggio
Fatto, non è un reset smiley-sad
Logged

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

uhmmm fai una bella cosa, ogni liip invia anche un numero che si incrementa ogni loop (usa un unsigned long), poi fai la stessa cosa anche sull'arduino che riceve. in questo modo capiamo chi dei due "rallenta"
Logged

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

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhmmm fai una bella cosa, ogni liip invia anche un numero che si incrementa ogni loop (usa un unsigned long), poi fai la stessa cosa anche sull'arduino che riceve. in questo modo capiamo chi dei due "rallenta"
Per "fare la stessa cosa sull'arduino che riceve" intendi inviare da quello che perora sta a ricevere?
Logged

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

no, anche in quello che riceve stampi il numero attuale di loop.
Metti caso che quello che si blocca è il ricevente, se solo quello che invia manda il numero di loop, ti sembrerebbe che il bloccato è il trasmittente. invece se anche il ricevente stampa il numero di loop, noteresti che sì, il trasmittente smette di inviare il numero di loop, ma anche il ricevente smette di farlo..

la cosa ideale sarebbe da testare entrambi contemporaneamente: magari si impallano contemporaneamente!!!
Logged

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

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 333
Posts: 22938
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma non puoi mettere il codice che stai usando ora?
Senza codice, sappiamo cosa ti fa, ma non come lo fa.
Logged


Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no, anche in quello che riceve stampi il numero attuale di loop.
Metti caso che quello che si blocca è il ricevente, se solo quello che invia manda il numero di loop, ti sembrerebbe che il bloccato è il trasmittente. invece se anche il ricevente stampa il numero di loop, noteresti che sì, il trasmittente smette di inviare il numero di loop, ma anche il ricevente smette di farlo..

la cosa ideale sarebbe da testare entrambi contemporaneamente: magari si impallano contemporaneamente!!!
E allora, stavolta quando ho provato i dati arrivavano normalmente. La differenza di collegamento sta solo in un condensatore(che era invertit polarmente) e nella mancanza dei piedini digitali 6 e 9 (troppa rabbia repressa, avrò tolto l'atmega dallo zoccolo con troppa violenza smiley-grin). Posso credere fossero quelli ? Io per sicurezza ho fatto un paio di prove perchè a volte me li faceva questi scherzetti ma sembra che si sia aggiustato :!

Edit: NON si è aggiustato:
Nel codice del tc ho aggiunto un "/"+numero che si incrementa ed ho notato questo:
a
0
b
0
/
4
2
7
a
0
b
0
/
a
0
b
0
/
4
4
5


Proprio quando riparte, in numero è incrementato di una ventina.. quindi lo standalone lavora nel frattempo.

Lesto, non ho ben capito la logica di quello che mi proponi tu..ma sul rx il numero che devo printare sul seriale deve essere lo stesso che ricevo dal tx oppure un altro long che creo ? Se la risposta è la seconda.. come faccio a capire da questo chi dei due smette di "funzionare" ?
Logged

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

se dopo che si pianta riparti una ventina dopo, allora si sta piantando l'arduino, e non lo stand-alone! secondo me l'arduino si resetta, e per caso alimentato via USB? se si, alimentalo via trasformatore!


Ma non puoi mettere il codice che stai usando ora?
Senza codice, sappiamo cosa ti fa, ma non come lo fa.
approvo, sciorty posta il codice, sia dle "trasmittente" ce del ricevente
Logged

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

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 725
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se dopo che si pianta riparti una ventina dopo, allora si sta piantando l'arduino, e non lo stand-alone! secondo me l'arduino si resetta, e per caso alimentato via USB? se si, alimentalo via trasformatore!


Ma non puoi mettere il codice che stai usando ora?
Senza codice, sappiamo cosa ti fa, ma non come lo fa.
approvo, sciorty posta il codice, sia dle "trasmittente" ce del ricevente
Il codice c'era, ma in effetti chi lo guarda negli screen ? smiley-grin
Comunque:
Code:
#include <NewSoftSerial.h>
NewSoftSerial my (3,2);
unsigned long i;
void setup(){
  Serial.begin(9600);
    my.begin(9600);
}
void loop(){
  delay(10);
  my.print('a');
  delay(10); 
  my.print(map(analogRead(A0),0,1023,0,255),DEC);
  delay(10);
  my.print('b');
  delay(10);
  my.print(map(analogRead(A1),0,1023,0,255),DEC);
  delay(10);
  my.print('/');
  my.print(i++, DEC); 
}
Code:
#include <NewSoftSerial.h>
NewSoftSerial my (3,2);
void setup(){
  Serial.begin(9600);
  my.begin(9600);
  delay(100);
}
void loop(){
 if(my.available())
  Serial.println(my.read(), BYTE);
}

Si, lo alimento via usb. Se lo collego al trasformatore ovviamente dovrà rimanere l'usb per il seriale, quindi quali dei due l'arduino "preferirà" ?
Logged

Pages: 1 2 [3] 4 5   Go Up
Jump to: