Forum: Mikrocontroller und Digitale Elektronik HC-05 Bluetooth Modul: Schnell?


von Ben B. (benwb)


Lesenswert?

Ich habe mir das Bluetooth Modul HC-05 zugelegt und jetzt mal getestet.
Zum testen habe ich mir einen einfachen Arduino-Sketch im Inet 
draufgepackt und geguckt was passiert. Mit dem Ergebnis bin ich 
zufrieden aber es kommt mir sehr langsam vor.

Ich benutze den Arduino Uno.

Ist das HC-05 Modul so langsam oder liegt es am Uno?

Ich möchte mit einem anderen, deutlich besseren µC, über Bluetooth ein 
Modellauto steuern. Ist dafür das HC-05 Modul geeignet? (wollte es gerne 
nehmen, weil es sich leicht in Arduino bzw Raspy implementieren lässt).

Kann man das HC-05 empfehlen oder gibt es bessere Alternativen? Bzw ist 
es überhaupt relevant welches BT Modul man verwendet?

von STK500-Besitzer (Gast)


Lesenswert?

Mit welcher Baudrate betreibs du das Ding?

von J. S. (Gast)


Lesenswert?

1) woher sollen wir das ohne Code wissen
2) ist langsam = kleine Datenrate oder hohe Latenz
3) nimm zum Fernsteuern ein nrf24

von Stefan F. (Gast)


Lesenswert?

> Ist das HC-05 Modul so langsam oder liegt es am Uno?

Wie langsam ist es denn? Wie sieht dein Programm aus?

von Cyblord -. (cyblord)


Lesenswert?

Stefan U. schrieb:
>> Ist das HC-05 Modul so langsam oder liegt es am Uno?
>
> Wie langsam ist es denn? Wie sieht dein Programm aus?

Woher soll er das wissen?

> Zum testen habe ich mir einen einfachen Arduino-Sketch im Inet
> draufgepackt

Es wird einfach was runtergeladen und dann rumgeschrien weil es 
angeblich den eigenen, völlig unbekannten, Anforderungen nicht genügt.

Aber weder das Eine noch das Andere ist irgendwie sauber gemessen oder 
festgelegt.
Das ist ne typische Arduino vorgehensweise, völlig unbeschwert von 
jeglichem Wissen an eine Sache ranzugehen und diesen Müll dann hier ins 
Forum zu kippen.

von Jim M. (turboj)


Lesenswert?

Ben B. schrieb:
> Ist das HC-05 Modul so langsam oder liegt es am Uno?

Default Baudrate: 9600 Baud. Das heisst ~1ms pro Zeichen.

Vorsicht: Wenn man das deutlich schneller haben will, bräuchte man 
Datenflusskontrolle (Hardware Handshake), die kann der AVR im Uno aber 
AFAIK nicht (oder nur in Software).

Außerdem gibt es bei so ca. 460800 Baud ein "hartes" Limit im Bluetooth 
SPP,
d.h. Bluetooth wäre dann langsamer als der UART. Das habe ich 
allerdings nie mit einem HC-05 getestet.

von Ben B. (benwb)


Lesenswert?

Baudrate ist 9600
Der Code hat die Lib SoftwareSerial.h von Arduino eingebunden.
Es geht mir allerdings nicht um die Verbesserung des Codes sondern um 
eine grundsätzliche Aussage zum HC05.
Habe mit Bluetooth noch nie gearbeitet und will da nur mal wissen worauf 
man achten muss. Ob ich schon beim Modul auf 
Geschwindigkeitsproblematiken achten muss.

1
#include <SoftwareSerial.h>
2
#define ledPin 13
3
#define rxPin 10
4
#define txPin 11
5
SoftwareSerial btSerial(rxPin, txPin);
6
String btData;
7
void setup()
8
{
9
  btSerial.begin(9600);
10
  btSerial.println("bluetooth available");
11
  pinMode(ledPin,OUTPUT);
12
}
13
void loop()
14
{
15
  if (btSerial.available()){
16
    btData = btSerial.readString();
17
      if(btData=="on"){
18
        digitalWrite(ledPin,1);
19
        btSerial.println("LED on Pin 13 is on");
20
      }
21
      if (btData=="off"){
22
        digitalWrite(ledPin,0);
23
        btSerial.println("LED on Pin 13 is off");
24
      }
25
    }
26
    delay(100);
27
}

von Stefan F. (Gast)


Lesenswert?

Die Ursache für Verzögerung ist offensichtlich der delay(100) Befehl.

von Ben B. (benwb)


Lesenswert?

Stefan U. schrieb:
> Die Ursache für Verzögerung ist offensichtlich der delay(100) Befehl.

Den hatte ich schon rausgenommen und das ausprobiert.
Keine sichtbare Verbesserung.

von Stefan F. (Gast)


Lesenswert?

> Wie langsam ist es denn?

Und: Um welche Daten geht es, einzelne Zeichen oder längere 
Zeichenfolgen? Wie lang?

Was für ein Gerät verwendest du auf der anderen Seite der Funkstrecke?
Falls es Windows ist, mit welchem Bluetooth Stack?
Konkurriert dein Funknetz eventuell mit einem hoch ausgelasteten WLAN?

von Cyblord -. (cyblord)


Lesenswert?

Ben B. schrieb:
> Stefan U. schrieb:
>> Die Ursache für Verzögerung ist offensichtlich der delay(100) Befehl.
>
> Den hatte ich schon rausgenommen und das ausprobiert.
> Keine sichtbare Verbesserung.

Na Stefan, kommst du dir jetzt schön verarscht vor?
Da wird Code präsentiert welcher gar nicht aktuell ist.

Darum höre meine Worte im Umgang mit solchen Arduino-Zombies: Auslachen 
-> Umdrehen -> Wegghen.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ich frage nach dem Bluetooth Stack, weil der von Microsoft 
erfahrungsgemäß beim SPP Protokoll mal unzuverlässig und mal gar nicht 
funktioniert. Die Hersteller von Bluetooth Sticks bzw. Laptops bieten 
oft einen besseren Ersatz (häufig von Widcomm) an.

von Timmo H. (masterfx)


Lesenswert?

Geringe Latenzen und hohe Geschwindigkeit bekommst du mit den Nrf24l01 
Modulen. Werden auch direkt von arduino unterstützt und kosten nur  70 
Cent

von Ben B. (benwb)


Lesenswert?

@Stefan Us
Ich sende mit meinem Handy. 'Bluetooth Terminal' heißt die App.
Eigentlich sende ich nur kurze Strings mit 'on' bzw 'off'
Wie gesagt, ich habe das ganze nur kurz zuhause ausprobiert und bemerkt, 
dass es eine gewisse Verzögerung hatte.
Die Frage die ich mir gestellt hatte war, ob das an dem Modul liegt 
(weil es halt ein Arduino-Modul ist) oder ob das andere Gründe hat. Wenn 
es am Modul liegt würde ich mich erstmal damit beschäftigen welches 
Modul am besten geeignet ist. Wenn das keine Rolle spielt kann ich mich 
näher mit diesem Modul beschäftigen.

@Timmo H.
Das ganze soll auf jeden Fall über Bluetooth laufen

@Cyblord
Wenn du nichts beizutragen hast halt den Mund.

von Ebay (Gast)


Lesenswert?

Ben B. schrieb:
> @Timmo H.
> Das ganze soll auf jeden Fall über Bluetooth laufen

Wie lang ist die Verzögerung und wie lang darf sie maximal sein

> @Cyblord
> Wenn du nichts beizutragen hast halt den Mund.

Wenn du so lieb bist helfen bestimmt alle

von Stefan F. (Gast)


Lesenswert?

Zum 100. mal:

> Wie langsam ist es denn?

Und beantworte bitte auch die anderen Fragen, falls du ernsthaft Hilfe 
erwartest.

von RP6conrad (Gast)


Lesenswert?

BT sendet in Packeten. Das bedeutet das ihre serial input erst in ein 
puffer kommt, wen diese puffer foll ist, oder nach eine bestimmte zeit 
wird das packet gesendet ueber bt. An die empfangstelle ist das auch 
wieder so. Damit hasst du eine "Verzogerung". Wie Laenge kann ich nicht 
sagen, aber eine hohere baudrate und mit eine langere Zeichenkette 
verbessert sich das wahrscheinlich. Ich verwende duese HC05 mit 38400 
baud, und sende jede 100 ms ueber die 100 Zeichen, geht problemlos.

von Ben B. (Gast)


Lesenswert?

Danke dir, das hilft schon mal weiter

von Dauergast (Gast)


Lesenswert?

Ben B. schrieb:
>> Die Ursache für Verzögerung ist offensichtlich der delay(100) Befehl.
> Den hatte ich schon rausgenommen und das ausprobiert.

Serial.readString() reads characters from the serial buffer into a 
string. The function terminates if it times out (see setTimeout()).

Default == 1000ms.

Auch wenn Arduino Sch***e ist, in der Doku steht alles, was Du 
brauchst ;-)

Ja, HC-05 taucht hervorragend für Deine Zwecke. Ob Dein Handy oder Deine 
Software das auch tut, wäre eine ganz andere Frage. Und ja, es gibt 
dumme Fragen.

von Stefan F. (Gast)


Lesenswert?

Ben, würdest du bitte mal die Frage beantworten oder erklären, warum du 
das verweigerst?:

> Wie langsam ist es denn?

von Ben B. (benwb)


Lesenswert?

ca 1-2s.
Die Verzögerung ist wahrnehmbar, gemessen habe ich sie nicht.

Aber meine Frage hat Dauergast jetzt beantwortet.
Ich wollte nur wissen ob das HC05 Modul theoretisch für meine Zwecke 
geeignet ist. Das Handy oder der PC spielen erstmal keine wesentliche 
Rolle. Die Software ist wie gesagt auch nur zum ausprobieren da. Auch 
der Arduino Uno war nur zur Probe, weil er sich halt schneller testen 
lässt, da.
Ansonsten arbeiten wir mit einem F28335 von TI.

von Stefan F. (Gast)


Lesenswert?

Ich bin es gewohnt, dass eine kurze Nachricht binnen viel weniger als 1 
Sekunde beantwortet werden kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.