- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 25

Thema: ein Bluetoothproblem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    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!):

    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);
       }
     
     }
    }
    Mit ArduDroid und dem HC06 kommen alle digitalen und analogen Signale an. Das ist das Ergebnis im SM:

    *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.

    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
    Versuch mal zuerst die BT Kopplung auf der Android-Ebene herzustellen und dann erst mit der App.

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hallo,

    hast Du versucht Dein text-sende-code:

    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);
       }
     }
    }
    in den code - der mit der ardroid app zusammenarbeitet - zu integrieren?
    gruß inka

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    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

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    nunja, es ging mir darum, ob Du versucht hast aus diesem code:

    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;      
      
      } 
    }
    und dem code aus meinem letzten post eines zu machen, welches für analogWrite, digitalWrite und data mit der app ardroid funktioniert?
    Anders gefragt: Du wolltest doch damit Deinen Bagger steuern. Verwendest Du analg-, digital- oder das DATA- teil des codes und der app?
    gruß inka

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Ich habe mit AppInventor eine eigene App gebaut, die auch prima klappt. Da übertrage ich nur Text.

    Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_4802.JPG
Hits:	10
Größe:	30,2 KB
ID:	32372

    vG
    fredyxx

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    ok, empfängs du den text am arduino mit dem code aus post #20, oder mit etwas anderem?
    gruß inka

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress