Offline
Edison Member
Karma: 16
Posts: 1801
|
 |
« Reply #45 on: April 24, 2012, 03:02:41 am » |
allora anche io vorrei comprarne un'altro, il mio si è conneso una volta lui autonamente al pc non so come(cioè lui ha richiesto la connesione col pc e non viceversa) ed ora non ci riesco piu chissà come diavolo funziona questo modulino , ora vorrei prenderne uno che sicuro funzioni non e che puoi indicarmene uno slave con cui posso tranquillamente fare il paring e inviare dati dal mio pc non mi interessa neanche trasmettere.
|
|
|
|
|
Logged
|
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 156
|
 |
« Reply #46 on: April 25, 2012, 07:32:02 am » |
Finalmente è cambiato qualcosa, ma non ancora ok. Come già detto ho acquistato 2 moduli e ho scoperto che sono HC-05. Ho provato a farli dialogare senza risultati, ho poi acquistato una chiavetta USB-Bluetooth e ho scoperto che uno dei 2 moduli non funziona, l'altro lo rileva e riesco a configurarlo, passkey: 1234 (Windows XP) COM14 in uscita e COM15 in ingresso. Fin d'ora il LED sul pin 31 lampeggia veloce e regolare. Con un qualsiasi terminale se si apre la porta COM14 il LED sul pin31 cambia lampeggio 2 piccoli impulsi e pausa abbastanza lunga e il LED sul pin32 acceso fisso. Credo si possa dire che il collegamento è avvenuto. Se apro solo la COM15 questo non avviene. Comunque provo ad inviare sia da terminale che da Arduino ma non avviene scambio. Ho provato con terminale fatto da me in Visual Basic, con Termite e con puTTY sempre stesso risultato.
Il pin 4 di Arduino <- coll. al pin 1 UART_TXD del Bluetooth Il pin 5 di Arduino -> coll. al pin 2 UART_RXD del Bluetooth
Grazie per suggerimenti. Carletto.
Qui sotto il codice caricato su Arduino UNO. ================================================================ #include <icrmacros.h> #include <NewSoftSerial.h> byte ricevuto; byte pu1=A0; //Invio comandi AT. byte pu2=A1; //Invio dati. byte LED1=10; byte LED2=11; byte LED3=12; byte pinRX=4; //Pin ricezione da Bluetooth. byte pinTX=5; //Pin trasmissione a Bluetooth. byte pinAT=6; //Pin Modo ricetrasmissione=0, Modo AT=1; NewSoftSerial blue(pinRX,pinTX); //---Invia comandi AT-------------------------------------------- void comandiAT(char *v){ int i=0; while(v!='\n'){ blue.print(v); //Invia un carattere per volta. i++; } blue.print('\n'); Serial.print("Comandi AT inviati: "); Serial.print(v); } //---Routine di Predisposizione---------------------------------- void setup() { blue.begin(38400); Serial.begin(38400); //Apre la porta seriale a 9600 bps. Serial.println("Inizializzo sistema..."); pinMode(pu1,INPUT); //Pulsante (1) invio comandi At al proprio modulo. pinMode(pu2,INPUT); //Pulsante (2) invia dati all'altro modulo. pinMode(LED1,OUTPUT); //LED (1) invio comandi AT in corso. pinMode(LED2,OUTPUT); //LED (2) invio dati al modulo. pinMode(LED3,OUTPUT); //LED (3) ricezione in corso. digitalWrite(pu1,HIGH); //Pull-UP pulsante 1. digitalWrite(pu2,HIGH); //Pull-UP pulsante 2. pinMode(pinAT,OUTPUT); //Predisposizione invio comandi AT. delay(100); digitalWrite(LED3,HIGH); delay(3000); digitalWrite(LED3,LOW); } //---Routine principale------------------------------------------ void loop() { if (blue.available() > 0) { ricevuto=blue.read(); digitalWrite(LED3,HIGH); //LED (3) ricezione in corso. Serial.println("ricevuto"); //Visualizza il dato ricevuto delay(5000); digitalWrite(LED3,LOW); //LED (3) fine ricezione. } if(digitalRead(pu1)==0){ //Pulsante (P1) invio comandi AT. digitalWrite(LED1,HIGH); //LED (1) invio comandi AT. char s1[]="AT+ROLE=0\r\n"; //Modulo slave. char s2[]="AT+ROLE=1\r\n"; //Modulo master. char s4[]="AT+ROLE=2\r\n"; char s3[]="AT+ORGL\r\n"; digitalWrite(pinAT,HIGH); //Pred.invio comandi AT. comandiAT(s4); //Invio comando al modulo delay(50); digitalWrite(pinAT,LOW); //Pred. ricetrasmissione dati. delay(3000); digitalWrite(LED1,LOW); //LED (1) fine invio comandi AT. } if(digitalRead(pu2)==0){ //Pulsante (P2) invio dati al modulo. digitalWrite(LED2,HIGH); //LED (2) invio dati. Serial.println("Slave invia"); //Visualizza dati invio al modulo. blue.println("Slave invia"); //Invio dati al modulo. delay(3000); digitalWrite(LED2,LOW); //LED (2) fine invio dati. } }
|
|
|
|
|
Logged
|
|
|
|
|
Bologna
Offline
Sr. Member
Karma: 1
Posts: 435
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
|
 |
« Reply #47 on: April 26, 2012, 01:20:27 pm » |
@pitusso ho installato putty ho cambiato il codice per essere sicuro che il bluetooth riceva qualcosa: #include <NewSoftSerial.h> NewSoftSerial bluetooth(2,3); // (RX,TX) int led=13; int num=0; void setup() { pinMode(led,OUTPUT); bluetooth.begin(4800); // testare 38400 Serial.begin(9600); } void loop() { if(bluetooth.read()==45) { digitalWrite(led,HIGH); } if(bluetooth.read()==0) { digitalWrite(led,LOW); } Serial.println(bluetooth.read()); } putty mi apre la seriale del bluetooth senza alcun errore, con l'IDE apro il serial monitor per vedere Serial. e visualizzo sempre e solo -1 mi sono accorto che mi dà queste notifiche: at gnu.io.RXTXPort.nativeavailable(Native Method) at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1532) at processing.app.Serial.serialEvent(Serial.java:215) at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732) at gnu.io.RXTXPort.eventLoop(Native Method) at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)[/quote]
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Edison Member
Karma: 15
Posts: 1878
Have you mooed today?
|
 |
« Reply #48 on: April 27, 2012, 03:04:53 pm » |
@carletto il fatto che un modulo lo vedi e l'altro no, potrebbe derivare dalla configurazione del modulo stesso. Devi metterlo in modalità Slave (o Slave-Loop) perchè sia visibile.
@valvale97 ti stampa sempre -1 persumo perchè non sta leggendo dalla read (bluetooth.read()). Riguardo a quel che ti appare nell'ide, mancano alcune righe (la prima innanzitutto), che son quelle più chiarificatrici. Se poi l'errore te lo da in fase di compilazione, stai sicuro che quello sketch no lo hai caricato, su Arduino!
Che IDE stai utilizzando?
|
|
|
|
|
Logged
|
|
|
|
|
Bologna
Offline
Sr. Member
Karma: 1
Posts: 435
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
|
 |
« Reply #49 on: April 27, 2012, 03:26:02 pm » |
IDE 0023 l'errore me lo dà dopo l'upload dello sketch, domani faccio la prova usando due PC. Con uno invio i dati al modulo bluetooth, con l'altro vedo se lo riceve. Grazie. Valerio.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 156
|
 |
« Reply #50 on: April 28, 2012, 06:50:35 am » |
il fatto che un modulo lo vedi e l'altro no, potrebbe derivare dalla configurazione del modulo stesso. Devi metterlo in modalità Slave (o Slave-Loop) perchè sia visibile.
Sono in WindowsXP, con il comando "Dispositivi Bluetooth" non lo rileva. Per quanto riguarda l'altro modulo lo rileva, assegna due porte una in uscita e una in entrata. Ho configurato il modulo come: char s1[]="AT+ROLE=0\r\n"; //modo slave ma ho provato anche con: char s4[]="AT+ROLE=2\r\n"; //modo slave-loop. Quando apro la porta in usita; Il LED sul 31 cambia lampeggio e il LED sul 32 si accende fisso, quindi connessione avvenuta. Io però con diversi Terminali non riesco a ricevere da Arduino ne inviare ad Arduino. Carletto
|
|
|
|
|
Logged
|
|
|
|
|
Bologna
Offline
Sr. Member
Karma: 1
Posts: 435
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
|
 |
« Reply #51 on: April 28, 2012, 08:19:13 am » |
E con quali terminali riesci ?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 156
|
 |
« Reply #52 on: April 28, 2012, 08:43:03 am » |
E con quali terminali riesci ?
Come ho detto purtroppo non riesco ne inviare ne ricevere dati, riesco solo a connettere il modulino bluetooth con WindowsXP tramite la chiavetta Bluetooth-USB. Mi accorgo che la connessione è avvenuta quando dal terminale che utilizzo apro la porta in uscita dal PC ingresso modulino, LED sul pin 32 acceso fisso e LED sul pin 31 cambia lampeggio. Come terminali ho provato con Termite, putty e un terminale autocostruito in Visual Basic. Purtroppo sono ancora in alto mare. Carletto.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 156
|
 |
« Reply #53 on: April 29, 2012, 03:52:25 pm » |
Mi chiedo se i comandi AT che invio il modulo li riceve.
Nel manuale HongKong Electronis, dove ho acquistato trovo esempio: "Command" e "Response" "AT+ROLE=2\r\n" OK
Come si fa a leggere i comandi inseriti nel modulo?
Grazie
Carletto.
|
|
|
|
|
Logged
|
|
|
|
|
Bologna
Offline
Sr. Member
Karma: 1
Posts: 435
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
|
 |
« Reply #54 on: April 29, 2012, 04:17:47 pm » |
Prova a far così apri l'IDE, connettiti al bluetooth che però deve essere settato per ricevere i comandi AT, poi dopo aver inserito il corretto baudrate provi a scrivergli i comandi e ti dovrebbero uscire le risposte.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 156
|
 |
« Reply #55 on: April 29, 2012, 04:25:28 pm » |
Prova a far così apri l'IDE, connettiti al bluetooth che però deve essere settato per ricevere i comandi AT, poi dopo aver inserito il corretto baudrate provi a scrivergli i comandi e ti dovrebbero uscire le risposte.
Come le leggi le risposte? con risposta=blue.read(); Serial.print(risposta); Ma un comando del genere non dovrebbe leggere i dati inviati dal master? Carletto.
|
|
|
|
|
Logged
|
|
|
|
|
Bologna
Offline
Sr. Member
Karma: 1
Posts: 435
La gente spesso definisce impossibili cose che semplicemente non ha mai visto. [Albert Einstein]
|
 |
« Reply #56 on: April 29, 2012, 04:28:08 pm » |
io non metto in mezzo arduino. Per mandare comandi AT collego il modulo bluetooth al PC tramite convertitore TTL-USB e poi apro la COM a cui è connesso e comunico.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 156
|
 |
« Reply #57 on: April 30, 2012, 03:34:23 pm » |
Prova a far così apri l'IDE, connettiti al bluetooth che però deve essere settato per ricevere i comandi AT, poi dopo aver inserito il corretto baudrate provi a scrivergli i comandi e ti dovrebbero uscire le risposte.
@valvale97 Intendi una cosa simile? byte v; digitalWrite(pinAT,HIGH); //Modo AT. v=blue.read(); //Lettura. delay(20); Serial.println(v); //Invio al Serial monitor. digitalWrite(pinAT,LOW); //Modo trasmissione dati. Bene, io ricevo solo un carattere strano. Secondo me dovrei ricevere almeno 'A', la prima lettera del comando "AT+ROLE..." Sei d'accordo? Dove sbaglio? Carletto.
|
|
|
|
|
Logged
|
|
|
|
|
|
|
0
Offline
Edison Member
Karma: 15
Posts: 1878
Have you mooed today?
|
 |
« Reply #59 on: May 02, 2012, 05:45:09 am » |
Ciao che ne dite? che sei OT ]  , visto che qui si parla di BT 
|
|
|
|
|
Logged
|
|
|
|
|
|