INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Serielle Kommunikation
23.11.2014, 08:45
Beitrag #1
Serielle Kommunikation
Hallo zusammen,

als Neuling bei der Arduino Programmierung brauch ich mal eure Hilfe.

Ich habe am Arduino ein Bluetooth Modul angeschlossen. Zu diesem Stelle ich eine Verbindung vom Laptop her.
Auf der Laptopseite wird mit VB.Net programmiert. Die Herstellung der Verbindung klappt mittlerweile. Zur Kommunikation schicke ich Zeichenfolgen und Zahlen hin und her.
Nur ich bekomm das einfach auf Arduino Seite nicht hin. Die verschiedensten Beispiele funktionieren einfach nicht.
Ebenfalls hab ich ein Problem mit der Verkettung von Zeichen und Zahlen, die ich dann über die Schnittstelle schicken will. Hat jemand ein funktionierendes Beispiel zu sowas.

Noch eine Frage zu VB.Net, wie kennzeichnet ihr den Stringabschluss des Serial Ports.
Konfiguriert ihr den Serialport mit serialPort.NewLine = Chr(13) oder hängt ihr an jede Übertragung ein Chr(13) an?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2014, 14:30
Beitrag #2
RE: Serielle Kommunikation
(23.11.2014 08:45)nettworker schrieb:  Hat jemand ein funktionierendes Beispiel zu sowas.
Wahrscheinlich gibt's sowas oft, ist im Prinzip auch ganz einfach.
Kannst Du mal etwas detaillierter beschreiben, was bei Dir genau nicht funktioniert und auch Dein Coding dazu hier einstellen? Dann könnte man etwas gezielter helfen.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2014, 16:01 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2014 16:04 von nettworker.)
Beitrag #3
RE: Serielle Kommunikation
(23.11.2014 14:30)Thorsten Pferdekämper schrieb:  
(23.11.2014 08:45)nettworker schrieb:  Hat jemand ein funktionierendes Beispiel zu sowas.
Wahrscheinlich gibt's sowas oft, ist im Prinzip auch ganz einfach.
Kannst Du mal etwas detaillierter beschreiben, was bei Dir genau nicht funktioniert und auch Dein Coding dazu hier einstellen? Dann könnte man etwas gezielter helfen.

Gruß,
Thorsten

Code:
#include <SoftwareSerial.h>

char _input[40];      // puffer für die Daten
char _current;         // puffer für empfangenes Zeichen
int _incount = 0;      // Zähler zum schreiben in den Puffer
bool _lineComplete = false; //
String txtMsg ="";

SoftwareSerial mySerial(12, 13); // RX, TX

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
}


// wiederhole die Schleife, solange ein Zeichen an der Seriellen
// schnittstelle anliegt, der Puffer nicht überschritten ist und noch
// kein lineComplete da ist
void loop() {
  Check_BTInput();

}

void Check_BTInput() {
    while ( (mySerial.available()) & (_incount < 40) & (!_lineComplete) )
    {
        _current = mySerial.read(); // aktuelles Zeichen einlesen
        if (_current != 13)         // ist das empfange Zeichen kein ENTER
        {
            // dann in den Puffer schreiben
            _input[_incount] = _current;
            _incount++;
        }
        else
        {
            // puffer mit NULL Zeichen abschließen, damit das Ende der Zeichenkette
            // durch string Operationen erkannt wird
            _input[_incount] = '\0';
            _lineComplete = true;
        }
    }
    
    // so wenn man hierher kommt, dann kann das drei Gründe haben:
    // - keine zeichen mehr an der seriellen Schnittstelle
    // - Puffer voll, aber noch kein Zeilenende
    // - Zeilenende erreicht
    if (_lineComplete) {
        // Serial.println(_input);
        _lineComplete = false;
        _incount = 0;
        // weiter mit String Operationen
                txtMsg = _input;
                
                Serial.println("txtMsg = " + txtMsg);
                if ( txtMsg == "@AYT") { // Are You There?
                   Serial.println("AYT erkannt");  // Kontrolle am seriellen Monitor
                   mySerial.println("@AYT->YES"); // Ausgabe über die serielle Schnittstelle
                   Serial.println("@AYT->YES gesendet"); // Kontrolle am seriellen Monitor
                }  
                else if  ( txtMsg == "@GET") { // Schick mir die Daten
                   Serial.println("Get erkannt");
                   mySerial.println("@BF," + millis()); // Einfach nur mal millis() für nen Zahlenwert
                   Serial.println("@BF gesendet");
                }
    }
        else if (_incount == 40)
    {
        Serial.println("@ERROR_BUFF_FULL");
        // - Puffer voll, aber noch kein Zeilenende
    }
}

Problem ist, das ich keine Rückantwort oder eine Ausgabe auf dem seriellen Monitor bekomme. Die Verbindug zum PC steht, das kann ich an den LED's sehn. Die Anfrage "@AYT" geht über sereille Schnittstelle / BT raus....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2014, 17:18 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2014 17:22 von rkuehle.)
Beitrag #4
RE: Serielle Kommunikation
Hallo nettworker,

versuche mal folgendes (und setzte die Kabel entsprechend):
Code:
SoftwareSerial mySerial(10, 11); // RX, TX
Wenn das funktioniert, dann Bezug auf
Zitat:-Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69).
aus http://arduino.cc/en/pmwiki.php?n=Refere...wareSerial
Du benutzt einen Mega?
Zur Ablaufkontrolle noch der Plan der Funktion im Attachment
Grüße Ricardo


Angehängte Datei(en) Thumbnail(s)
   

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2014, 17:19
Beitrag #5
RE: Serielle Kommunikation
Hi,
die LED am Bluetooth-Modul sagt eigentlich nur, dass das Modul eine Verbindung hat. Möglicherweise stimmt aber was nicht an der Verbindung zwischen Modul und Arduino.
Ich würde damit anfangen, einen Fehler im Sketch auszuschließen. Schreib' Dir mal einen Sketch, der einfach nur alles, was über BT reinkommt über die normale serielle Schnittstelle ausgibt. Dazu vielleicht noch in setup() ein Serial.println("Hello"), um auszuschließen dass es mit dieser seriellen Schnittstelle ein Problem gibt.
Bist Du Dir sicher, dass Du tatsächlich auf der PC-Seite was sendest? ...auch über den richtigen Port?
Um Fehler in Deinem VB-Programm auszuschließen kannst Du es auch mal mit putty oder sowas probieren.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2014, 17:29 (Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2014 17:30 von nettworker.)
Beitrag #6
RE: Serielle Kommunikation
@Ricardo,
derzeit hängt ein Nano dran.

@Thorsten
Es war von PC Seite aus soweit alles OK, bis auf eine Kleinigkeit anscheinend....

Ich denke ich hab den Fehler. Man kann bei VB für den Serial Port das Zeichen für NewLine angeben. Da habe ich den Chr(13) angegeben. Wenn ich den jetzt beim Schreiben auf die serielle Schnittstelle als Abschluss mitschicke, dann funktioniert es. Das Zeilenende wird jetzt sauber ekannt.

Beim Senden von Arduino Seite aus hab ich aber noch ein kleines Problem. Wie kann ich denn da den zu versendenden 'String' zusammensetzen / verketten.
Bei VB würde ich das mit "A1," & Str(47) & ",A2," & ..... machen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2014, 17:41
Beitrag #7
RE: Serielle Kommunikation
(23.11.2014 17:29)nettworker schrieb:  Beim Senden von Arduino Seite aus hab ich aber noch ein kleines Problem. Wie kann ich denn da den zu versendenden 'String' zusammensetzen / verketten.
Bei VB würde ich das mit "A1," & Str(47) & ",A2," & ..... machen.
Hi,
die Frage ist: "Warum?". Schicke doch einfach die Zeichen einzeln. Der PC weiß ja nicht, ob das vorher auf dem Arduino zusammengesetzt war oder nicht.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.11.2014, 18:15
Beitrag #8
RE: Serielle Kommunikation
(23.11.2014 17:41)Thorsten Pferdekämper schrieb:  Hi,
die Frage ist: "Warum?". Schicke doch einfach die Zeichen einzeln. Der PC weiß ja nicht, ob das vorher auf dem Arduino zusammengesetzt war oder nicht.
Gruß,
Thorsten
Das ist richtig. Aber.....
Zum einen der Lerneffekt und zum anderen gibts ja schon mal Varianten, wo so ein Verketten erforderlich ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Kommunikation über das WiFi-Shield Flap 3 229 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Kommunikation Serial Monitor --> Arduino BennIY 7 352 24.05.2016 07:48
Letzter Beitrag: hotsystems
  Serielle Schnittstelle - Daten empfangen Datatom 8 772 22.05.2016 18:10
Letzter Beitrag: avoid
  USB-Kommunikation ADK hr3 0 278 12.04.2016 16:43
Letzter Beitrag: hr3
  "WORT" über die serielle Schnittstelle auslesen hannes77 1 515 08.03.2016 12:13
Letzter Beitrag: Binatone
  I²C Kommunikation bricht ab chhec 1 344 19.01.2016 11:10
Letzter Beitrag: ardu_arne
  Zahlenformat bei Kommunikation mit zwei Arduinos Matthias_Arduino 5 632 07.01.2016 22:40
Letzter Beitrag: Bitklopfer
  Grundlagen zur UART Kommunikation gesucht... torsten_156 10 874 16.12.2015 22:26
Letzter Beitrag: Bitklopfer
  TWI Kommunikation überprüfen chhec 8 746 29.11.2015 18:09
Letzter Beitrag: rkuehle
  Serielle Ausgabe, Reset ? Mathias 1 593 12.11.2015 18:12
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste