Hallo zusammen,
ich beschäftige mich seit einem Jahr mit dem Arduino Duemilanove durch ein Zusatzfach in der Schule. Jetzt habe ich angefangen mich auch in meiner Freizeit damit auseinanderzusetzen. Bei meinem ersten Projekt habe ich mir vorgenommen mit einem C++-Programm und der seriellen Schnittstelle Daten zwischen dem PC und dem Arduino auszutauschen.
Nach sehr langer Internetrecherche habe ich dann folgende Bibliothek auf der Arduino-Website gefunden: Arduino Playground - CPPWindows
Allerdings funktioniert die Kommunikation noch nicht ganz.
Folgender Code wird auf dem Arduino ausgeführt:
char massage;
int counter = 0;
void setup() {
// put your setup code here, to run once:
pinMode(13, OUTPUT);
Serial.begin(9600); //serielle Transferrate wird auf 9600 gesetzt
}
void loop() {
// put your main code here, to run repeatedly:
if(counter != 0){
digitalWrite (13, HIGH);
delay (1000);
digitalWrite (13, LOW);
counter = 0;
}
}
void serialEvent() {
massage = Serial.read();
counter = massage - 48;
}
Der Code bewirkt eigentlich nur, dass Pin13 (LED) für 1 Sekunde leuchtet, wenn eine Zahl zwischen 1 und 9 gesendet wird. Über den seriellen Monitor aus der Arduino IDE funktioniert alles ganz normal: Ich schicke eine z.B. eine 5 und die LED leuchtet für eine Sekunde.
Mein C++-Code sieht folgendermaßen aus:
#include "stdafx.h"
#include "SerialClass.h"
#include <iostream>
int main() {
Serial mySerial("COM3");
mySerial.WriteData("5", 1);
mySerial.~Serial();
System("PAUSE");
return 0;
}
Dieser einfache Code schickt eine "5" an COM-Port 3... (Übrigens verwende ich als Entwicklungsumgebung Visual Studio 2015). Allerdings funktioniert es nicht richtig... der Arduino blinkt zwar auf wenn ich die Konsolenanwendung ausführe, aber nur ganz kurz und nicht 1 Sekunde, wie ich es eigentlich programmiert habe.
Ich hoffe jemand hat eine Lösung für das Problem!
Gruß
yeLJ