Hallo Inka,
wenn mich nicht alles täuscht, sind die Arduino Codes identisch, aber die App ist mir neu!
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
hallo,
hast Du versucht Dein text-sende-code:
in den code - der mit der ardroid app zusammenarbeitet - zu integrieren?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); } } }
gruß inka
Dies Frage verstehe ich leider nicht.
Meine Erfahrungen mit BT z.Z.
HC06 funktioniert prima. HC05 wenn die Verbindung einmal steht i.O.. Bis es soweit ist, muss ich aber immer mehrer Anläufe nehmen. Manchmal hatte ich sogar den Eindruck, dass er defekt sei, weil die LED weder leuchtete noch blinkte. Dann gings aber plötzlich wieder.
vG
fredyxx
nunja, es ging mir darum, ob Du versucht hast aus diesem code:
und dem code aus meinem letzten post eines zu machen, welches für analogWrite, digitalWrite und data mit der app ardroid funktioniert?Code:/* 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; } }
Anders gefragt: Du wolltest doch damit Deinen Bagger steuern. Verwendest Du analg-, digital- oder das DATA- teil des codes und der app?
gruß inka
Lesezeichen