in der anleitung steht aber drin, dass es nur mit HC05 funktioniert, mit anderen kann es funktionieren, muss aber nicht...
in der anleitung steht aber drin, dass es nur mit HC05 funktioniert, mit anderen kann es funktionieren, muss aber nicht...
Geändert von inka (13.11.2016 um 17:56 Uhr)
ich mache es mit dem RP6 loader V1.5, den hast du wahrscheinlich nicht. Es geht aber auch mit arduino:
https://www.google.de/webhp?sourceid...+konfigurieren
gruß inka
Hallo,
ich habe nun ein BT HC06 Slave Modul mit 4 Anschlüssen (Rx,Tx,Gnd und Vcc) und ein BT HC05 Master/Slave Modul mit 6 Anschlüssen.
Mit beiden funktioniert der Kontakt zu meinem Tablet.
Kann mir jemand sagen, wann man bei dem HC05 die Anschlüsse State und EN benötigt?
ich habe diese app installiert:
https://play.google.com/store/apps/d...anurag.arduino
und diesen code auf dem arduino:
funktioniertn für digital und analog, zumindest bei diodenCode:/* PROJECT: Ardroid CODED BY: Anurag Goel PUBLIC Licence Free To Modify */ #define START_CMD_CHAR '*' #define END_CMD_CHAR '#' #define DIV_CMD_CHAR '|' #define CMD_DIGITALWRITE 10 #define CMD_ANALOGWRITE 11 #define CMD_TEXT 12 #define CMD_READ_ARDROID 13 #define MAX_COMMAND 20 #define MIN_COMMAND 10 #define IN_STRING_LENGHT 40 #define MAX_ANALOGWRITE 255 #define PIN_HIGH 3 #define PIN_LOW 2 String inText; void setup() { Serial.begin(9600); Serial.println("Ardroid By : Anurag Goel"); Serial.flush(); } void loop() { Serial.flush(); int ard_command = 0; int pin_num = 0; int pin_value = 0; char get_char = ' '; //read serial // wait for incoming data if (Serial.available() < 1) return; // if serial empty, return to loop(). // parse incoming command start flag get_char = Serial.read(); if (get_char != START_CMD_CHAR) return; // if no command start flag, return to loop(). // parse incoming command type ard_command = Serial.parseInt(); // read the command // parse incoming pin# and value pin_num = Serial.parseInt(); // read the pin pin_value = Serial.parseInt(); // read the value // 1) GET TEXT COMMAND FROM ARDROID if (ard_command == CMD_TEXT){ inText =""; //clears variable for new input while (Serial.available()) { char c = Serial.read(); //gets one byte from serial buffer delay(5); if (c == END_CMD_CHAR) { // if we the complete string has been read // add your code here Serial.println(inText); break; } else { if (c != DIV_CMD_CHAR) { inText += c; delay(5); } } } } // 2) GET digitalWrite DATA FROM ARDROID if (ard_command == CMD_DIGITALWRITE){ if (pin_value == PIN_LOW) pin_value = LOW; else if (pin_value == PIN_HIGH) pin_value = HIGH; else return; // error in pin value. return. set_digitalwrite( pin_num, pin_value); return; // return from start of loop() } // 3) GET analogWrite DATA FROM ARDROID if (ard_command == CMD_ANALOGWRITE) { analogWrite( pin_num, pin_value ); // add your code here return; // Done. return to loop(); } // 4) SEND DATA TO ARDROID if (ard_command == CMD_READ_ARDROID) { // char send_to_android[] = "Place your text here." ; // Serial.println(send_to_android); // Example: Sending text Serial.print(" Analog 0 = "); Serial.println(analogRead(A0)); // Example: Read and send Analog pin value to Arduino return; // Done. return to loop(); } } // 2a) select the requested pin# for DigitalWrite action void set_digitalwrite(int pin_num, int pin_value) { switch (pin_num) { case 13: pinMode(13, OUTPUT); digitalWrite(13, pin_value); // add your code here break; case 12: pinMode(12, OUTPUT); digitalWrite(12, pin_value); // add your code here break; case 11: pinMode(11, OUTPUT); digitalWrite(11, pin_value); // add your code here break; case 10: pinMode(10, OUTPUT); digitalWrite(10, pin_value); // add your code here break; case 9: pinMode(9, OUTPUT); digitalWrite(9, pin_value); // add your code here break; case 8: pinMode(8, OUTPUT); digitalWrite(8, pin_value); // add your code here break; case 7: pinMode(7, OUTPUT); digitalWrite(7, pin_value); // add your code here break; case 6: pinMode(6, OUTPUT); digitalWrite(6, pin_value); // add your code here break; case 5: pinMode(5, OUTPUT); digitalWrite(5, pin_value); // add your code here break; case 4: pinMode(4, OUTPUT); digitalWrite(4, pin_value); // add your code here break; case 3: pinMode(3, OUTPUT); digitalWrite(3, pin_value); // add your code here break; case 2: pinMode(2, OUTPUT); digitalWrite(2, pin_value); // add your code here break; } }![]()
gruß inka
Hallo Inka,
wenn mich nicht alles täuscht, sind die Arduino Codes identisch, aber die App ist mir neu!
bei der verwendung der ardudroid app kommt keine "richtige" bluetooth verbindung zustande, die LED am HC05 blinkt nur einmal in kurzen abständen, auch fehlt bei mir bei dieser app die möglichkeit die gepairten bluetooth module mit dem smartphone zu verbinden
bei verwendung der ardroid app ist alles (was oben fehlt) vorhanden, blinken 2x kurz, anbinden von gepairten modulen...
ich habe den ardroid code jetzt so angepasst, dass die verbindung zu HC05 über die TX1/RX1 schnittstelle läuft, das kabel zum code-laden auf den arduinio kann dann eingesteckt bleiben...
der arduino sketch ist wirklich der gleiche...
wie ist es mit der daten (text) übertragung bei dir? gehts?
gruß inka
Hallo,
mit diesem kleinen Primitiv-Programm, mit dem die von BT kommenden Signale einfach nur auf dem Seriellen Monitor angezeigt werden, klappt bei mir nun folgendes mit einem UNO (ich habe den Eindruck alles!):
Mit ArduDroid und dem HC06 kommen alle digitalen und analogen Signale an. Das ist das Ergebnis im SM:Code:/*Dieser Code gehört zu dem Video auf Youtube https://www.youtube.com/watch?v=WbGwszuN6ww mit Verbindung über Rx und Tx */ int led = 13; void setup() { Serial.begin(9600); pinMode(led,OUTPUT); digitalWrite(led,LOW); } void loop() { if(Serial.available()) { String value = Serial.readStringUntil('\n'); Serial.println(value); if(value == "on") { digitalWrite(led,HIGH); } else if(value == "off") { digitalWrite(led,LOW); } } }
*10|02|3# für EIN
*10|02|2# für AUS
*10|03|3#
*10|04|3#
*10|05|3#
*10|06|3#
*10|07|3#
*10|08|3#
*10|09|3#
*10|10|3#
*10|11|3#
*10|12|3#
*10|13|3#
*11|11|110#
*11|10|112#
*11|09|113#
*11|06|110#
*11|05|109#
*11|04|112#
*11|03|115#
*12|99|99|TEST#
Wenn ich TEXT eingebe und auf SEND DATA tippe, dann erscheint auf dem SM dies: *12|99|99|TEST# und das wird auch auf dem Tablet unter GET DATA wieder angezeigt.
Ebenso ist es mit ArDroid mit den Digital- und Analogsignalen und das ist das Ergebnis:
*10|1|3# digital
*10|1|2#
*10|2|3#
*10|3|3#
*10|4|3#
*10|5|3#
*10|6|3#
*10|7|3#
*10|8|3#
*10|9|3#
*10|10|3#
*10|11|3#
*10|12|3#
*10|13|3#
*10|14|3#
*11|2|118# analog
*11|3|122#
*11|4|114#
*11|5|118#
*11|6|118#
*11|7|120#
*11|8|117#
*11|9|126#
*11|10|125#
*11|11|130#
*12|TEXT # Daten gesendet
*12|TEXT #
Wenn ich TEXT eingebe und auf den Sendpfeil tippe, dann erscheint auf dem SM dies: *12|TEXT# und auf dem Tablet hinter [SEND]: steht TEXT. Hier weiß ich aber nicht, ob es sich um eine echte Rückmeldung vom Arduino oder um eine Quittung vom Tablet handelt, dass gesendet wurde.
Mit dem HC05 habe ich das so vollständig noch nicht probiert.
Versuch mal zuerst die BT Kopplung auf der Android-Ebene herzustellen und dann erst mit der App.bei der verwendung der ardudroid app kommt keine "richtige" bluetooth verbindung zustande, die LED am HC05 blinkt nur einmal in kurzen abständen, auch fehlt bei mir bei dieser app die möglichkeit die gepairten bluetooth module mit dem smartphone zu verbinden
Lesezeichen