So....
Nach reichlich experimentieren, einem geballten Haufen Frustration und einem Quäntchen Glücksgefühl, bedingt durch ein kleines Erfolgserlebnis bin ich einen Schritt weiter und stehe vor einem neuen Problem.
Zunächst aber ein paar Dinge zu meinem vorigen Post. Wenn man sich das VI angesehen hat, dann stellt man fest, dass ich die "serielle" Schnittstelle als Parallelport nutzen wollte
Ist mir selbst erst im Laufe des Tages klar geworden und war natürlich nicht beabsichtigt. Dies habe ich nun korrigiert. Nun arbeite ich die Lese- und Schreibzyklen tatsächlich sequenziell ab.
Der Arduino reagiert die ersten paar Sekunden brav auf meine Eingaben, bis dann RX und TX LED´s aus unerklärlichem Grund dauerhaft aufleuchten. Wenn das passiert, akzeptiert der Controller scheinbar keine Eingaben mehr und gibt auch nichts mehr zurück - er hat sich also aufgehangen.
Ich frage mich natürlich warum.
Meinen Arduino code habe ich geringfügig angepasst. Die Änderungen betreffen nur die Erfassung der seriellen Werte und den Aufruf des entsprechenden Programmteils:
Code:
do
{
shunt1_value=analogRead(shunt_1)+1000; //Werte werden mit 1000 addiert um definiert immer 9Bytes an Daten zu senden
delay(10);
shunt2_value=analogRead(shunt_2)+1000;
delay(10);
Serial.print(shunt1_value,DEC);
Serial.print("/");
Serial.print(shunt2_value,DEC);
// counter++;
delay(10);
mode=Serial.read();
if ((mode=='1') && (state_reg!=1)){
Serial.println("PFC Operating initiiert");
Serial.println("Schaltglieder werden gesetzt. Bitte warten!");
digitalWrite(dc_load,LOW);
digitalWrite(dc_source,LOW);
digitalWrite(pfc,HIGH);
delay(500);
digitalWrite(lessy,HIGH);
delay(500);
Serial.println("Schaltglieder erfolgreich gesetzt");
state_reg=1;
}
if ((mode=='2') && (state_reg!=2)){
Serial.println("DCDC LADE-Modus initiiert");
Serial.println("Schaltglieder werden gesetzt. Bitte warten!");
digitalWrite(pfc,LOW);
digitalWrite(dc_source,LOW);
digitalWrite(lessy,HIGH);
delay(500);
digitalWrite(dc_load,HIGH);
delay(500);
Serial.println("Schaltglieder erfolgreich gesetzt");
Serial.println();
state_reg=2;
}
if ((Serial.read()=='3') && (state_reg!=3)){
Serial.println("DCDC ENTLADE-Modus initiiert");
Serial.println("Schaltglieder werden gesetzt. Bitte warten!");
digitalWrite(pfc,LOW);
digitalWrite(dc_load,LOW);
digitalWrite(dc_source,HIGH);
delay(500);
digitalWrite(lessy,HIGH);
delay(500);
Serial.println("Schaltglieder erfolgreich gesetzt");
Serial.println();
state_reg=3;
}
if ((Serial.read()=='4') && (state_reg!=4)){
Serial.println("IDLE Mode initiiert");
Serial.println("Schaltglieder werden gesetzt. Bitte warten!");
digitalWrite(pfc,LOW);
digitalWrite(lessy,LOW);
digitalWrite(dc_load,LOW);
digitalWrite(dc_source,LOW);
delay(500);
Serial.println("Schaltglieder erfolgreich gesetzt");
Serial.println();
state_reg=4;
}
}
while(state_reg!=0);
Hat jemand eine Idee was da schief läuft, bzw. wo ich nach einem Fehler suchen sollte?