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
Serialport kommunikation : Arduino und VB.net GUI
19.03.2013, 14:06
Beitrag #1
Serialport kommunikation : Arduino und VB.net GUI
Hallo,
habe ein kleines Problem und zwar möchte ich dem Arduino anhand einer selbstgeschriebenen GUI Daten senden bzw vom Arduino empfangen.

So die Problemstellung ist, dass der Ardunio irgendwie wissen muss, wann er senden bzw empfagen soll.
Ich habe mir ausgedacht, dass ich es anhand von kontrollvariablen mache.
Falls ich in meiner GUI auf senden klicke wird dem Arduino als erstes die "1" gesendet somit weiß er ah ok, die GUI sendet mir was zu.
Falls ich auf receive klicke, sendet die GUI dem Arduino eine "2" und somit weiß der Arduino, ok ich muss der GUI was senden.
Habe auch leds (an digital I/O) drangebaut um dies zu erkennen.

SO habe mir ein Beispielsktech geschrieben für den Arduino, um dies zu erkennen, doch es klappt nicht.
Hier mein Code beispiel:
Code:
/*Code zum Empfangen und Senden von Daten über Serialport (GUI<-> Arduino) */

//Globale Variablen
/*----------Varaiblen fürs Senden---------------------------------------*/
int ist_senden= 1; //Falls Arduino an GUI sendet
const int ledPin1= 22;  //Mit Digital PIN 22 verbundene Led  (senden)
/*----------------------------------------------------------------------*/

/*----------Variablen fürs Empfangen------------------------------------*/
const int ledPin2= 23; //MIt Digital PIN 23 verbundene Led (empfangen)
int ist_receive=2; //Falls Arduino von GUI empfangen soll
int inByte; //Variable wo das Empfangene abgespeichert wird(als Byte)
char save_txt[300]; //Array von 300 zeichen zum speichern der empf. Daten
int index;
char chr; //Empfangenes charwert
/*----------------------------------------------------------------------*/
/*-----------Auswahlvariable für Swtich-Case----------------------------*/
int wahl; //Integervariable für Case-Verfahren
/*----------------------------------------------------------------------*/

/*----------- Hier beginnt das Programm---------------------------------*/

void setup()
{
  Serial.begin(9600); //Serialport öffnen mit baudrate 9600
  pinMode(ledPin1, OUTPUT); //ledPin1(senden LED), wird als Output gesetzt
  pinMode(ledPin2, OUTPUT); //ledPin2 (empf. LED), wird als Output gesetzt
  
}


void loop()
{
  if (Serial.available()) //Prüfen , ob mindestens ein Zeichen im Port vorhanden ist (Hier prüfe ich , ob senden oder EMpfangen)
  {
    chr = Serial.read(); //lese zeichen au und speichere in chr vom typ char
    wahl = int(chr); //Umwandeln in lesbares
  }
  
  switch (wahl){

    /*Senden der Daten von Arduino zur GUI*/    
    case 1:
              Serial.write("Hallo, ich bin dein Arduino");
              Serial.write(13); //Carriage return, damit man in GUI untereinander eingetragen hat(Formatierung)
              delay(1500); //warte 1,5sek
              
              Serial.write("Ich habe vor genau 1,5 sek hallo gesagt.");
              Serial.write(13);
              delay(1000); //warte 1 sek
              
              Serial.write("Jetzt geht es von vorne los....");
              
              delay(10);
              blink_send();
              
              break; //beende case 1
    
    /* Von GUI empfangen*/          
    case 2:
              if (Serial.available() > 0)
              {
                inByte = Serial.read(); //lese das aus und speichere in inByte(index)
              }
                blink_receive();
              
               break;
              
    
    
     //falls keine 1 oder 2
    
    default:
    
            if (Serial.available() > 0) //Prüfen , ob mindestens ein Zeichen im Port vorhanden ist (Hier prüfe ich , ob senden oder EMpfangen)
            {
    
              chr = Serial.read(); //lese zeichen au und speichere in chr vom typ char
              wahl = int(chr); //Umwandeln in lesbares
            }
            
            
           }
          
}

/*---------------------funktion für das Blinken beim senden an GUI----------------------*/
/*---------------------Blink funktion 0,5sek an und 0,5sek aus--------------------------*/

/*Rote LED*/

void blink_send()
{
  
  digitalWrite(ledPin1, HIGH); //leuchtet
  delay(500); //leuchtet 0,5 sek
  digitalWrite(ledPin1, LOW); //aus
  delay(500);
  
}
/*-------------------------------------------------------------------------------------*/


/*----------Funktion die in Case 2 aufegrufen wird, damit LED blinkt-------------------*/

/*gelbe LED*/

void blink_receive()
{
  digitalWrite(ledPin2, HIGH); //leuchtet
  delay(500); // 0,5sek an
  digitalWrite(ledPin2,LOW); //aus
  delay(500); //0,5sek aus
  
}  

/*-------------------------------------------------------------------------------------*/
Bitte um hilfe, danke euch
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 233 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Kommunikation Serial Monitor --> Arduino BennIY 7 354 24.05.2016 07:48
Letzter Beitrag: hotsystems
  USB-Kommunikation ADK hr3 0 280 12.04.2016 16:43
Letzter Beitrag: hr3
  I²C Kommunikation bricht ab chhec 1 347 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 885 16.12.2015 22:26
Letzter Beitrag: Bitklopfer
  TWI Kommunikation überprüfen chhec 8 751 29.11.2015 18:09
Letzter Beitrag: rkuehle
  Serielle Kommunikation arduino147147 1 666 15.10.2015 08:22
Letzter Beitrag: Binatone
  Serielle Kommunikation zw. zwei Arduino UNOs Marduino_UNO 2 1.109 20.08.2015 07:13
Letzter Beitrag: Marduino_UNO
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 1.112 05.05.2015 13:40
Letzter Beitrag: Bitklopfer

Gehe zu:


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