BT HC-06 Modul - keine Command Antwort

Hallo,

habe von EXP-tech das HC-06 Modul gekauft.
http://www.exp-tech.de/Shields/Electronic-Brick-HC06-Serial-Bluetooth-Brick.html

Jetzt wollte ich es mit meinem Galaxy S3 testen. Pairing funktioniert.

Mit "Hello" in der loop aller 2 Sekunden in der Serialausgabe funktioniert. Hello erscheint auf dem S3 Display.

Wenn ich jedoch eine Kommando wie AT zum testen schicken möchte, erhalte ich nichts zurück. Es sollte ein OK als Antwort kommen. Egal ob das Modul mit dem Arduino verbunden ist oder nicht, ich erhalte keine Antworten zurück.

Habe 2 verschiedene BT Terminal Apps auf dem S3 probiert.

Ich lese auch nichts von einem bestimmten Kommandomodus in dem man es erst bringen muß.

Die LED leuchtet auch dauerhaft, dass heißt es ist nicht im standby.

Wie funktioniert das mit den Kommandos?

Versuch es mal ohne CR und LF.

Ich habe die BT Module immer mit einem Uno ohne Atmega die Parameter gesetzt. Hab gerade kein BT rumliegen, aber ich mein das mit dem Android und LM BTTerm die Möglichkeit bestand, carriage return und line feed abzuschalten.

Hallo,

ich bin ratlos. Ich weis nicht was ich machen muß. Habe das laut der gefundenen Seite versucht.
http://arduino-hannover.de/2013/07/20/bluetooth-kochbuch-fur-arduino/
Nur bei einem von denen kann ich in den App Einstellungen LC/CF abschalten. Habe aber keine sichtbare Eingabemöglichkeit. Tippe blind auf der Tastatur rum.
Bei allen anderen Apps die ich probiert habe kann ich CF/LF nicht ändern.
Oder gibt es dafür eine Befehlsoption hinter AT?

Nochwas. Wegen Master/Slave Funktion. Mein HC-06 sendet nur wenn ich es aktiv anspreche? Selbst sendet es nichts. Nur das HC-05 würde selbst senden? Nur zum Verständnis für mich. Denn wenn der Arduino HELLO sendet klappt das doch auch von alleine sobald ich mich verbinde. :~

So wie ich das bei deinem Link sehe, kannst du die AT Befehle nicht über Bluetooth machen. Hast du einen USB 2 Serial Adapter oder einen Uno, wo du den Atmega entfernen kannst?

Hallo,

ich lese immer und immer wieder die Beschreibungen und suche dazu parallel im Netz nach Antworten.
Jetzt fiel mir auf das man vorm Pairing mit AT in den Kommandomodus kommt. Nun frage ich mich, wie macht das ohne Pairing?

Wo hast Du das gelesen mit dem "geht nicht über BT"?
Ich habe nur den Arduino 2560 Mega und sonst kein BT am Rechner zur Verfügung. Außer meinem Smartphone.

Moment. Ich habe eine selbstgebaute Platine für meinen Renesas R8C13 µC. Dort habe ich einen FTDI drauf gebaut. Denn könnte ich probieren. Der µC ist gesockelt, kann vorbeugend rausgenommen werden. Die RX/TX Pins sind zugänglich und eben USB. Müssen die RX/TX über kreuz ran?

Rx/Tx zum BT muss gekreuzt werden. Ansonsten würde ich mit dem Mega versuchen. Könnte gehen.
Du ließt über USB die Befehle über die IDE ein und leitest diese über Serial1 zu deinem BT Modul. Musst nur darauf achten, das CRLF nicht mitgeschickt wird. Und die Befehle als Serial1.write() schicken.

Ich beutze diese Module auch.
Daten hin- oder her klappt ohne Probleme.

Was genau willst Du denn testen im Kommandomodus ?
Wenn Du eine Verbindung aufgebaut hast besteht doch eine Datenverbindung und da kannst Du nichts mehr mit ATxxx machen.
VOR dem Pairing ist klar (weil ja keine Verbindung besteht) - daher meine Frage was Du mit dem Kommandomodus willst.

Wenn Daten gesendet werden funktioniert es doch und muss nicht mehr getestet werden - oder verstehe ich da was falsch ? :roll_eyes:

Hallo,

ich möchte austesten ob der Kommandomodus funktioniert. Vielleicht benötige ich später mehr wie 9600 Baud.

Dafür gibt es extra einen Sktech - mit dem kannst Du auch den Namen ändern :smiley:

Hallo,

hab es soeben mit meinem alten Selbstbau FTDI probiert. Ein OK kam zurück. Jetzt bin ich glücklich. :slight_smile:

Auf dem Galaxy S3 meldet es sich standardmäßig schon mit HC-06. Habe nichts geändert.

Welchen Sketch meinst Du? Würde ich mir speichern für den Fall der Fälle.

Prima das es funktioniert hat - jetzt weiss ich auch was Du mit dem Kommand0-Modus meintest :wink:

Hier der Sketch:

#include <Wire.h>

int led = 13;

void setup() { 
 pinMode(led, OUTPUT);
 Serial.begin(9600);
 Serial3.begin(9600);//use 9600 if first set up, then 115200
}
void loop() {
 digitalWrite(led, HIGH);//sanity check
 command("AT",2);// response: OK
 command("AT+VERSION",12);// response: OKlinvorV1.5
 command("AT+NAMExxxxxxxxx",9);//response: OKsetname
// command("AT+BAUD4",6);//response: OK115200
 command("AT+BAUD8",8);//response: OK115200
 while(1);//stop execution
}
void command(const char* cmd, int num_bytes_response) {
 delay(1000);
 Serial3.print(cmd);
 delay(1500);
 for (int i=0;i<num_bytes_response;i++)
 Serial.write(Serial3.read());
 Serial.println();
}

Bei

command("AT+NAMExxxxxxxxx

muss man die x durch einen frei wählbaren Namen ersetzen - dann kann man auch mehrere der Teile in Betrieb habe und bekommt nicht bei jedem HC-05 oder linvor etc. angezeigt - ausserdem sieht es cooler aus wenn das BT-Modul den Namen der App hat :smiley:

BT_Check_HW.ino (665 Bytes)

Hallo,

Dankeschön an alle!

Nochwas am Rande. Verkürzt sich bei höherer Baudrate der Verbindungsabstand? Also muß man dem Smartphone dann näher ran oder ist eine niedrigere Baudrate allgmein nur einfach sicherer in der Übertragung?

Meinst Du das hängt zusammen ?
Da bei höherer Datenrate der Transfer schneller geht, sollte dazu eine schwache (also weiter entfernte Verbindung) möglich sein...IMHO 8)

Hallo,

ich denke/dachte das gehört zusammen.

Du meinst:
höhere Baudrate > längere Luftverbindung möglich
niedriger Baudrate > kürzere Luftverbindung

Ich dachte das verhält sich umgekehrt.

Gibt es noch einen Befehl um den aktuellen Namen nur abzufragen? Im Handy meldet es sich nämlich schon als "HC-06".
AT ... OK
AT+VERSION ... OKlinvorV1.8

Baudraten haben mit der Reichweite soweit erst einmal nichts zu tun. Baudrate gibt an sich erst einmal nur an, wieviele Bits pro Sekunde über diese Verbindung ausgetauscht werden.

Bei dem Bluetooth Modul brauchste dir um die Baudrate nur gedanken machen, wenn bestimmte Baudraten nicht von beiden Seiten unterstützt werden. Ich habe diese immer auf 57600 gestellt. Bei 10m Luftlinie kein Problem.

Das einzige, was eine niedrigere Baudrate bringt, ist das es zu einem nicht so Fehlerbehaftet ist und zum anderen wird Energie eingespart.

Hallo,

Danke Euch. :slight_smile: Habs nun auch auf 57600 geändert.

Baudraten haben mit der Reichweite soweit erst einmal nichts zu tun. Baudrate gibt an sich erst einmal nur an, wieviele Bits pro Sekunde über diese Verbindung ausgetauscht werden.

Joa, konnte ich mir auch nicht vorstellen, aber sicher war ich mir auch nicht

Den Namen abfragen brauchste nicht, den siehst Du ja vor dem Connect.
Evtl. geht das mit anderen Parameter hinter NAME oder so....musst Dir mal den AT - Kommandosatz ansehen

Hallo,

ein Kommando nur zum abfragen des Namens gibt es wohl nicht. In keiner Doku die ich eingesehen habe. Nur zum Namen ändern gibt den einen Befehl. Ich habe den Namen nun vorsorglich mit AT+NAMEHC-06 gesetzt. Ist alles gleich geblieben. :slight_smile: