const int trigPin = 9; const int echoPin = 10; const int dispPin6 = 6; const int dispPin5 = 5; const int furzPin4 = 4; const int furzPin3 = 3; uint8_t furzfrei = 0; uint8_t dispfrei = 0; bool furzStatus = 0; bool dispStatus = 0; float duration, distance; void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(dispPin6, OUTPUT); pinMode(dispPin5, OUTPUT); pinMode(furzPin4, OUTPUT); pinMode(furzPin3, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration*.0343)/2; if (distance <= 100) { digitalWrite(furzPin4, HIGH); digitalWrite(furzPin3, HIGH); furzStatus = 1; } if (furzStatus && distance > 100) { if (furzfrei == 5) { furzfrei = 0; furzStatus = 0; digitalWrite(furzPin4, LOW); digitalWrite(furzPin3, LOW); } else furzfrei++; } if (distance <= 200) { digitalWrite(dispPin5, HIGH); digitalWrite(dispPin6, HIGH); dispStatus = 1; } if (dispStatus && distance > 200) { if (dispfrei == 10) { dispfrei = 0; dispStatus = 0; digitalWrite(dispPin5, LOW); digitalWrite(dispPin6, LOW); } else dispfrei++; } if (distance < 550) { Serial.print("Entf [cm]: "); Serial.print(distance); Serial.print(" / Furz: "); Serial.print(furzStatus); Serial.print(" "); Serial.println(furzfrei); } delay(200); }