HC-05 Bluetooth Modul: Schnell?

OP #5383761
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?
#5384184
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.
#5384275
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.
OP #5384349
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
}
Gast #5384433
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?
#5384441
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.
Gast #5384447
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.
OP #5384584
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.
Gast #5384654
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.
Gast #5384990
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.
OP #5385666
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren