Pages: [1]   Go Down
Author Topic: Arduino - Autoit - Serial-Problem  (Read 594 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 40
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Leute!

Ich möchte eine Serielle Schnittstelle zwischen Autoit und Arduino herstellen.

Autoit schickt ne Anrfage, Arduino nimmt die entgegen un schickt das Ergebnis (den Wert, was auch immer) zurück an Autoit.

Funktioniert soweit, aber nicht alle Rückgabewerte kommen im Autoit an. Irgendwo isn Schnitzer drin, in der Arduino-Serial funktionierts prima. Im Autoit muss ich teils 3 mal die Anfrage senden, bis sich der Wert aktualisiert.

Wer möchte kann ja mal einen Blick auf die Codeschnipsel werfen, komm grad nicht weiter :-)

Arduino:
Code:
  if (Serial.available() > 0) { // se il buffer seriale contiene dei dati
      ricevuto = Serial.read();     // leggo il dato ricevuto
      switch (ricevuto){ // interpreto il dato ricevuto e mi comporto di conseguenza
         case '0':
            digitalWrite(led1,LOW); // se ricevo 0 spengo il led1
            Serial.print("1OFF");
            break;
         case '1':
            digitalWrite(led1,HIGH); // se ricevo 1 accendo il led1
            Serial.print("Hello World");
            break;
 

AutoIt:
Code:
Global $Com_Port = 3
Global $BitPerSecond = 9600
Global $BitDati = 8
Global $Parity = 0
Global $BitStop = 1
Global $FlowControl = 2
Global $sErr = 'Errore apertura porta seriale'
_CommSetPort($Com_Port, $sErr , $BitPerSecond, $BitDati, $Parity, $BitStop, $FlowControl)
Global $Button3_premuto
Global $Text = ''

Code:
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
     Case $GUI_EVENT_CLOSE
        Exit
     Case $Button1
       _CommSendString("1") ;accendo il led1
  $Text = _CommGetString()
  MsgBox("","", $Text)
     Case $Button2
       _CommSendString("0") ;spengo il led1
  $Text = _CommGetString()
  MsgBox("","", $Text)

Bitte nicht über die Kommentare wundern, das war ein Beispiel aus dem Netz, das ich gefunden habe....

Danke

Gruß
Chris


[Edit]
Okay, ich habs glaub ich schon.
Ich habe ein Sleep(500) eingebaut, und zwar hier
Code:
_CommSendString("0") ;spengo il led1
    sleep(500)
$Text = _CommGetString()

Ich dachte, das hätte die Funktion _CommGetString schon irgendwie selbst mit drin smiley
« Last Edit: January 31, 2013, 09:16:14 pm by sorath » Logged

Pages: [1]   Go Up
Jump to: