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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ben B. (benwb)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Mit welcher Baudrate betreibs du das Ding?

von J. S. (Gast)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (stefanus)


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

von Ben B. (benwb)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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?

: Bearbeitet durch User
von Cyblord -. (cyblord)


Bewertung
-1 lesenswert
nicht 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. (stefanus)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (stefanus)


Bewertung
2 lesenswert
nicht lesenswert
Zum 100. mal:

> Wie langsam ist es denn?

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

von RP6conrad (Gast)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Danke dir, das hilft schon mal weiter

von Dauergast (Gast)


Bewertung
0 lesenswert
nicht 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. (stefanus)


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

> Wie langsam ist es denn?

: Bearbeitet durch User
von Ben B. (benwb)


Bewertung
0 lesenswert
nicht 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. (stefanus)


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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.