Moin zusammen,
ich messe mit Arduino diverse Spannungen und schalte je nach Spannung und Schalterzustand verschiedene Ausgänge. Das ganze funktioniert im ganzen schon super, nur klappt meine Hysterese noch nicht. Ich schalt z.B. einen Ausgang ab 4.8V und er soll bei 4.1V abfallen. Was aber leider nicht funktioniert. Er miest die Spannung scheinbar nichtmehr, weil er dann immer diese 4.8V weiter misst und im Monitor anzeigt. Also HIGH bei 4.8V aber kein LOW nach 4.1V
// setup läuft nur 1x bei Start
void setup() {
// Serial Ausgabe zur Analyse
Serial.begin(9600);
//Wenn 4.8V
pinMode(2,OUTPUT);
//Wenn 4.7V
pinMode(3,OUTPUT);
//Wenn 1.5V
pinMode(4,OUTPUT);
//Sonderfunktion noch nicht aktiv
pinMode(5,OUTPUT);
//Schalter vor 4.8V
pinMode(6,INPUT);
//Schalter vor 4.7V
pinMode(7,INPUT);
//Schalter vor 1.5V
pinMode(8,INPUT);
}
// loop läuft in dauerschleife
void loop() {
// analog eingang a0/a1 auslesen
int sensorValue = analogRead(A0);
int sensorValue1 = analogRead(A1);
// analog eingang von 1023 auf 5.0MAX runterbrechen
float voltage = sensorValue * (5.0 / 1023.0);
float voltage1 = sensorValue1 * (5.0 / 1023.0);
//Wenn Spannung an A1 größer gleich 1.5V dann
if(voltage1 >= 1.5)
{
//Auslesen Schalterstatus für 1.5V
int ZustandIn8;
ZustandIn8 = digitalRead(8);
//Wenn Schalterstatus == 1
if(ZustandIn8 == 1)
{
//20Sek Verzögerung
delay(20000);
//Solange die Spannung größer als 1.0V ist
while(voltage1 >= 1.0)
{
//Ausgang 4 schalten
digitalWrite(4, HIGH);
}
}
}
//Wenn Spannung an A0 größer gleich 4.7V dann
if(voltage == 4.7)
{
int ZustandIn7;
ZustandIn7 = digitalRead(7);
if(ZustandIn7 == 1)
{
delay(20000);
while(voltage >= 4.1)
{
digitalWrite(3, HIGH);
}
}
}
//Wenn Spannung an A0 größer gleich 4.8V dann
if(voltage == 4.8)
{
int ZustandIn6;
ZustandIn6 = digitalRead(6);
if(ZustandIn6 == 1)
{
delay(20000);
while(voltage >= 4.3)
{
digitalWrite(2, HIGH);
}
}
}
}
While ist leider nicht meine Stärke
Danke für eure Hilfe