HC-05 Arduino mit Handy?
Hey, ich würde gerne Daten von meinem Handy über ein Bluetooth modul(HC-05) auf den Arduino übertragen. Zum Test habe ich die Daten(Text) auf den Serial Monitor weitergeleitet. Aber ich bekommen nur "x" und "?" als Ausgabe. Das gleiche passiert wenn ich versuche Daten auf das Handy zu senden.
Code:
#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // RX, TX
void setup() {
Serial.begin(9600);
BTserial.begin(38400);
}
void loop(){
// Read from the Bluetooth module and send to the Arduino Serial Monitor
if (BTserial.available()){
Serial.write(BTserial.read());
}
// Read from the Serial Monitor and send to the Bluetooth module
if (Serial.available()){
BTserial.write(Serial.read());
}
}
1 Antwort
Was passiert, wenn du die gelesenen Daten erst mal in einer Stringvariablen zwischenspeicherst und erst dann sendest? Wahrscheinlich kommt der Arduino nicht damit zurecht, zu lesen und auf eine andere Schnittstelle zu senden... Und das auch noch in unterschiedlichen Geschwindigkeiten...
Habe es zu einem String geändert und "Hallo" gesendet dabei ist wieder 254 bzw 255 herausgekommen. Auch bei mehrmaligem senden.
mhh... Hab noch nie mit BT gearbeitet, ist soweit nur Theorie, da ich nur mit Serial.Print auf den SerialMonitor sende, was ich für Debug benötige...
Hab auch mit Softwareserial noch nie gearbeitet...
https://www.arduino.cc/en/Reference/SoftwareSerialBegin
Laut diesem Beispiel müssen die rx/tx auch als Input/Output gesetzt werden... Zudem ist die Frage, ob Du für das BT-Modul nicht eine eigene Bibliothek brauchst, oder lässt sich das einfach per Softwareserial auslesen? (Wie gesagt, BT ist ganz neu für mich... )
Okay, aber das mit der Bibliothek bzw mit RX/TX ist ein guter Tipp :D Danke
Ich bekomme immer eine Zahl zwischen 200 - 255 egal was ich sende.
#include <SoftwareSerial.h>
//Bluetooth
SoftwareSerial BTserial(2, 3); // RX, TX
int incoming = 0;
void setup() {
Serial.begin(9600);
BTserial.begin(9600);
}
void loop(){
// Read from the Bluetooth module and send to the Arduino Serial Monitor
if (BTserial.available()){
incoming = BTserial.read();
Serial.println(incoming);
}
// Read from the Serial Monitor and send to the Bluetooth module
if (Serial.available()){
BTserial.write(Serial.read());
}
}
Monitor:
255
246
255
254
255
255
Gesendet: immer 0