//Kommunikation Arduino Labview
//Autor: Lackner Michael
//Datum: 20.05.2025
//Konstanten
#define LED 13
//Globale Variablen
String eingelesenerText = "";//Leeres Textfeld
void setup() {
//Serielle Schnittstelle konfigurieren
Serial.begin(115200);
Serial.println("Serial Read Programm");
pinMode(LED, OUTPUT);
}
void loop() {
//Wird ausgeführt wenn ein Zeichen an der Schnittstelle anliegt
if (Serial.available()){
char empfangenesZeichen = Serial.read();
//Ausgabe des Zeichens als Tests
//Serial.println(empfangenesZeichen);
//Wenn als Zeichen \n (Enter Taste) empfangen wird, ist der Befehl fertig
if(empfangenesZeichen == '\n'){
//code der für den Befehl ausgeführt werden soll
Serial.print("Empfangen:");
Serial.println(eingelesenerText);
//Abarbeitung der Befehle
//m.....millis() auslesen
//a.....Analogen Wert A0 lesen
//l1/l0.....led ein/ausschalten
//Gibt das erste Zeichen des Strings eingelesener Text aus und speichert es in befehl
char befehl = eingelesenerText.charAt(0);
//Der Rest des Textes wird im String Value gespeichert
String valueString = eingelesenerText.substring(1);
//Wandelt den Text von valueString in eine Ganzzahl um
int value = valueString.toInt();
if(befehl == 'm'){
}
else if(befehl == 'a'){
digitalRead(A0);
}
else if(befehl == 'l'){
digitalWrite(LED,value);
}
else{
Serial.println("Error, kein gültiger Befehl");
}
//String (Text) für neue Befehle löschen
eingelesenerText ="";
}else{//Befehl ist nicht fertig -> Anhängen
//Zeichen an den Text anhängen. Dies passiert mit dem + Operator da Text ein String ist
eingelesenerText = eingelesenerText + empfangenesZeichen;
}
}
}