Go Down

Topic: Connettere Xbee ad Arduino e programmazione (Read 2771 times) previous topic - next topic

monty14

Ho letto molte guide su come collegare un modulo xbee ad Arduino alcune riportano di collegare DOUT(Xbee pin 2) a Rx(Arduino pin 0) e DIN(Xbee pin 3) a Tx(Arduino pin 1). Secondo la mia esperienza questo è assolutamente sbagliato. Utilizzo un Arduino duemilanove e un Xbee serie due. Per la comunicazione tra X-ctu e il modulo Xbee ho fatto i collegamenti esattamente al contrario.
Avete qualche idea in merito?
Monty.

astrobeed


Secondo la mia esperienza questo è assolutamente sbagliato


DOUT = Tx degli Xbee
DIN  = Rx degli Xbee

Vanno collegati DOUT con Rx di Arduino, DIN con Tx di Arduino, inoltre non è possibile collegare direttamente DIN con il Tx di Arduino per via delle diverse tensioni di funzionamento, 5V Arduino, 3.3V Xbee, è indispensabile usare un partitore resistivo, tipicamente 10k+18k, per ridurre la tensione del Tx di Arduino a 3V.

monty14

Ovviamente ho messo un partitore resistivo. Ma non funziona come dici tu ma solo come ho detto sopra...Collegando Dout(xbee) con Rx(arduino) e Din(xbee) con Tx(arduino) non funziona niente...

Dario Gogliandolo

Ciao, io ho avuto lo stesso tuo problema solo che io ho usato 2 xbee pro 2° serie (possono essere usati nella stessa maniera precisa degli xbee standard solo che i pro hanno una portar maggiore) ed ho usato questo adattatore http://robot-italy.com/it/xbee-simple-board.html ... Per programmarli ho usato anche io un arduino (duemilanove nel mio caso) senza micro ed ho collegato il tx del xbee al tx del arduino e l'rx del xbee con l'rx dell'arduino. In più ho seguito questa guida http://antipastohw.blogspot.it/2009/01/xbee-shield-to-xbee-shield.html passo passo e tutto è andato per il verso giusto...
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

monty14

Perfetto. Allora non sono io che sto dando di matto :) La cosa è assai strana comunque. Non capisco come mai in tutte le guide dicono il contrario. Xbee serie 1 ha una piedinatura diversa?

astrobeed


Ma non funziona come dici tu ma solo come ho detto sopra.


Funziona come ho detto io, qui non è questione di interpretazione il Tx va al Rx e su questo non ci piove sopra, se a te ,apparentemente ,vanno collegati al contrario è perché hai invertito i pin senza accorgetene.

monty14



Ma non funziona come dici tu ma solo come ho detto sopra.


Funziona come ho detto io, qui non è questione di interpretazione il Tx va al Rx e su questo non ci piove sopra, se a te ,apparentemente ,vanno collegati al contrario è perché hai invertito i pin senza accorgetene.



Ascolta ho capito tutto ma non sono cogl***e se ti dico che li ho collegati così è perchè è la verità. Dario ha avuto la mia stessa esperienza sbagliamo tutti e due?

astrobeed


sbagliamo tutti e due?


Si, sicuramente avete invertito i collegamenti.
Basta guardare il data sheet del Atmega 328 e lo schema di Arduino per capire come stanno le cose, il Tx del micro è PD1 ed è connesso al PIN 1 (Tx), il Rx del micro è PD0 ed è connesso al pin 0 (Rx), poi vedila come ti pare ma l'elettronica è una scienza esatta e non si base sulle ipotesi e sulle congetture, Tx (DOUT) va su Rx (pin 0) e Rx (DIN) va su Tx (pin 1).


monty14



sbagliamo tutti e due?


Si, sicuramente avete invertito i collegamenti.
Basta guardare il data sheet del Atmega 328 e lo schema di Arduino per capire come stanno le cose, il Tx del micro è PD1 ed è connesso al PIN 1 (Tx), il Rx del micro è PD0 ed è connesso al pin 0 (Rx), poi vedila come ti pare ma l'elettronica è una scienza esatta e non si base sulle ipotesi e sulle congetture, Tx (DOUT) va su Rx (pin 0) e Rx (DIN) va su Tx (pin 1).




Va bene hai ragione.

astrobeed


Va bene hai ragione.


Ma ti costa tanta fatica dare uno sguardo al data sheet del 328 e allo schema di Arduino ?

astrobeed

Mi viene un dubbio, ma non è che stai cercando di usare il convertitore USB-Seriale di Arduino per far dialogare l'Xbee con il PC ? In questo caso è corretto collegare Tx con DOUT e Rx con DIN perché stai utilizzando Tx e Rx del FTDI o del 8u2 che ovviamente sono incrociati con quelli del ATmega, e se è così sarebbe il caso di rimuovere l'ATMEGA dal pcb o caricarci sopra uno sketch che setta i pin 1 e 0 come input in modo da metterli in stato di alta impedenza.
Quanto sopra non toglie che se vuoi usare l'Xbee con Arduino va collegato TX con DIN e Rx con DOUT.

monty14

1) non sono una persona alle prime armi con l'elettronica;
2) ho dato più di uno sguardo ai datasheet;
3) ho connesso Xbee ad Arduino come dici tu e non funzionava poi ho invertito e funziona perfettamente;
4) mi sono fatto mille domande e ricontrollato mille volte il circuito montato per vedere il motivo di questa anomalia;
5) ho collegato il modulo Xbee al raspberry e funziona correttamente con la connessione Tx>Rx  Rx>Tx;
6) ho postato la domanda sul forum cercando qualcuno che mi desse le sue opinioni non qualcuno che mi dicesse che quello che ho fatto è sbagliato.

monty14


Mi viene un dubbio, ma non è che stai cercando di usare il convertitore USB-Seriale di Arduino per far dialogare l'Xbee con il PC ? In questo caso è corretto collegare Tx con DOUT e Rx con DIN perché stai utilizzando Tx e Rx del FTDI o del 8u2 che ovviamente sono incrociati con quelli del ATmega, e se è così sarebbe il caso di rimuovere l'ATMEGA dal pcb o caricarci sopra uno sketch che setta i pin 1 e 0 come input in modo da metterli in stato di alta impedenza.
Quanto sopra non toglie che se vuoi usare l'Xbee con Arduino va collegato TX con DIN e Rx con DOUT.

Ooooo perfetto era questo che mi era sfuggito. Allora tutto torna perfettamente.
Grazie,
Monty

Dario Gogliandolo


Mi viene un dubbio, ma non è che stai cercando di usare il convertitore USB-Seriale di Arduino per far dialogare l'Xbee con il PC ?


Io è proprio questo che ho fatto, tanto che ho specificato


... Per programmarli ho usato anche io un arduino (duemilanove nel mio caso) senza micro ed ho collegato il tx del xbee al tx del arduino e l'rx del xbee con l'rx dell'arduino.


ovviamente se si vuole utilizzare l'xbee per comunicare (e non per programmarlo) bisogna collegare il TX del xbee all'ex dell'arduino e viceversa... :)
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

Go Up