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
Druckbare Version
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
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?
state habe ich noch nie gebraucht, bei en-able 3.3V anlegen beim umprogrammieren mit AT- befehlen...
- - - Aktualisiert - - -
eine frage noch:
wie hast due nas modul am arduino (uno? mega?) angeschlossen?
zur Probe nur GND und 5 Volt
ich dachte eher an die verbindung über ardu-droid und die steuerung?
hast du an deinem bagger nun einen uno, oder mega? damit hängt letztendlich zusammen ob du mit software.serial arbeiten musst, oder auf die beim mega vorhandenen RX1/TX1 zugreifen kannst...
Ich habe einen MEGA und gehe davon aus, dass ich ähnlich wie dieses Programm mit Rx/Tx auf das BT-Modul zugreifen kann. Habe damit aber noch keine Erfahrung!!
Code:/*
PROJECT: ArduDroid
PROGRAMMER: Hazim Bitar (techbitar at gmail dot com)
DATE: Oct 31, 2013
FILE: ardudroid.ino
LICENSE: Public domain
*/
#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_ARDUDROID 13
#define MAX_COMMAND 20 // max command number code. used for error checking.
#define MIN_COMMAND 10 // minimum command number code. used for error checking.
#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("ArduDroid 0.12 Alpha by TechBitar (2013)");
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 ARDUDROID
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
break;
}
else {
if (c != DIV_CMD_CHAR) {
inText += c;
delay(5);
}
}
}
}
// 2) GET digitalWrite DATA FROM ARDUDROID
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); // Uncomment this function if you wish to use
return; // return from start of loop()
}
// 3) GET analogWrite DATA FROM ARDUDROID
if (ard_command == CMD_ANALOGWRITE) {
analogWrite( pin_num, pin_value );
// add your code here
return; // Done. return to loop();
}
// 4) SEND DATA TO ARDUDROID
if (ard_command == CMD_READ_ARDUDROID) {
// 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;
// default:
// if nothing else matches, do the default
// default is optional
}
}
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 dioden :-)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;
}
}
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?
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.Zitat:
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