Board empfängt keine Daten via Bluetooth

Tag Leute,

ich stehe mal wieder vor einem Problem.
Und zwar habe ich mir mal eine Bluetooth Modul zugelegt. Es handelt sich um ein HC-05.
Hab das ganze auch wie beschrieben angeschlossen. Also GND und 5V ganz normal, dann RX vom Modul an TX0 vom Arduino und TX vom Modul an RX0 vom Arduino.

Board ist ein Mega2560.

Das verbinden mit meinem Smartphone klappt einwandfrei.
Das Senden via Bluetooth funktioniert, jedoch nur der Empfang nicht.. Habe auf meinem Android Smartphone das "Arduino Bluetooth Terminal installiert", wo ich die empfangenen Daten auch sehen kann. Jedoch wenn ich irgendwas sende, kommt das nicht am Board an(die RX Led auf dem Arduino leuchtet nicht auf).

Am Smartphone kanns nicht liegen, da habe ich schon ein zweites getestet.

Der Code spielt zwar dafür eigentlich keine Rolle, aber ich poste ihn trotzdem mal:

int ledpin=13;
int Command;


void setup() {
  
pinMode(ledpin, OUTPUT);
Serial.begin(9600);
}
 
void loop() {
  
  if (Serial.available()){
    Serial.println("angekommen");
   
    Command = Serial.read();
    

    if (Command == '1')
    {
      digitalWrite(ledpin,HIGH); 
    }
    if (Command == '0')
    {
      digitalWrite(ledpin,LOW); 
 
    }
    
}
}

Mache ich da prinzipiell irgendwas falsch? Weiß jemand Rat?

Hoi Leut,

ich vermisse in Deinem Sketch den Serial1 (oder 2 oder 3) an dem das BT-Modul verbunden ist.
Ich habe das bei einem MEGA mit Serial3 realisiert (Pins 14 und 15)

So kannst Du nur über den Serial Monitor senden/empfangen.

Doei
ARTy

Bist du dir da ganz sicher?
ist Serial ohne Zahl nicht standartmäßig RX0 und TX0? Also senden geht ja so.

ich habs jetzt mal mit Serial1 an RX1 und TX1(PIN 18 und 19) probiert und da funktioniert es seltsamerweise.

Kann mir das einer erklären?

Hast du dabei den USB-Stecker abgezogen? Das kommt sich dann nämlich in die Quere wenn da sonst noch was an RX dran hängt

A.R.Ty:
Hoi Leut,

ich vermisse in Deinem Sketch den Serial1 (oder 2 oder 3) an dem das BT-Modul verbunden ist.
Ich habe das bei einem MEGA mit Serial3 realisiert (Pins 14 und 15)

So kannst Du nur über den Serial Monitor senden/empfangen.
Doei
ARTy

@lengi
Die erste serielle Schnittstelle ist mit dem USB_Serial Adapter belegt. Die kannst Du nicht verwenden. Nimm eine der anderen 3 seriellen Schnittstellen.

Also zB statt
Serial.begin(9600);
Serial1.begin(9600);
und
Serial.println("angekommen");
Serial1.println("angekommen");
ecc.

Grüße Uwe

Für Serial3:

// Lese von SerialMonitor, schreibe auf TX3:
  if (Serial.available()) {
    int Daten = Serial.read();
    Serial3.write(Daten); 
  }

  // Lese von RX3, schreibe auf SerialMonitor:
  if (Serial3.available()) {
    int Daten1 = Serial3.read();
    Serial.write(Daten1); 
  }

A.R.Ty:
Für Serial3:

// Lese von SerialMonitor, schreibe auf TX3:

if (Serial.available()) {
   int Daten = Serial.read();
   Serial3.write(Daten);
 }

// Lese von RX3, schreibe auf SerialMonitor:
 if (Serial3.available()) {
   int Daten1 = Serial3.read();
   Serial.write(Daten1);
 }

Kommt darauf an ob er alles über Bluetooth laufen lassen will oder 2 Schnittstellen benutzt. Ich habe das erste verstanden.
Grüße Uwe

Joa, kann er dann ja leicht anpassen.
Aber warten wir erst mal bis er sich wieder meldet dazu - alles andere ist ja nur Spekulatius XD

A.R.Ty:
Joa, kann er dann ja leicht anpassen.
Aber warten wir erst mal bis er sich wieder meldet dazu - alles andere ist ja nur Spekulatius XD

ja.
Gute Nacht.

Ich hab das gleiche Modul (allerdings mit einem UNO) und ein ähnliches Problem am Anfang gehabt.

Benutze das SoftwareSerial und verbinde das BT-Modul mit anderen Pins.
Hier im Beispiel mit Pin 10 und 11 und einer ganz primitiven Verarbeitung:

Beispiel ungetestet:

#include <SoftwareSerial.h>
SoftwareSerial softSerial(10, 11); 

void setup()
{
   softSerial.begin(9600);
   softSerial.println("Bluetooth an und verbunden. Warte auf Eingabe...");
}

void loop()
{
  if (softSerial.available() > 0) 
  {
    int message = softSerial.read();
    softSerial.println("Daten Empfangen: ");   
    softSerial.println(message);
  }
}

Hoffe es funktioniert.
LG

Jo, mit SoftSerial geht ja sowieso - aber wieso wenn er eh 3 UARTs onBoard hat.
Aber. GEHUPFT WIE GESPRUNGEN 8)

A.R.Ty:
aber wieso wenn er eh 3 UARTs onBoard hat

Frag das bitte jemanden der sich auskennt und dir deine Frage beantworten kann :smiley:

Ich bin selbst totaler Anfänger und wollte ihm nur eine sichere Möglichkeit geben, das zu tun, was er möchte.
Ob es anders schlauer, effizienter und besser geht weiß ich nicht - da könnt ihr im dann weiterhelfen, wenn es schonmal vom Prinzip her klappt (und nicht der Fehler eventuell in seiner sonstigen Verarbeitung/Programmierung liegt).
Hehe...