Salve a tutti, è da più di due mesi che sto cercando di far comunicare arduino e lo smartphone tramite il modulo bluetooth hc06. Volevo come prima cosa accendere un led tramite app, ma già da subito sono sorti i primi problemi. Uso la softwareSerial per lasciare liberi i pin 0 e 1 di arduino e provo a configurare il modulo per capire se almeno funzioni con questo sketch:
invio il comando "AT" e mi compare "OK" sul monitor seriale cosi come per il comando "AT+VERSION" mi compare "OKlinvorV1.8". In seguito prendo lo smartphone e faccio l associazione del dispositivo che va a buon fine e tramite l app ArduinoRC mi connetto al modulo bluetooth e apro il terminale ma inviando un carattere tramite app verso il monitor seriale o viceversa dal monitor seriale all'app non succede assolutamente nulla e non capisco il perchè. Grazie mille a chi vorrà aiutarmi.
--- ti ricordo che da REGOLAMENTO, si può fare "up" solo dopo almeno 48 ore dall'ultimo post. - gpb01
Ciao e grazie della risposta. Purtroppo il problema persiste anche cambiando il baudrate a 38400. Riesco solo ad inviare i comandi "AT" per verificare se la connessione c'è e mi da "OK" cosi come per i comandi "AT+VERSION" e "AT+BAUDx" e "AT+NAMEstring" funzionano tutti. Se però voglio inviare un carattere tutto tace e non succede nulla.
Ho letto e seguito il tutorial scrupolosamente, così come per altri tutorial che ho trovato in rete, ma il risultato non cambia: il modulo si connette al bluetooth dello smartphone, ma comunque non invia nulla. Grazie per la risposta
Scusa la domanda, perché ti serve mandare comandi AT? Ossia, chi master in questa comunicazione (ossia chi è che riceve i tentativi di pairing)? Il tuo HC-06 può essere solo slave quindi vuoi veramente connetterti al tuo smartphone, che deve quindi fare da master?
Perché invece non ti semplifichi la vita ed usi un HC-05 che si può configurare sia come master sia come slave? E quindi configurato come master il programma diventa semplicissimo e la connessione la fai dal tuo smartphone come fai con qualsiasi auricolare:
#include <SoftwareSerial.h>
/*
Collegare il modulo BT:
TXD <--> Pin 9 (Rx)
RXD <--> Pin 8 (Tx)
VCC <--> 5V
GND <--> GND
Un LED e resistenza tra massa e positivo e pin 13
*/
#define LED 13
SoftwareSerial HC05(8, 9); // TX, RX
void setup ()
{
Serial.begin(115200);
HC05.begin(9600);
pinMode (LED, OUTPUT);
Serial.println("INIT");
}
void loop ()
{
if ( HC05.available() ) {
char c = HC05.read();
Serial.print(c);
Serial.println(" ricevuto");
if (c == 'A') {
digitalWrite(LED, HIGH);
Serial.println("ON");
}
if (c == 'a') {
digitalWrite(LED, LOW);
Serial.println("OFF");
}
delay(100);
}
}
Avevo scelto l'hc06 proprio perchè ha solo la funzione di slave e quindi uso lo smartphone per inviare comandi (tipo l'accensione di un led) ma ovviamente non funziona. Sconfortato da ciò ho provveduto ad acquistare un AT09 con cui i problemi sono arrivati ancora prima perchè non riesco nemmeno ad effettuare il pairing con lo smartphone (il modulo viene visto ma non riesce ad associarlo) e mi da sempre questa schermata in allegato.
lyon25:
Avevo scelto l'hc06 proprio perchè ha solo la funzione di slave e quindi uso lo smartphone per inviare comandi (tipo l'accensione di un led)
Scusa, ma ancora hai un poco di confusione secondo me...
Non è che si decide chi sia master e chi slave in base a chi manda comandi... La questione distingue solamente CHI SI CONNETTE (slave, generalmente lo smartphone) ed invece CHI RICEVE LE CONNESSIONI (master, generalmente l'apparato come auricolari, lo stereo dell'auto, le casse, e nel tuo caso Arduino). Una volta instaurata la connessione (tramite pairing) è come se avessi una seriale tra smartphone e Arduino.
Se Arduino manda un byte lo riceve lo smartphone, così come se lo smartphone manda un byte lo riceve Arduino.
Quindi dammi retta, prendi un HC-05 e risolvi tutto (il listato che ti ho postato è una delle prove che efci anche io i primi tempi di "smanettamenti" e test vari e ti assicuro che funziona, senza comandi AT o altre pippe mentali... ).