Zaehlen von millis() stoppen nach erreichen eines Wertes

Also ich hab mal drĂ¼ber geschaut und mir was zusammengerieben.

So und nu sag mal, was hier passiert - oder auch nicht.
compiliert fehlerfrei und ohne Warnungen :wink:

// basiert auf: https://forum.arduino.cc/t/zaehlen-von-millis-stoppen-nach-erreichen-eines-wertes/907481/19?u=my_xy_projekt
#include <Servo.h>

const byte  BUTTON_Tester = 2;
const byte  LED_1 = 3;
const byte  LED_2 = 4;
const byte  LED_3 = 5;
const byte  LED_4 = 6;
bool buttonState = 0;
const byte  KANAL_1 = A0;
const byte  KANAL_2 = A1;
const byte  KANAL_3 = A2;
const byte  KANAL_4 = A3;
bool kanalState_1 = 0;
bool kanalState_2 = 0;
bool kanalState_3 = 0;
bool kanalState_4 = 0;
Servo MyServo;
unsigned int winkel = 0;
const byte  SCHALTER = 8;
int schalterState = 0;
unsigned long currentMillis = 0;
unsigned long previousMillis = 0;
unsigned long pause = 6000;
unsigned long stateMillis = 0;
unsigned int pausen_wert = 6000;
int x = 0;
int y = 0;
bool merker=false;

void setup()
{
  Serial.begin(115200);
  pinMode(BUTTON_Tester, INPUT_PULLUP);
  pinMode(LED_1, OUTPUT);
  pinMode(LED_2, OUTPUT);
  pinMode(LED_3, OUTPUT);
  pinMode(LED_4, OUTPUT);
  pinMode(KANAL_1, INPUT_PULLUP);
  pinMode(KANAL_2, INPUT_PULLUP);
  pinMode(KANAL_3, INPUT_PULLUP);
  pinMode(KANAL_4, INPUT_PULLUP);
  pinMode(SCHALTER, OUTPUT);
  MyServo.attach(7);
}

int schalten (int soll, int ist, int Pause)
{
  MyServo.attach(7);
  if (soll > ist)
  {
    for (; ist <= soll; ist++)
    {
      MyServo.write(ist);
      delay(Pause);
    }
  }
  if (soll < ist)
  {
    for (; ist >= soll; ist--)
    {
      MyServo.write(ist);
      delay(Pause);
    }
  }
  MyServo.detach();
  return soll;
}


void loop()
{
  buttonState = digitalRead(BUTTON_Tester);
  kanalState_1 = digitalRead(KANAL_1);
  kanalState_2 = digitalRead(KANAL_2);
  kanalState_3 = digitalRead(KANAL_3);
  kanalState_4 = digitalRead(KANAL_4);
  // Kanal 1 ist Gruen
  if (kanalState_1 == HIGH)
  {
    digitalWrite(LED_1, HIGH);
    digitalWrite(SCHALTER, HIGH);
    winkel = schalten(170, winkel, 70);
  }
  // Kanal 2 ist Grau
  if (kanalState_2 == HIGH)
  {
    digitalWrite(LED_2, HIGH);
    winkel = schalten(170, winkel, 70);
    stateMillis = currentMillis;
    Serial.print("stateMillis:");
    Serial.println(stateMillis);
    // pause steht auf 6000
    merker = true;
  }
  if (!kanalState_1 && !kanalState_2)
  {
    digitalWrite(LED_2, LOW);
    Serial.println("else Zweig");
    winkel = schalten(0, winkel, 70);
  }
  if (millis() - stateMillis > pause && merker)
  {
    Serial.println("If Bedingung erfuellt.");
    winkel = schalten(0, winkel, 70);
    merker=false;
    x = 1;
  }
  if (kanalState_3 == HIGH)
  {
    digitalWrite(LED_3, HIGH);
  }
  else
  {
    digitalWrite(LED_3, LOW);
  }
  if (kanalState_4 == HIGH)
  {
    digitalWrite(LED_4, HIGH);
  }
  else
  {
    digitalWrite(LED_4, LOW);
  }
  if (buttonState == LOW)
  {
    digitalWrite(LED_1, HIGH);
    digitalWrite(LED_2, HIGH);
    digitalWrite(LED_3, HIGH);
    digitalWrite(LED_4, HIGH);
  }
  else
  {
    digitalWrite(LED_1, LOW);
    digitalWrite(LED_2, LOW);
    digitalWrite(LED_3, LOW);
    digitalWrite(LED_4, LOW);
  }
}

[edit] da war ein doppeltes codepaste drin[/edit]