Wie kann ich Daten von einem PC zu einem Arduino empfangen?

9

Ich habe eine Anwendung entwickelt, die Daten für einen Arduino über den seriellen Port sendet, aber ich kann nicht verstehen, wie ich sie auf dem Arduino erhalten kann. Ich sende eine Zeichenfolge an der seriellen Schnittstelle für das Arduino und das Arduino empfängt es, aber es funktioniert nicht in meinem Code (auf dem Arduino, ich empfange jeweils ein Byte).

Update: es funktioniert;)

Der Code in C #, der Daten sendet:

%Vor%

Der Arduino-Code:

Ich habe den Code aktualisiert

%Vor%     
FredVaz 27.11.2011, 01:58
quelle

2 Antworten

3

Einige Dinge, die meine Augenbrauen heben:

%Vor%

Dies schreibt genau ein Byte, die 1 , aber keine neue Zeile und kein abschließendes NUL-Byte. Aber hier warten Sie auf ein zusätzliches NUL-Byte:

%Vor%

Sie sollten WriteLine anstelle von Write verwenden und auf \n anstelle von += warten.

Dies hat zwei Nebenwirkungen:

Erstens: Wenn eine Pufferung konfiguriert ist, besteht eine gewisse Chance, dass eine neue Zeile die gepufferten Daten an das Arduino überträgt. Um sicher zu gehen, müssen Sie die Dokumente bei MSDN durchsuchen.

Zweitens: Dies macht Ihr Protokoll nur ASCII-fähig. Dies ist wichtig für das Debuggen. Sie können dann ein einfaches Terminalprogramm wie Hyperterm oder HTerm ( bearbeiten ) oder sogar den seriellen Monitor in der Arduino IDE selbst ( bearbeiten ) verwenden Debuggen Sie Ihren Arduino-Code, ohne sich Gedanken über Fehler in Ihrem C # -Code machen zu müssen. Und wenn der Arduino-Code funktioniert, können Sie sich auf den C # -Teil konzentrieren. Divide et impera.

Bearbeiten: Eine andere Sache, die mir aufgefallen ist, nachdem ich meinen eigenen Arduino ausgegraben habe:

%Vor%

Dies wird natürlich nicht wie erwartet funktionieren, da die Zeichenfolge an dieser Stelle "1 \ n" enthält. Entweder vergleichen Sie mit "1 \ n" oder verschieben die if -Zeile nach der %code% .

    
A.H. 27.11.2011, 12:03
quelle
1

Sie können auch versuchen, die Firmatabibliothek zu verwenden - es ist eine viel bessere Art, Standard-Firmware auf dem Arduino zu haben Verwaltung von .net

Ich glaube, Firmata 2.0+ bietet Unterstützung für I2C und Servosteuerung.

Ссылка

    
Asti 07.07.2012 09:10
quelle

Tags und Links