Ich habe ein Problem, an dem ich seit einiger Zeit gearbeitet habe. Ich habe eine Arduino Uno Platine und eine HC-05 Bluetooth-Transceiver mit TTL-Ausgänge.Prints ganzzahliger Wert, Arduino HC-05 Bluetooth-Modul
Die Anschlüsse sind wie folgt:
RX (HC_05) --> TX (Arduino UNO)
TX (HC_05) --> RX (Arduino UNO)
GND (HC-05) --> GND (Arduino UNO)
+5V (HC-05) --> +5V (Arduino UNO)
Ich habe folgendes Arduino Code:
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX | TX
void setup()
{
Serial.begin(9600);
BTSerial.begin(38400); // HC-05 default speed in AT command more
pinMode(9, OUTPUT); // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
pinMode(10, INPUT);
pinMode(11, OUTPUT);
digitalWrite(9, HIGH);
Serial.println("Enter AT commands:");
BTSerial.println("Welcome to ARBA-Beat");
}
void loop()
{
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTSerial.available()) {
Serial.println(BTSerial.read());
BTSerial.write(BTSerial.read());
BTSerial.flush();
}
}
ich eine Verbindung mit dem Bluetooth-Modul durch die Bluetooth-Terminal Android App. Alles funktioniert gut (sogar die Lichter auf dem Bluetooth-Modul). Aber wenn ich ein Zeichen aus dem Telefon zu Arduino senden, erhalte ich die folgende Ausgabe:
Text zu Bluetooth-Modul gesendet - ein
helfen bitte
danke
Sie rufen 'BTSerial.read () zweimal in verschiedenen Funktionen, was bedeuten kann, dass zwei Werte aus der Warteschlange entfernt werden. Versuchen Sie, es in einer Variablen zu speichern, bevor Sie es an Terminal absetzen/etwas mit dem Wert tun. –
@MorrisonChang Ich habe versucht, was auch immer Sie gesagt haben, jetzt bekomme ich boxförmige Werte –
Ich würde empfehlen, den Wert und die Umwandlung in hex/binary und das Senden an alle Debug/Log-Sitzung, die Sie verwenden, um zu sehen, ob Sie wirklich bekommen Wert, den Sie senden oder bei dem etwas anderes passiert (zusätzliche Zeichen/big-little-endian-Problem/crlf-Problem). Wenn Sie einem Lernprogramm folgen, möchten Sie möglicherweise einen Link dazu erstellen und darauf hinweisen, welcher Schritt fehlgeschlagen ist. –