Hmmm....also bisher hab ich mit dem Ändern der Baudrate keinen Erfolg gehabt.
Die Ausgabe sieht immer noch wie folgt aus:
Code:Send something in serial-monitor or in bluetooth-terminal Here we go 69 82 82 79 82 61 50 48 49 13 10 69 82 82 79 82 61 49 48 49 13 10 -1 -1 -1 -1Code:#include <SoftwareSerial.h> SoftwareSerial softSerial(2, 3); // RX, TX void setup() { Serial.begin(9600); softSerial.begin(115200); delay(100); softSerial.println("U,9600,N"); // Temporarily Change the baudrate to 9600, no parity // 115200 can be too fast at times for NewSoftSerial to relay the data reliably softSerial.begin(9600); // Start bluetooth serial at 9600 Serial.println("Send something in serial-monitor or in bluetooth-terminal"); delay(1000); softSerial.println("AT"); delay(1000); softSerial.println("AT+NAMEfunnylilbluetooththing"); Serial.println("Here we go"); delay(500); // Reset all settings. softSerial.write("AT+RENEW"); delay(300); //AT+ROLE1 = slave //AT+ROLE0 = is master softSerial.write("AT+ROLE1"); delay(300); //AT+PASSxxxxxx sets the password xxxxxx (6 characters) softSerial.write("AT+PASS000001"); delay(300); //The work mode only works for the Master HM-10. //AT+MODE0 = Transmission Mode //AT+MODE1 = Remote Control Mode //AT+MODE2 = Modes 0 + 1 softSerial.write("AT+MODE0"); delay(300); //AT+IMME0 = wait until "AT+START" to work //AT+WORK1 = connect right now softSerial.write("AT+IMME0"); delay(300); softSerial.write("AT+BAUD9600"); delay(300); //AT+START = AT+WORK softSerial.write("AT+START"); delay(300); } void loop() { if (softSerial.available()) softSerial.print("AT"); delay(500); Serial.println(softSerial.read()); if (Serial.available()) softSerial.println(Serial.read()); }
Ich wär momentan froh, wenn ich einfach auf ein AT ein OK bekommen würde...
//Edit: Der Chip auf meinem Modul ist übrigens ein CC2541.
- - - Aktualisiert - - -
Komisch....jetzt spuckt mir das HM-10 ein OK aus mit diesem Code:
Blöd nur, dass ich es bluetoothseitig vom Smartphone oder PC nicht finden kann.Code:#include <SoftwareSerial.h> //SoftwareSerial softSerial(6, 5); // RX, TX HC-05 SoftwareSerial softSerial(2, 3); // RX, TX HM-10 void setup() { Serial.begin(9600); softSerial.begin(9600); // Start bluetooth serial at 9600 Serial.println("Send something..."); delay(300); softSerial.println("AT"); delay(300); /* softSerial.write("AT+ROLE0"); delay(300); softSerial.write("AT+PASS000001"); delay(300); softSerial.write("AT+MODE2"); softSerial.write("AT+WORK1"); delay(300); */ } void loop() { if (softSerial.available()) Serial.write(softSerial.read()); if (Serial.available()) softSerial.write(Serial.read()); }
- - - Aktualisiert - - -
Finally it works!
Code:#include <SoftwareSerial.h> //SoftwareSerial softSerial(6, 5); // RX, TX HC-05 SoftwareSerial softSerial(2, 3); // RX, TX HM-10 void setup() { Serial.begin(9600); softSerial.begin(9600); // Start bluetooth serial at 9600 Serial.println("Send something..."); delay(300); Serial.println("AT"); softSerial.println("AT"); delay(500); Serial.println("AT+NAMEansgar"); softSerial.println("AT+NAMEansgar"); delay(500); Serial.println("AT+PASS000001"); softSerial.println("AT+PASS000001"); delay(500); Serial.println("AT+ROLE0"); softSerial.println("AT+ROLE0"); delay(500); Serial.println("AT+MODE2"); softSerial.println("AT+MODE2"); delay(500); Serial.println("AT+WORK1"); softSerial.println("AT+WORK1"); delay(500); } void loop() { if (softSerial.available()) Serial.write(softSerial.read()); if (Serial.available()) softSerial.write(Serial.read()); }
liefert im Serial-Monitor folgendes zurück:
(die Ausgabe ist war was durcheinander....aber hauptsche es funktioniert erstmal! Jetzt weiß ich immerhin, dass ich den Chip nicht mit 5V gegrillt habeCode:Send something... AT AT+NAMEansgar AT+PASS000001 AT+ROLE0 AT+MODE2 AT+WORK1 OK +NAME=ansgar OK +PASS=000001 OK +ROLE=0 OK)
Probleme hat das softSerial.write() gemacht, wobei ich gestern getestet hatte, ob alles mit write() oder print() funktioniert. Scheinbar ist wirklich ein println() nötig!
- - - Aktualisiert - - -
Arrrrgh....doch nicht.
Er hat kurzzeitig reagiert auf die AT-Commands.
Aber nun nicht mehr. Jetzt bekomme ich keine Antwort mehr vom Modul.
Also habe ich mal mein Austauschmodul angeklemmt....und da bekomme ich mit exakt dem selben Code wieder so ne komische Zahlenabfolge.
Ich werd jetzt mal die Delays hochschrauben und sehen, obs daran liegt.
//Edit: Infos zum HM-10 gibts übrigens hier: http://www.jnhuamao.cn/showNews.asp?id=87






)
Zitieren

Lesezeichen