Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino mit Bluetooth HM-10
KnechtRupprecht
24.10.2015, 21:19
Hallo Zusammen,
entweder verstehe ich es nicht oder es geht schlichtweg nicht.
Ich möchte gerne das HM-10 Bluetooth-Modul mit meinem Arduino MEGA kommunizieren lassen. Aber irgendwie bekomme ich die Teile nicht zum "unterhalten".
Normalerweise sollte man ein "OK" zurück bekommen, wenn man dem HM-10 ein "AT" sendet.
Vielleicht hat ja jemand eine Idee, wo ich hier den Fehler mache..
ich bin für jede Hilfe dankbar..
Hier das Programmcoding...
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3); // RX, TX -- Bluetooth
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
Serial.println("AT");
delay(500);
mySerial.println("AT");
delay(500);
Serial.println(mySerial.read());
delay(500);
}
Danke..
m.a.r.v.i.n
24.10.2015, 22:48
Hallo,
wie ist denn das HM-10 Modul mit dem Arduino verbunden? RX und TX müssen über Kreuz verkabelt sein. Pegelwandler verwenden, da das HM-10 nur 3,3V Pegel verträgt.
Vielleicht änderst du besser dein Programm so ab, dass du die serielle Schnittstelle zwischen PC und Bluetooth Modul umleitest. Dann kannst du einfach AT-Befehle im Terminal eingeben und siehst die Antwort vom Modul.
void loop() {
char c;
if (Serial.available()) {
c = Serial.read();
mySerial.print(c);
}
if (mySerial.available()) {
c = mySerial.read();
Serial.print(c);
}
}
KnechtRupprecht
25.10.2015, 15:54
Hallo M.A.R.V.I.N
ich habe alles schon versucht.. die 3.3 Volt liegen an..
RX/TX vertauscht..
Mit einer RS232-Schnittstelle über USB reagiert der HM-10 Baustein wie er soll -- AT gesendet OK als Antwort......
BaudRate abgeglichen und..und und....
Nur über das Arduino Mega Board bekomme ich das Ding nicht zum Fliegen..
Ich verstehe es nicht mehr...
Er erkennt das HM-10 nicht, da bei dem Befehl -- if (mySerial.available()) --- läuft er auch nicht in die IF-Schleife..(WAHR-Bedingung)..
Es ist schon sehr seltsam..
Wenn Du noch eine andere Idee hast, wäre es super
Danke Dir..
Gruß
Knecht Rupprecht..
nikolaus10
26.10.2015, 09:34
Hallo
Schon mal ein Scope an die RX/TX Leitung gehaengt ?
Manchmal reicht auch eine flakernde LED.
RX/TX invertiert ?
73
m.a.r.v.i.n
26.10.2015, 18:56
Was mir noch eingefallen ist:
Das HM-10 Modul mag kein CR, LF am Ende eines Befehle, sondern nur den reinen Befehl. Also kein:
Serial.println("AT"); senden, sondern nur:
Serial.print("AT");
Ebenso muss der Serial Monitor auf 'kein Zeilenende' senden stehen.
Der Arduino Mega hat doch 4 serielle Hardware Schnittstellen. Warum verwendest du SoftSerial? Das sollte aber keinen Einfluss auf die Funktion haben.
Vielleicht hilft das weiter.
KnechtRupprecht
26.10.2015, 20:40
Hallo Zusammen,
herzlichen Dank für Eure Unterstützung..
Es duuuuut...
Ich verwende PIN 10 und 11 für die Kommunikation und da rennt die das Ding los ! ich bin begeistert...
Warum er hier PIN 10 und 11 beim MEGA akzeptiert kann ich wirklich nicht sagen.. Vielleicht hat jemand von Euch eine Erklärung.
Jetzt kann ich die nächsten Schritte unternehmen...
Danke nochmals...
Hier das Coding:
#include <SoftwareSerial.h>
SoftwareSerial softSerial(10, 11); // RX, TX
void setup()
{
Serial.begin(9600);
softSerial.begin(9600);
Serial.print("Hello, please wait...");
delay(500);
softSerial.print("AT");
delay(500);
softSerial.print("AT+NAMEKNECHT");
delay(500);
}
void loop()
{
if (softSerial.available())
Serial.write(softSerial.read());
if (Serial.available())
softSerial.write(Serial.read());
}
Da du bereits Erfahrungen mit dem HM-10 sammeln konntest, würd ich gerne wissen, was die Magie bei diesem Modul ist.
Ich hab grade mal ein HM-10 mit nem Pegelwandler (5V zu 3,3V) an nem Arduino Mega (und vorher auch an nem Nano) angeschlossen, aber ich bekomme einfach keine Antwort vom Modul. Weder per Softserial auf den von dir genannten Pins noch auf Serial1. Der Loop läuft einfach ohne Rückmeldung vom HM-10 durch.
Zur Sicherheit habe ich noch mein Ersatz HM-10 angeschlossen, aber auch hier das selbe Ergebnis.
Lediglich die Status-LED am Modul blinkt gemütlich vor sich hin.
Das HM-10 Modul mag kein CR, LF am Ende eines Befehle, sondern nur den reinen Befehl. Also kein:
Serial.println("AT"); senden, sondern nur:
Serial.print("AT");
Das verhält sich bei mir genau anderst.
Wenn ich print statt println verwende, bekomme ich kein OK zurück.
Außerdem muss ich den SerialMonitor auf "Both NL & CR" stellen, da ich dort ansonsten keine AT-Commands eingeben kann.
Aber eine Verbindung zwischen Smartphone und Modul habe ich imemr noch nicht hinbekommen.
Wenn man allerdings der PDF unter https://www.seeedstudio.com/wiki/images/c/cd/Bluetooth4_en.pdf glauben schenkt, habe ich ein Fake-Modul (das mittlere).
Evtl. macht es ja Sinn, mal eine Themensammlung hierzu zu starten: https://www.roboternetz.de/community/threads/68558-Bluetooth-Einstieg?p=622733#post622733
Der Thread zu meinem HM-10-Dilemma (was sich übrigens als CC41-A entpuppt hat):
https://www.roboternetz.de/community/threads/68336-Kleines-sparsames-Bluetoothmodul
(https://www.roboternetz.de/community/threads/68336-Kleines-sparsames-Bluetoothmodul)
Ich habe es inzwischen geschafft, ein CC41-A-Modul mit der HM-10 Firmware zu bespielen.
Eien Anleitung dazu habe ich in meinem oben genannten Thread erstellt.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.