Hallo an alle,
habe mir mit VB2010 eine GUI gebastelt, die steuerparmeter an dem Arduino sendet über einen Button send via Serialport.
Die GUI kann auch vom Arduino die Steuerparameter an der GUI senden und dies passiert anhand des buttons receive.
Habe folgendes problem:
Ich möchte die gesendeten parameter , die der Arduino über Serial empfängt in die SD karte in einer txt.Datei schreiben und nach bedarf(wenn ich in meiner GUI receive drücke) den Inhalt von der txt.datei in der Sd auslesen und der GUI übergeben.
DOCH habe vergebens auch in dem Arduino forum gefragt und selbst prboiert und auch das tutorial von hier ausprobiert, aber die Daten werden einfach nicht in die SD karte geschrieben.
Bräuchte dringend eure Unterstützung.
Hier der Arduino code:
Bräuchte dringend hilfe:(
Arduino :
Mein Arduino Part :
VB2010:
Dim kontrol_sende As Integer = 2 'kontrolvariable für Senden an Arduino
Private Sub btn_i2c_send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_i2c_send.Click
'Mit try wird versucht Übertragung an Arduino durchzuführen'
Try
'öffne Serielle Anschlussverbindung, sofern nicht bereits geöffnet'
If Not SerialPort_i2c.IsOpen Then SerialPort_i2c.Open()
SerialPort_i2c.Write(Chr(kontrol_sende))
'SerialPort_i2c.Write(kontrol_sende)
'falls Verbindung zum Device besteht, doch es wird auf sendbutton gedrückt und leere Texbox, meldung + verbindung schliessen
If txtbox_i2c.Text = "" Or Cmbport_i2c.Text = "" Then
SerialPort_i2c.Close()
MsgBox("Please check if you select the COM-Port" & vbCrLf & " Please check the input of the command")
Else 'sonst Schreibe / sende Ínhalt der Textbox an Arduino'
SerialPort_i2c.Write(txtbox_i2c.Text) ' durch vbr = Enter, d.h. wenn ein ganzer String wird ein enter gesendet und arduino weiß ok gsnzer String
SerialPort_i2c.Write(13)
MsgBox("Transfer successful")
End If
'Falls Übertragung fehlschlägt, Catch block um fehler auszubügeln und eigene message von vb'
Catch ex As Exception
MsgBox("Transfer failed - Please check the connection" & vbCrLf & ex.Message)
End Try
'Nach Übertragung Port wieder freistellen'
If SerialPort_i2c.IsOpen = True Then
SerialPort_i2c.Close()
End If
End Sub
Brauche eure hilfe
habe mir mit VB2010 eine GUI gebastelt, die steuerparmeter an dem Arduino sendet über einen Button send via Serialport.
Die GUI kann auch vom Arduino die Steuerparameter an der GUI senden und dies passiert anhand des buttons receive.
Habe folgendes problem:
Ich möchte die gesendeten parameter , die der Arduino über Serial empfängt in die SD karte in einer txt.Datei schreiben und nach bedarf(wenn ich in meiner GUI receive drücke) den Inhalt von der txt.datei in der Sd auslesen und der GUI übergeben.
DOCH habe vergebens auch in dem Arduino forum gefragt und selbst prboiert und auch das tutorial von hier ausprobiert, aber die Daten werden einfach nicht in die SD karte geschrieben.
Bräuchte dringend eure Unterstützung.
Hier der Arduino code:
Bräuchte dringend hilfe:(
Arduino :
Brainfuck-Quellcode
- 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
- //Variable wo das Empfangene abgespeichert wird(als Byte)
- /*----------------------------------------------------------------------*/
- /*-----------Auswahlvariable für Swtich-Case----------------------------*/
- int inByte; //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
- }
- Hier ist mein Arduino Part:
- void loop()
- {
- led_off();
- if (Serial.available()>0) //Prüfen , ob mindestens ein Zeichen im Port vorhanden ist (Hier prüfe ich , ob senden oder EMpfangen)
- {
- inByte = Serial.read(); //lese zeichen au und speichere in chr vom typ char
- //wahl = int(chr); //Umwandeln in lesbares
- }
- //LED-Rot-> sendet an GUI (Transmit)
- if (inByte == 1)
- {
- blink_send();
- Serial.write("Hallo, ich bin dein Arduino");
- Serial.write(13); //Carrige return line feed muss vom arduino kommen damit an gui richtig dargestellt wird
- blink_send();
- delay(2500);
- Serial.write("Ich habe vor genau 2,5 Sekunden Hallo gesagt :)");
- Serial.write(13);
- blink_send();
- Serial.write("Jetzt geht's von vorne los...");
- Serial.write(13);
- }
- //LED-Gelb -> empfängt von GUI (Receive)
- if (inByte == 2)
- {
- blink_receive();
- }
- }
- /*---------------------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
- }
- /*-------------------------------------------------------------------------------------*/
- void led_off(){
- digitalWrite(ledPin1,LOW);
- digitalWrite(ledPin2,LOW);
- }
Mein Arduino Part :
VB2010:
Dim kontrol_sende As Integer = 2 'kontrolvariable für Senden an Arduino
Private Sub btn_i2c_send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_i2c_send.Click
'Mit try wird versucht Übertragung an Arduino durchzuführen'
Try
'öffne Serielle Anschlussverbindung, sofern nicht bereits geöffnet'
If Not SerialPort_i2c.IsOpen Then SerialPort_i2c.Open()
SerialPort_i2c.Write(Chr(kontrol_sende))
'SerialPort_i2c.Write(kontrol_sende)
'falls Verbindung zum Device besteht, doch es wird auf sendbutton gedrückt und leere Texbox, meldung + verbindung schliessen
If txtbox_i2c.Text = "" Or Cmbport_i2c.Text = "" Then
SerialPort_i2c.Close()
MsgBox("Please check if you select the COM-Port" & vbCrLf & " Please check the input of the command")
Else 'sonst Schreibe / sende Ínhalt der Textbox an Arduino'
SerialPort_i2c.Write(txtbox_i2c.Text) ' durch vbr = Enter, d.h. wenn ein ganzer String wird ein enter gesendet und arduino weiß ok gsnzer String
SerialPort_i2c.Write(13)
MsgBox("Transfer successful")
End If
'Falls Übertragung fehlschlägt, Catch block um fehler auszubügeln und eigene message von vb'
Catch ex As Exception
MsgBox("Transfer failed - Please check the connection" & vbCrLf & ex.Message)
End Try
'Nach Übertragung Port wieder freistellen'
If SerialPort_i2c.IsOpen = True Then
SerialPort_i2c.Close()
End If
End Sub
Brauche eure hilfe
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „milito“ ()