0
Offline
Tesla Member
Karma: 83
Posts: 8241
:(){:|:&};:
|
 |
« Reply #30 on: October 09, 2011, 08:57:45 am » |
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
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #31 on: October 09, 2011, 09:18:14 am » |
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
Tesla Member
Karma: 83
Posts: 8241
:(){:|:&};:
|
 |
« Reply #32 on: October 09, 2011, 09:36:47 am » |
hai messo i gnd dei due arduino insieme?
|
|
|
|
|
Logged
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #33 on: October 09, 2011, 09:59:22 am » |
hai messo i gnd dei due arduino insieme?
?
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8241
:(){:|:&};:
|
 |
« Reply #34 on: October 09, 2011, 11:42:13 am » |
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
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #35 on: October 09, 2011, 12:03:31 pm » |
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
Tesla Member
Karma: 83
Posts: 8241
:(){:|:&};:
|
 |
« Reply #36 on: October 09, 2011, 12:44:25 pm » |
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
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #37 on: October 09, 2011, 01:26:49 pm » |
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 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8241
:(){:|:&};:
|
 |
« Reply #38 on: October 09, 2011, 02:56:55 pm » |
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
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #39 on: October 09, 2011, 03:37:02 pm » |
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
Tesla Member
Karma: 83
Posts: 8241
:(){:|:&};:
|
 |
« Reply #40 on: October 09, 2011, 04:33:48 pm » |
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
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16499
Don't know what I do
|
 |
« Reply #41 on: October 09, 2011, 04:39:34 pm » |
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
God Member
Karma: 2
Posts: 652
|
 |
« Reply #42 on: October 11, 2011, 09:00:34 am » |
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  ). 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
Tesla Member
Karma: 83
Posts: 8241
:(){:|:&};:
|
 |
« Reply #43 on: October 11, 2011, 05:56:50 pm » |
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
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #44 on: October 13, 2011, 09:28:25 am » |
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 ?  Comunque: #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); } #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
|
|
|
|
|
|