const int ROB_Sensor_aufsetzen = 3;
const int ROB_Sensor_inPOS = 4;
const int SPS_Flasche_inPOS = 5;
const int SPS_Voll = 6;
const int SPS_Fertig = 7;
const int Druck_Sensor = A0;
float adcWert = 0;
float min_mBar = 0;
float max_mBar = 200;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(SPS_Flasche_inPOS, INPUT_PULLUP);
pinMode(ROB_Sensor_inPOS, INPUT_PULLUP);
//pinMode(Druck_Sensor, INPUT_PULLUP); //Für analoge Eingaenge kein pinMode erforderlich!
pinMode(SPS_Voll, OUTPUT);
pinMode(SPS_Fertig, OUTPUT);
pinMode(ROB_Sensor_aufsetzen, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
while (digitalRead(SPS_Flasche_inPOS) == LOW) // while HIGH...
{
digitalWrite(ROB_Sensor_aufsetzen, HIGH);
while (digitalRead(ROB_Sensor_inPOS) == HIGH); // whaits till High
adcWert = analogRead(Druck_Sensor);
float mBar = max_mBar / 1023 * adcWert;
Serial.print("Flaschenbetriebsdruck: ");
Serial.print((int)mBar);
Serial.println("mBar");
digitalWrite(ROB_Sensor_aufsetzen, LOW); // pin 3
Serial.println("Die Verbindung zur Flasche bitte loesen! |Pin 4 --> LOW|");
while (digitalRead(ROB_Sensor_inPOS) == LOW); // whaits till Low
Serial.println("Ist der Flaschenbetriebsdruck VOLL oder LEER? ");
while(!Serial.available());
if (Serial.available())
{
String text = Serial.readStringUntil('\n');
while ((text != "VOLL") && (text != "LEER")) // KI (&& statt ||) - Die erste Eingabe wurde immer ignoriert, egal ob sie richtig oder falsch war.
{
text = Serial.readStringUntil('\n');
if ((text == "VOLL") || (text == "LEER"))
{
break;
}
}
if (text == "VOLL")
{
digitalWrite(SPS_Voll, HIGH);
}
else if (text == "LEER")
{
digitalWrite(SPS_Voll, LOW);
}
digitalWrite(SPS_Fertig, HIGH);
Serial.println("Ende der Messung.");
}
while (digitalRead(SPS_Flasche_inPOS) == LOW); // whaits till Low
delay(200);
digitalWrite(SPS_Voll, LOW);
digitalWrite(SPS_Fertig, LOW);
}
}