Plötzlich solche Zeichen im Terminal ⸮A⸮ap3⸮Ӕ]W⸮嚨h⸮5+

Hallo,
bin Neu hier.
Hab ein ganz einfaches Programm zum Auslesen einer Bloototh-Eingabe vom Smartphone mit einem HC-05 Modul. Heute den ganzen Tag hat alles gut funktioniert.
Plötzlich habe ich nur mehr diese komischen Zeichen im Terminal:
⸮A⸮ap3⸮Ӕ]W⸮嚨h⸮5+
!
⸮E⸮⸮⸮!⸮4⸮5⸮⸮⸮(⸮oj⸮⸮⸮*⸮ i⸮⸮

Was mache ich da jetzt falsch?
Danke, Gerhard

Schaltplan geheim
Code geheim

Was mache ich da jetzt falsch?

Du lässt uns nicht auf deinen Tisch schauen

Mögliche Ursachen:

  • falsche Baudrate
  • Aus dem Ruder laufende Zeiger oder Array Index

Geheim ist gar nichts, ich kann das nur noch nicht. Ich probiere es:

Das HC-05 ist an einem UNO angeschlossen
TX -> RX PIN10
RX -> TX PIN11
+3,3V
GND

die Eingabe erfolgt mit einer Android App
Der Sketch:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
Serial.begin(9600);
Serial.println("Los geht's");
mySerial.begin(38400); //38400 für hc-05
}

void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}

Hat heute funktioniert.
Dann habe ich ein neues Programm für einen Barometer Sensor geladen
Und jetzt hab ich das Problem

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);  // RX, TX

void setup() {
  Serial.begin(9600);
  Serial.println("Los geht's");
  mySerial.begin(38400); //38400 für hc-05
}

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Ich kann zum Beispiel in diesem Sketch im Terminal ganz normal mit den AT Kommandos auf das HC-05 zugreifen und ich erhalte normale, lesbare Meldungen.
Wenn ich aber über die Android APP Zeichen hinschicke kommt nur Kauderwelsch im Terminal

weixelgeist:
Hat heute funktioniert.
Dann habe ich ein neues Programm für einen Barometer Sensor geladen
Und jetzt hab ich das Problem

Das Problem mit dem neuen Programm oder hast Du das alte wieder drauf gespielt?

Gruß Tommy

Wieder das alte
Ich gib´s auf für heute

Hi

Wenn der Sketch mit der Verbindung zum PC funktioniert, mit Verbindung zum Handy aber nicht - wo könnten wir den Schuldigen vermuten?
Die Einstellungen in Deinem Handy haben die falsche Baud-Rate - daher versteht der HC05 Nichts/Müll und sendet Das zum Arduino, Der Das im Terminal wieder sichtbar macht.

Reine Vermutung, klingt aber schlüssig.

MfG

Ja, das war eine gute Vermutung. Ist aber leider nicht so.
Habe es mit mehreren Smartphones und Tablets probiert.
Es ändert sich nichts.

(deleted)

Bitrate kontrolliert, ist OK

Ich bin jetzt mit meinem Latein am Ende
Das habe ich alles probiert:

Arduino UNO, NANO, MEGA2560
2 verschiedene HC-06 Module
3 verschiedene HC-05 Module
Smartphone, Tablet
Arduino IDE auf MAC und Windows PC

überall der gleiche Fehler

Die Übertragung über USB funktioniert
Die Übertragung mit Bluetooth gibt kauderwelsch

Und das schöne ist, dass alles gestern Vormittag noch perfekt funktioniert hat.

Dann habe ich um 11 Uhr ein umfangreiches Programm geladen und auf dem NANO installiert
Das ist ein Programm zum Auslesen eines Barometrischen Sensors und Übertragung der Daten an einen RC-Empfänger in einem Modellflugzeug
Das hat auch noch funktioniert, habe ich auf 3 Nanos installiert.

Und seither geht aber die Bluetooth Datenübertragung nicht mehr

Bin ratlos, danke für Eure Hilfe
Gruß Gerhard

(deleted)

Die Übertragung über USB funktioniert
Die Übertragung mit Bluetooth gibt kauderwelsch

Ich sagte es schon:
Baudrate richtig einstellen.

Hast du das getan?
Pairing wiederholt?

Jetzt hab ich den Fehler gefunden:
Die via Bluetooth gesendeten Ziffern wurden plötzlich als ASCII Code interpretiert. Wieso das passiert ist, weiß ich nicht.
Auf alle Fälle funktioniert jetzt der Sketch wieder.
Danke nochmals für Eure Tips.
Grüße Gerhard

Z.B deswegen:

int i = 64;
myStream.print(i); //   "64"
myStream.write(i); //  "@"

Dein Code (

   if (mySerial.available()) Serial.write(mySerial.read());

ist auf jeden Fall richtig!

Die via Bluetooth gesendeten Ziffern wurden plötzlich als ASCII Code interpretiert. Wieso das passiert ist, weiß ich nicht.
Auf alle Fälle funktioniert jetzt der Sketch wieder.

Das "plötzlich" deutet allerdings eher auf eine falsch eingestellte Baudrate hin.

Die Baudrate hat immer gestimmt, die war nicht verstellt.

Auf alle Fälle funktioniert jetzt der Sketch wieder.

Wie du es repariert hast, habe ich nicht verstanden.

weixelgeist:
...

Was auch immer das Problem war: Gewöhne Dir unbedingt an, Deine Arbeit zu versionieren. Immer zu einer funktionierenden Version zurückkehren zu können, ist echt beruhigend.

Gruß

Gregor

michael_x:
Wie du es repariert hast, habe ich nicht verstanden.

Jetzt habe ich die wahre Ursache gefunden.
Ihr habt recht gehabt, die Baudrate des HC-05 Moduls war verstellt.
Das Programm für das Segelflieger-Vario hat die Baudrate auf 9600 gestellt und ich habe das nicht gecheckt.

Und siehe da: wenn die Baudrate stimmt, dann funktioniert alles :wink:

Grüße Gerhard