Pages: [1]   Go Down
Author Topic: Xbee collegato ad Arduino blocca l'esecuzione del programma.  (Read 1232 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve, ogni volta che collego Xbee tramite shield all'Arduino, questo smette di eseguire il codice che ho precedentemente scritto. Ho provato con programmi molto semplici: accensione del led 13 tramite tasto premuto da tastiera utilizzando il Serial Monitor.

Questo è il mio codice:
Code:
void setup()
{
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
  Serial.begin(9600);
}
void loop()
{
  while(Serial.available())
  {
    char c=Serial.read();
    if(c=='a')
      digitalWrite(13,HIGH);
    if(c=='b')
      digitalWrite(13,LOW);
  }
  delay(10);
}

È come ho detto molto semplice, quando premo la lettera 'a' il led si accende, quando premo 'b' si spegne. Il programma funziona correttamente fino a  quando non collego Xbee all'Arduino. Infatti non appena lo collego se il led era acceso si spegne e una volta spento non risponde più ai miei comandi inviati da tastiera tramite Serial Monitor. Sapete darmi una spiegazione?!

Grazie.
« Last Edit: March 10, 2013, 09:58:54 am by waj007 » Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se blocchi il thread, come pensi che poi gli altri possano scriverci?  smiley-razz
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai ragione, mi sono appena iscritto e non sono ancora molto pratico! Hai qualche idea per come risolvere il mio problema?
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

L'Xbee comunica via seriale.
A parte che non è sano per l'hardware fare collegamenti a caldo (ossia con l'Arduino sotto tensione), ma la presenza dell'Xbee disturba la comunicazione seriale perché entrambi occupano i pin 0 e 1.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok. Ora il mio obiettivo è quello di accendere e spegnere il led 13, sempre premendo tasti da tastiera, ma questa volta il segnale deve essere trasmesso dall'Xbee collegato al pc a quello sull'Arduino. Quindi utilizzo sempre il Monitor Seriale ma questa volta come porta COM gli indico quella dell'Xbee collegato al pc. Ma al premere dei tasti dalla tastiera non succede assolutamente nulla e il led rimane spento. Gli Xbee sono entrambi configurati correttamente, (Destination Address HIGH - Destination Address LOW - 9600 baud). C'è una spiegazione?!
Logged

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

Come ha detto leo l'xbee con la shield probabilmente occupa i pin tx ed rx per comunicare con l'arduino, gli stessi che utilizza per comunicare anche con la usb.
Ora, se tu hai un arduino che riceve i valori su quei pin dall'xbee non dovresti avere problemi, se invece nel frattempo apri anche il monitor seriale occupi lo stesso canale di comunicazione e non si va da nessuna parte..
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se non posso aprire il Monitor Seriale cosa dovrei usare per far comunicare i 2 Xbee? Dovrei aver bisogno di un qualcosa nel quale poter inserire i valori da tastiera per poi inviarli tramite l'Xbee (collegato al pc) a quello collegato all'Arduino. Come devo fare?!
Logged

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

L'xbee al pc com'è collegato? Tramite un arduino o tramite un convertitore?
Se tramite un convertitore non hai problemi e basta aprire un monitor seriale come xctu e scriverci.
Se tramite computer allora devi spostare i pin tx ed rx dell'xbee su altri che non siano lo 0 ed 1 dell'arduino, creando una seconda seriale con la NewSoftSerial.h, ma dubito questo discorso valga su di una shield
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'Xbee è collegato al computer tramite shield ( http://www.robot-italy.com/en/xbee-usb-board.html ). Provo ad aprire il monitor seriale da X-ctu poi vi dico se ho risolto il problema!
Logged

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

L'Xbee è collegato al computer tramite shield ( http://www.robot-italy.com/en/xbee-usb-board.html ).

Chiamalo convertitore quello da ora in poi :p non dovresti avere problemi così!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, il codice che ho postato all'inizio va modificato se utilizzo il monitor seriale di X-ctu?!
Logged

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

Non hai ben capito..
Quel monitor, come qualsiasi altro monitor, ti permette di scrivere dei dati su di una porta seriale(in questo caso il convertitore usb xbee) da tastiera, nulla di più..
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora la configurazione é pc-> usb-> Adattatore-> XBee 1 e XBee 2 -> Shield->Arduino .

Hai installato il driver per il FT232RL? Se hai un Arduino 2009 o Nano lo hai giá installato.
Hai selezionato la porta giusta nel IDE?

Se hai inizializzato i XBee con X-CTU dovresti aver installato il driver correttamente.

Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie a tutti per la pazienza, ieri in laboratorio ho resettato l'Xbee ed è andato tutto aposto! Ora riesco a farli comunicare come volevo e i programmi caricati non si cancellano più!  smiley
Logged

Pages: [1]   Go Up
Jump to: