PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bluetoothmodul HC05 braucht manchmal ein Startsignal?



fredyxx
27.01.2017, 18:49
Hallo,

das Bluetoothmodul HC05 zeigt, wenn ich Glück habe eine schnell blinkende LED. Wenn dann eine Kopplung zu meiner App auf einem Tablet zustande kommt, blinkt sie 2 mal kurz und wiederholt das immer nach eine kurzen Pause.

Manchmal blinkt diese LED aber gar nicht und ich bekomme dann auch keine Kopplung hin. Verbinde ich den EN-Eingang kurz mit GND, dann fängt die LED meistens wieder an zu blinken und ich kann eine Kopplung aufbauen. Aber das ist ja keine technische Lösung!!

Ein Dauersignal GND oder Vcc nutzt aber auch nichts, um einen sichern Anlauf des Moduls zu gewährleisten.
Wie muss es sein?
Was bewirkt Enable?
Was zeigt die LED genau an?

vG
fredyxx

inka
28.01.2017, 11:01
hallo,

Enable ist der eingang, der das programmieren des moduls im AT modus ermöglicht. Muss mit 3,3V versorgt werden. Beim einstecken in den USB-slot muss man (ich, bei mir ist es so) den taster am modul festgedrückt halten, die LED blinkt dann regelmässig langsam.

Wenn du dann den serial monitor startest, einstellen auf 38400, das ist die standard baudrate der HC05 module, die richtige USB schnittstelle eingestellt, im monitor AT eingeben, muss sich das modul mit OK zurückmelden.

Die zwei module (einen slave und eine master) kann man mit "AT pair" und "AT bind" und der "addresse" des anderen moduls aneinander binden. Die verbindung passiert dann beim einschalten automatisch, dann blinken beide module schnell, bis sie sich gefunden haben, dann in dem zweiertakt...

Ansonsten, wenn noch fragen sind - nach "AT befehle HC05" suchen...


Die wichtigsten AT-befehle: ( die, die ich für das einstellen zwei module, master und slave gebraucht habe) "?"hinter dem befehl ist abfrage nach der einstellung, "=" bewirkt änderung der einstellung. Das modul muss es mit OK quitieren...

# at
OK


# at+orgl //auf werkseinstellungen zurück
OK


# at+addr? //adreese?
+ADDR:98d3:31:b1426e
OK


# at+state? //zustand?
+STATE:INITIALIZED
OK


# at+role? //rolle? master=1, slave=0
+ROLE:0
OK


# at+pswd? //password?
+PSWD:1234
OK


# at+name? //name?
+NAME:H-C-2010-06-01
OK


# at+uart?
+UART:38400,0,0
OK


# at+bind?
+BIND:0:0:0
OK


# at+cmode?
+CMOD:0
OK




# -----
master:
#------
# at+name=master_RP6
OK


# at+pswd=0000
OK


# at+role=1
OK


# at+reset
OK


# at+init
OK


# at+pair=98d3,31,b1f2b2,20
OK


# at+bind=98d3,31,b1f2b2
OK
















#---------
slave
#--------


# at
OK


# at+orgl
OK


# at+addr?
+ADDR:98d3:31:b1f2b2
OK


# at+role?
+ROLE:0
OK


# at+name?
+NAME:H-C-2010-06-01
OK


# at+uart?
+UART:38400,0,0
OK


# at+pswd?
+PSWD:1234
OK
--------------------------------------
--------------------------------------
# at+name=slave_RP6
OK
# at+pswd=0000
OK

fredyxx
29.01.2017, 11:45
Hallo inka,

danke für deine Info.

Ich möchte aber gar nicht programmieren. Ich möcht nur eine Vorgehensweise finden, mit der ich immer sofort eine Verbindung zwischen meinem Tablet und dem Arduino Mega hinbekomme. Das ist z.Z. nur bei jedem 10 Versuch möglich. Taster drücken nutzt bei mir nichts.
Auch das kleine Programm von dieser Seite
http://www.techbitar.com/modify-the-hc-05-bluetooth-module-defaults-using-at-commands.html
klappt bei mir nicht.
Ich bekomme es nur manchmal hin, wenn ich EN kurz an GND halte. Manchmal muss ich aber auch meine APP auf dem Tablet neu starten.

Ich bin froh, wenn ich wieder ein HC-06 habe, denn damit habe ich wesentlich weniger Probleme.

vG

fredyxx

inka
29.01.2017, 13:05
hallo freddyxx,

lasse es mich mal kurz zusammenfassen:

- HC 05 kann (durch programmierung) als master oder slave fungieren, HC06 ist nur slave...

- du wirst um einstellen / programmieren des moduls wohl nicht herumkommen, sonst bleibt eine verbindung mehr oder weniger dem zufall überlassen (ist ja schon so)...

- beim HC06 (slave) ist die verbindung zum smartphone/tablett wohl einfacher, das stimmt, es geht aber mit dem HC05 genauso...

- das tastendrücken ist nur dann sinnvoll und angebracht, wenn EN auf 3,3V liegt und du das modul programmieren wilst (taste drücken zusammen mit dem anlegen der spannungsversorgung). Ansonsten hat der taster keinerlei bedeutung...

- wenn die LED am HC-modul garnicht blinkt, würde ich mal die verdrahtung überprüfen, oder mit "AT+ORGL" das modul in den auslieferungszustand bringen (slave, 38400baud, pw.0000) - aber das geht auch nur im "AT-modus", wenn die LED langsamm, regelmäßig blinkt...

- der code den du da anführst kenne ich nicht und habe es auch noch nicht genutzt...

fredyxx
29.01.2017, 19:57
Hallo,

kurz vor der Verzweiflung habe ich es nun doch hinbekommen, den AT-Modus zu nutzen und weiß daher, dass das Modul als Slave geschaltet ist, konne auch mal den Namen ändern.
Aber die Kopplung mit meinem Tablet ist immer noch ein Zufallsergebnis. Würde ich mich nun erst mal mit abfinden!!

Was aber viel schlimmer ist.
Wenn die Kopplung steht und ich eigentlich im Arduino den Text "BA_BT" erwarte, kommt dann sowas im SM: ½ÿ
An der Arduino - SM -Kopplung kann es nicht liegen, denn der Text der direkt aus dem Arduino kommt, ist OK.

vG
fredyxx

inka
29.01.2017, 21:48
stimmt die baudrate?

fredyxx
29.01.2017, 22:58
stimmt die baudrate?

Ja, denn ich habe es mit 9600 und mit 38400, auf das die Baudrate ja bei Einstellung auf Auslieferungszustand eingestellt wird.
Die Einstellung auf Auslieferungszustand stellte übrigens bei mir das PW auf 1234 ein.

vG
fredyxx

inka
30.01.2017, 09:00
ich meine es anders, bei meinem smartphone kann ich beim senden die baudrate nicht einstellen, vielleicht im serial monitor (dort siehst du doch den empfangenen text, oder?) verschiedene baudraten einstellen...

fredyxx
30.01.2017, 10:05
Ich sende mit meinem Tablet z.B. den Text BA_BT zum BT Modul. Das war bis gestern immer richtig. Das Modul ist mit dem Arduino über die Serielle Schnittstelle 2 verbunden. Im Arduino kann ich die Baudrate für die SS2 einstellen, was ich mit 9600 und 38400 versucht habe. Auch am SM kann ich die Baaudrate verstellen. Wenn die aber falsch ist, dann kommt auch ein Text, den ich mit Serial.println("xyz") sende nicht richitg an.

INKA, danke für deine unermütliche Hilfe aber nun reicht es.
Ich werde auf das HC-06 warten

vG
fredyxx