//Kommunikation Arduino LabView
//Autor: LM
//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() {
// put your main code here, to run repeatedly:
//Wird ausgeführt wenn ein Zeichen an der Schnittstelle anliegt
if (Serial.available()) {
char empfangenesZeichen = Serial.read();
//Ausgabe des Zeichens als Test
//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'){
Serial.println(millis());
}
else if (befehl == 's'){
//// Serial.println(sinus = sin()*PI*millis()/1000*t)
}
else if (befehl == 'a'){
}
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;
}
}
}