Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller mit nem externen C++ Programm steuern


von Kacy (Gast)


Lesenswert?

Hallo erst mal,
Ich versuche meinen Arduino (ATMega328) mit nem externen Programm (C++) 
zu steuern.
Den Mikrocontroller gebe ich Befehle mit C und benutze dafür das AVR 
Studio. Nun möchte ich aber ein Fenster erstellen mit nem Button, 
welches das geschriebene Programm in C startet und stoppt. Um das 
externe Programm zu schreiben verwende ich Visual Studio 2010.

Leider kenne ich mich nicht so gut aus.
Könnte mir vielleicht einer weiter helfen, wie ich das anstellen kann, 
damit die beiden Programme zusammenarbeiten?
Bin echt ratlos.

Danke schonmal für eure hilfe.
Gruß
Kacy

von Karl H. (kbuchegg)


Lesenswert?

Deine Vorstellungen, wie das geht sind völlig verquert.


Auf der einen Seite läuft dein C-Programm auf dem AVR.
Und das läuft immer wenn der Arduino Strom kriegt


Auf der anderen Seite läuft auf deinem PC ein Programm.


Und diese beiden Programme müssen miteinander reden!
zb über die Serielle Schnittstelle (RS232)

D.h. dein Arduino horcht auf der Seriellen Schnittstelle (also das 
Programm im Arduino horcht ...) ob und wenn ja was da so reinkommt. Wenn 
es etwas empfängt, dann interpretiert es das als Kommandos und macht 
etwas.

Wer jetzt auf der anderen Seite der Seriellen Schnittstelle ist, ist dem 
Programm ziemlich egal.
Das kannst du selber sein, der zb mit einem Terminalprogramm die 
entsprechenden Kommandos absetzt.
Das kann aber auch natürlich ein PC-Programm sein, welches genau 
dasselbe tut.
Denn: Der Arduino kann ja nicht unterscheiden, wer ihm da etwas schickt. 
Der sieht nur die Kommandos, die aus der UART purzeln.

von Kacy (Gast)


Lesenswert?

Wie bekomme ich das den nun hin?

von U.R. Schmitt (Gast)


Lesenswert?

Kacy schrieb:
> Wie bekomme ich das den nun hin?

Schritt für Schritt. Schließlich hast Du deine erste Fahrstunde auch 
nicht in einem 700PS Auto auf der Nordschleife des Nürburgrings 
absolviert.
Und beim ersten Mal auf den Skiern bist du auch nicht die Streif oder 
das Lauberhorn runtergefahren.
Also fang damit an, daß du auf dem Arduino die serielle Schnittstelle 
auslesen kannst und auf dem PC ein Programm schreibst mit dem man Worte 
in die serielle Schnittstelle schreiben kann.
Danach kommt der nächste Schritt, dann meldest du dich wieder.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Wie du serielle Daten vom Ardunio-Board aus sendest, ist in vielen 
Arduino Rutorials erklärt z.B. in

http://www.uchobby.com/index.php/2009/03/08/visualizing-sensor-with-arduino-and-processing/#more-288

Wie du ein PC Programm mit Visual Studio schreibst, das serielle Daten 
einliest ist ebenfalls in vielen Tutorials erklärt z.B. in

http://www.instructables.com/id/Automate-your-science-experiments/ 
(anderer µC, gleiches Prinzip)

Dein Job ist jetzt "nur" beides miteinander zu verbinden z.B. wie in

http://www.codeproject.com/KB/system/ArduinoVB.aspx
http://www.codeproject.com/KB/system/ArduinoWeather.aspx

von Kacy (Gast)


Lesenswert?

Leider hat der Arduino keine serielle Schnittstelle sondern nur eine 
USB-Schnittstelle.

Was meinst du mit Wörten in die serielle Schnittstelle?

Bis jetzt kann ich nur den Arduino mit einer Windows-Batchdatei die 
Sachen drauf laden.

von Thomas E. (thomase)


Lesenswert?

Kacy schrieb:
> Leider hat der Arduino keine serielle Schnittstelle sondern nur eine
>
> USB-Schnittstelle.

Das ist eine virtuelle RS232.

mfg.

von Karl H. (kbuchegg)


Lesenswert?

Kacy schrieb:
> Leider hat der Arduino keine serielle Schnittstelle sondern nur eine
> USB-Schnittstelle.
>
> Was meinst du mit Wörten in die serielle Schnittstelle?
>
> Bis jetzt kann ich nur den Arduino mit einer Windows-Batchdatei die
> Sachen drauf laden.

Such dir Tutorien, wie man mit der Arduino Bibliothek mit der seriellen 
Schnittstelle arbeitet.
Dein erster Schritt ist sinnvollerweise genau in die umgekehrte 
Richtung. Dein Arduino gibt Text aus und du benutzt am PC ein 
Terminalprogramm um diesen Text anzuzeigen.

Wenn das funktioniert, gehst du die umgekehrte Richtung an: Text, der im 
Terminalprogramm getippt wird über die serielle Schnittstelle am Arduino 
zu empfangen.

Mit Google finden sich da haufenweise Informationen

zb
http://www.arduino-tutorial.de/2010/06/serielle-kommunikation/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.