HC-05 Bluetooth Verbindungsprobleme

Dieter,
alles gut, ich bin nur noch nicht so fix im Umsetzen, das wird noch.
Walter,
Den Widerstand noch eingebaut, im Fritzing D12 korrigiert (auf dem Board wars natürlich richtig.

Walter,
im seriellen Monitor sehe ich jetzt bei einer 1
78
FFFFFF80
bei einer 2
FFFFFF80
FFFFFF80
FFFFFF80
also drei Zeilen auf einmal im Anhang noch die Konfiguration des Buttons in der App

App_Botton_640x480.JPG

App_Botton_640x480.JPG

Ja, die LED tut immer noch nichts

Sehr komisch.
78h ist ein kleines 'x'.
Die FFFFFF80 ist vermutlich mein Fehler. Das sollte eine 80 werden, wenn Du die Zeile änderst in

Serial.println((byte)zeichen, HEX);

Ja, die LED tut immer noch nichts

Kann sie auch nicht, denn Deine App sendet offensichtlich nicht '1' oder '2', deshalb geht die Lampe nicht an. Da hätte nämlich 31 und 32 stehen sollen. Was genau uns die App mit den Werten 78h und 80h sagen will - ich weiß es nicht.

Ich verwende für sowas auf Android eine App namens 'Serial Bluetooth Terminal'. Die kann das Senden was ich will. Damit könntest Du Deinen Sketch überprüfen.

Walter, ich versau... dir den Feiertag.
Also, die app installiert, dem M1 eine 1 zugewiesen als Text, M2 eine 2.
Tippe ich dann eine 1, sehe ich im SerMonitor:
78
80
78
0
80
F8
bei einer 2:
80
80
80
78
0
80
78
Ich habe ja keine Ahnung, aber davon jede Menge. Mir kommt es so vor, als würden hier sehr schnell mehrere Befehle laufen, die die Led ein- und gleich wieder ausschalten.
Aber ich will dich heute nicht länger nerven, ich schaue erst mal in die Bedienungsanleitung der App, die wirds wohl hoffentlich geben. Danke, erhol dich von mir, Frohe Ostern und bleib schön gesund.

Dieter, das gilt auch für dich, hab Dank für deine Geduld.

schorsch55:
Walter, ich versau... dir den Feiertag.

Ooch, da mach Dir mal keine Sorgen; ist meine freie Entscheidung am Rechner zu sitzen.
Du bist ja auch sehr geduldig mit Ausprobieren und machen und tun - und ich will heute noch die LED leuchten sehen.

Einen Test noch (dann bin ich mal eine Weile offline):
Stell mal die Baudrate für das BT-Modul auf 9600.

Walter, es ist vollbracht :smiley: :smiley: :smiley:
die Baudrate wars, der HC hat sich wohl selbst überholt, da lag ich mit meiner laienhaften Vermutung gar nicht weit weg. Es funzt, sowohl in deinem, als auch in meinem Sketch mit deiner und meiner App. Der Hase hat das Ei gelegt, Walter sei Dank

Da nich für.

"selbst überholt" hat er sich nicht. Die Default-Baudrate des HC05 im Normalbetrieb ist eben nicht 38400, sondern 9600.
Die 38400 sind für den AT-Modus, in dem man mit diversen Kommados das Ding einstellen und untersuchen kann. Drauf gekommen bin ich durch diesen Link - ganz am Ende steht ganz verschämt:

To change HC-05 baud rate from default 9600 to 115200, 1 stop bit, 0 parity enter: "AT+UART=115200,1,0"

SoftwareSerial mit 115200 halte ich aber nicht für möglich. Wenn es nicht auf das Tempo beim Schalten ankommt lässt Du die 9600, bis 38400 sollte möglich sein.

Problem gelöst kannst Du dem Rest des Forums signalisieren durch Editieren des Eröffnungsbeitrags und da im Titel ein [gelöst] einfügen.

Schönes Wochenende!

Mi viel Gedöhns und der unschätzbaren Hilfe von Walter (wno158) wurde das Problem gelöst:
Hier der funktionierende Sketch, getestet mit den Android-Apps "Serial Bluetooth Terminal" und "Arduino Bluetooth Controller", "Bluetooth Switches"

#include <SoftwareSerial.h>
const int BTRX = 11;
const int BTTX = 10;
const int ledPin = 12;
char zeichen;               // In diese Variable wird die Eingabe gespeichert
SoftwareSerial SerialBT (BTRX, BTTX);

void setup() {
  Serial.begin(115200);
  SerialBT.begin(9600);                         // Standardgeschwindigkeit vom HC05
  Serial.println("bluetooth verfügbar");
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (SerialBT.available()) {                    //Wenn Kommunikationspartner vorhanden...
    zeichen = SerialBT.read();                   // Lese Eingabe ein
    Serial.println((byte)zeichen, HEX);
    if (zeichen == '1') {                    // Wenn Eingabe = 1 mach LED an...
      digitalWrite(ledPin, HIGH);
      Serial.println("LED an Pin 12 ist an");
    }
    if (zeichen == '2') {                    // Wenn Eingabe = 2 mach LED aus
      digitalWrite(ledPin, LOW);
      Serial.println("LED an Pin 12 ist aus");
    }
  }
}

Frohe Ostern allen
Schorsch

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.