|
526
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: October 02, 2011, 01:14:58 pm
|
il codice che hai usato legge 2 interi inviati usando la serrila.write, non la serial.print()
Se lo sostituisco l'errore che ricevo è: sketch_oct02a:8: error: invalid conversion from ‘int’ to ‘const uint8_t*’ Ma che differenza c'è tra write e print ?
|
|
|
|
|
527
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: October 02, 2011, 11:21:09 am
|
Ragazzi, non vi seccate ma qui mi sa che il problema sta alla base di qualcosa. Ho provato anche a ricevere sul seriale "standard" e qindi ad utilizzare altri codici di altri post come: byte a,x,y;
void setup(){ Serial.begin(9600); pinMode(11,OUTPUT); pinMode(10,OUTPUT); }
void loop(){ x = 0; y = 0;
// Read first 2 bytes a = Serial.read(); if(a == 255) // Next byte goes in x x = Serial.read(); else if(a == 254) // Next byte goes in y y = Serial.read(); else // Next byte gets ignored a = Serial.read();
// Read next 2 bytes a = Serial.read(); if(a == 255) // Next byte goes in x x = Serial.read(); else if(a == 254) // Next byte goes in y y = Serial.read(); else // Next byte gets ignored a = Serial.read();
analogWrite(10,int(x)); analogWrite(11,int(y));
} Sul tx: Serial.print (255, BYTE); Serial.print (x, BYTE); Serial.print (254, BYTE); Serial.print (y, BYTE); Ma niente,niente,niente ! Il peggio è che ricevendo sul seriale standard non posso stampare sullo stesso per visualizzare i valori, perchè andrebbe in confusione,come detto da un utente. Quindi uso i led per vedere i valori ma non corrispondono ai valori che mando. Uno viene da un pot e l'altro (non avendo un altro pot) proviene dai 5v fissi. Ci tolgo mano ? 
|
|
|
|
|
528
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: September 27, 2011, 10:40:21 am
|
|
Mi correggo, non è solo un numero che compare ma sono tanti valori casuali che compaiono quando la value in byte che invio è sotto i 200-170. Sto impazzendo, senza di questo non vado avanti :O
|
|
|
|
|
529
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: September 26, 2011, 11:37:25 am
|
Sono riuscito (diciamo) a leggere questi benedetti valori ! Sul trasmittente ho cambiato solo il Serial.print in Serial.print(valore,BYTE). Sul ricevitore invece : #include <SoftwareSerial.h> #define rxPin 3 #define txPin 2 SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
byte incomingByte;
void setup(){ Serial.begin(9600); mySerial.begin(9600); pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); }
void loop(){ incomingByte = mySerial.read(); Serial.println(int(incomingByte)); analogWrite(11,int(incomingByte)); } Solo che a volte mi compare un 128 di mezzo. Ho pensato fosse per un ritardo dell'invio, anche perchè il mySerial non ha la proprietà "available" ! Però può anche non centrare niente perchè il 128 si presenta solo quando ricevo valori bassi(0), mentre quando ricevo 255 i valori sono tutti puliti..
|
|
|
|
|
530
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: September 25, 2011, 08:14:49 am
|
Se li leggi correttamente con x-ctu vuol dire che il problema non è il codice perchè sennù li leggeresti sballati anche li, probabilemte ora il problema sta nel codice della ricevente...
certo, ricevente era sottinteso. Però aspetta.. io ho usato la libreria SoftwareSerial, non NewSoftwareSerial
|
|
|
|
|
531
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: September 25, 2011, 07:51:34 am
|
L'ho provato al volo, mancava una cosa... non me ne ero accoro:smiley-sweat: prova così : int val; void setup(){ Serial.begin(9600); } void loop(){ val=map(analogRead(A0),0,1023,0,255); Serial.println(val,DEC); delay(100); } Provato, sempre uguale. Comunque il problema è nel codice molto probabilmente, infatti se la scheda ricevente la collego in usb ed apro il terminale di xctu i dati arrivano puliti come dovrebbero (anche se con un "." davanti, ma credo sia perchè va a capo con il println).
|
|
|
|
|
532
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: September 25, 2011, 07:37:23 am
|
Allora.... il problema è il seguente: sulla trasmittente devi solo cambiare il codice come ti ho detto prima... sulla ricevente devi usare la NewSoftwareSerial e collegare quel adattatore in una altra coppia di pin (li scegli te nella dicharazione), collegandoli al Tx ed Rx di arduino come stai facendo ora quando lo colleghi alla seriale il convertitore Usb-seriale va in conflitto con L'xbee perchè può essere collegato ad una sola periferica per volta te come lo colleghi ne colleghi 2 Atmega ed Xbee
Se usi la SwSerial sposti l'xbee di pin leggi su quei pin e stampi sulla seriale "Standard"
OK, ci siamo quasi. Ho fatto un codice del genere ma le letture del mySerial sono comunque sbagliate (o sono valori hex oppure variano ad muzzum): #include <SoftwareSerial.h> #define rxPin 3 #define txPin 2 SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin); int val;
void setup(){ Serial.begin(9600); mySerial.begin(9600); pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); } void loop(){ val=mySerial.read(); Serial.println(val); analogWrite(11,val); delay(100); } Sul trasmettitore sempre: int val; void setup(){ Serial.begin(9600); } void loop(){ val=map(analogRead(A0),0,1023,0,255); Serial.println(val); delay(100); }
|
|
|
|
|
534
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: September 25, 2011, 06:49:12 am
|
aspetta te hai un altro problema.... dal lato ricevitore hai un arduino connesso ad un xbee e al pc... giusto ? l'xbee dove l'hai attaccato a livello di pin ?
Si, uso questa board per metterci il modulo e lato ricevente ho una scheda arduino 2009 collegata in TX->TX RX->RX (invertendoli non funziona, forse la serigrafia dei pin è sbagliata) e lato trasmittente uno standalone con lo stesso collegamento della scheda
|
|
|
|
|
535
|
International / Italiano / Re: Xbee - lettura dal seriale
|
on: September 25, 2011, 06:32:37 am
|
Il map devi faarlo sul trasmettitore perchè quando leggi la seriale ricevi delle stringhe e non dei numeri.... vedrai che poi funziona  Ho provato a printarli e basta senza lato ricevitore ma non funziona lo stesso.. Comunque stavo ricordando che in alcuni casi sul seriale passano valori in HEX. Nel senso: arduino legge i valori con un Serial.read() e quando li printa li trasforma in seriale, può essere ?
|
|
|
|
|
536
|
International / Italiano / Xbee - lettura dal seriale
|
on: September 25, 2011, 05:46:55 am
|
Salve, ormai mi conoscete.. purtroppo  Sono stato costretto ad aprire un'altro topic per evitare di fare confusione con i problemi del precedente. Una volta che ho settato gli xbee, riesco ad inviare dati, ma non a leggerli ! Es: Potenziometro wireless Sull'arduino trasmettitore ho: int val; void setup(){ Serial.begin(9600); } void loop(){ val=analogRead(A0); Serial.println(val); delay(100); } Mentre sul ricevente: int val; void setup(){ Serial.begin(9600); } void loop(){ if(Serial.available()>0){ val=Serial.read(); Serial.println(map(val,0,1023,0,255)); analogWrite(11,map(val,0,1023,0,255)); delay(100); } } Sul seriale in ricevente ho : 3 2 11 Che non so quanti siano in hex e che variano in base alla posizione del potenziometro. Mi confondo sempre di più.. ho cercato in rete ma gli esempi per cose del genere avevano solo gli sketch per la trasmissione, dando per scontata la ricezione :\
|
|
|
|
|
538
|
International / Italiano / Re: Xbee non comunicano più !
|
on: September 21, 2011, 12:31:04 pm
|
|
Ce l'ho fatta :DDD Ho letto sul forum di sparkfun di un utente che ha avuto lo stesso problema. Come diceva astrobeed andava scelto un firmware e successivamente andava premuto write, con la differenza che il modulo si sarebbe dovuto inserire nella scheda solo dopo che sarebbe comparso il dialogbox per il reset !
Grazie a tutti :DD
|
|
|
|
|
539
|
International / Italiano / Re: Xbee non comunicano più !
|
on: September 21, 2011, 07:36:33 am
|
Che scheda usi per connettere l'xbee al pc?
questa. ma non ha driver da installare ne sono riuscito a resettarla mettendo in comune gnd e reset. In ogni caso il problema è il modulo xbee, perché cambiando scheda non funziona comunque
|
|
|
|
|