Problem with my L298n Motor Driver

Im using a L298n Motor Driver to run two 12V DC Motors. It always worked perfectly fine. My motor shield gets powered by a 12V Power supply. I measured it and the 12V get there fine. Im running my DC engines with a 100% duty cycle of 255. I never had any problems running my engines. They always runned on 12V when i gave them the signal to run. Now since yesterday they just dont get more than 6 or 8 Volts max to run. My shield still gets the 12V input i measured that again. When i give my engines the signal to run the Arduino just send 1.5V on the pin to the motor shield. Honestly i havent measured that before the problem and idk if thats normal.

Maybe someone of you has an idea what could be wrong. I changed nothing on my code, nothing on my wiring it just stopped working how it should.

Hi,
Can you please post your code?
Can you please post some images of your project?

Please post a link to specs/data of the motors?

Thanks.. Tom.. :grinning: :+1: :coffee: :australia:

1.5V seems too low...
Can you take the L298 input pin high (5V) with a wire?
Maybe first remove the wire from arduino....

How have you ensured 100% duty cycle -- feeding PWM signal or fixed logic voltage at the appropriate control pin of the Motor Driver? Please, post your sketch. Perhaps you know that with input supply of 12V, there is about 4/5V drop across the power transisitors of the driver; as a result, the Motor gets about 7/8V at 100% duty cycle.
image
L298Schematic-2

#include <Button.h>
#include <Encoder.h>
#include <Tic.h>

int KartenDelay = 0;
TicI2C tic;

int in1 = 8;
int in2 = 9;
int enb = 10;

int ena = 13;
int in3 = 12;
int in4 = 11;

int pos = 0;

Button button1(A15);
int State = 0;

Encoder myEnc(A0, A1);
Encoder myEnc2(A2, A3);

void setup() {
  Wire.begin();
  delay(20);
  tic.haltAndSetPosition(0);
  tic.exitSafeStart();

  pinMode(enb, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(ena, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);

  button1.begin();

  while (!Serial) {};  // for Leos
  Serial.begin(9600);
}

void resetCommandTimeout() {
  tic.resetCommandTimeout();
}

void delayWhileResettingCommandTimeout(uint32_t ms) {
  uint32_t start = millis();
  do {
    resetCommandTimeout();
  } while ((uint32_t)(millis() - start) <= ms);
}

void waitForPosition(int32_t targetPosition) {
  do {
    resetCommandTimeout();
  } while (tic.getCurrentPosition() != targetPosition);
}

long oldPosition = -999;
long oldPosition2 = -999;

long newPosition2 = myEnc2.read();

void loop() {
  long newPosition = myEnc.read();
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    Serial.println(newPosition);
  }

  long newPosition2 = myEnc2.read();
  if (newPosition2 != oldPosition2) {
    oldPosition2 = newPosition2;
    Serial.println(newPosition2);
  }

  if (newPosition == 0) {
    digitalWrite(53, LOW);  // 9
    digitalWrite(52, LOW);  // 10
    digitalWrite(51, LOW);  // 7
    digitalWrite(50, LOW);  // 6
    digitalWrite(49, LOW);  // 2
    digitalWrite(48, LOW);  // 1
    digitalWrite(47, LOW);  // 3
    digitalWrite(46, LOW);  // 4
  }

  if (newPosition2 == 0) {
    digitalWrite(45, LOW);  // 9
    digitalWrite(44, LOW);  // 10
    digitalWrite(43, LOW);  // 7
    digitalWrite(42, LOW);  // 6
    digitalWrite(41, LOW);  // 2
    digitalWrite(40, LOW);  // 1
    digitalWrite(39, LOW);  // 3
    digitalWrite(38, LOW);  // 4
  }

  if (newPosition >= 33) {
    digitalWrite(53, LOW);  // 9
    digitalWrite(52, LOW);  // 10
    digitalWrite(51, LOW);  // 7
    digitalWrite(50, LOW);  // 6
    digitalWrite(49, LOW);  // 2
    digitalWrite(48, LOW);  // 1
    digitalWrite(47, LOW);  // 3
    digitalWrite(46, LOW);  // 4
  }

  if (newPosition >= 33) {
    digitalWrite(45, LOW);
    digitalWrite(44, LOW);
    digitalWrite(43, LOW);
    digitalWrite(42, LOW);
    digitalWrite(41, LOW);
    digitalWrite(40, LOW);
    digitalWrite(39, LOW);
    digitalWrite(38, LOW);
  }

  if (newPosition2 == 0) {
    KartenDelay = 0;
  }

  if (newPosition2 > 36) {
    digitalWrite(45, LOW);  // 9
    digitalWrite(44, LOW);  // 10
    digitalWrite(43, LOW);  // 7
    digitalWrite(42, LOW);  // 6
    digitalWrite(41, LOW);  // 2
    digitalWrite(40, LOW);  // 1
    digitalWrite(39, LOW);  // 3
    digitalWrite(38, LOW);  // 4
  }


  // Kartenzahl 1

  if (newPosition2 == 4) {
    digitalWrite(45, LOW);
    digitalWrite(44, LOW);
    digitalWrite(43, LOW);
    digitalWrite(42, HIGH);
    digitalWrite(41, LOW);
    digitalWrite(40, LOW);
    digitalWrite(39, HIGH);
    digitalWrite(38, LOW);
    }

  // Kartenzahl 2

  if (newPosition2 == 8) {
    digitalWrite(45, HIGH);  // 10
    digitalWrite(44, LOW);   // 9
    digitalWrite(43, HIGH);  // 7
    digitalWrite(42, HIGH);  // 6
    digitalWrite(41, HIGH);  // 1
    digitalWrite(40, HIGH);  // 4
    digitalWrite(39, LOW);   // 2
    digitalWrite(38, LOW);   // 5

    KartenDelay = 190;
  }

  // Kartenzahl 3

  if (newPosition2 == 12) {
    digitalWrite(45, HIGH);
    digitalWrite(44, LOW);
    digitalWrite(43, HIGH);
    digitalWrite(42, HIGH);
    digitalWrite(41, LOW);
    digitalWrite(40, HIGH);
    digitalWrite(39, HIGH);
    digitalWrite(38, LOW);

    KartenDelay = 300;
  }

  // Kartenzahl 4

  if (newPosition2 == 16) {
    digitalWrite(45, HIGH);
    digitalWrite(44, HIGH);
    digitalWrite(43, LOW);
    digitalWrite(42, HIGH);
    digitalWrite(41, LOW);
    digitalWrite(40, LOW);
    digitalWrite(39, HIGH);
    digitalWrite(38, LOW);

    KartenDelay = 370;
  }

  // Kartenzahl 5

  if (newPosition2 == 20) {
    digitalWrite(45, HIGH);  // 10
    digitalWrite(44, HIGH);  // 9
    digitalWrite(43, HIGH);  // 7
    digitalWrite(42, LOW);   // 6
    digitalWrite(41, LOW);   // 1
    digitalWrite(40, HIGH);  // 2
    digitalWrite(39, HIGH);  // 4
    digitalWrite(38, LOW);   // 5

    KartenDelay = 500;
  }

  // Kartenzahl 6

  if (newPosition2 == 24) {
    digitalWrite(45, HIGH);  // 10
    digitalWrite(44, HIGH);  // 9
    digitalWrite(43, HIGH);  // 7
    digitalWrite(42, LOW);   // 6
    digitalWrite(41, HIGH);  // 1
    digitalWrite(40, HIGH);  // 2
    digitalWrite(39, HIGH);  // 4
    digitalWrite(38, LOW);   // 5

    KartenDelay = 600;
  }

  // Kartenzahl 7

  if (newPosition2 == 28) {
    digitalWrite(45, LOW);   // 10
    digitalWrite(44, LOW);   // 9
    digitalWrite(43, HIGH);  // 7
    digitalWrite(42, HIGH);  // 6
    digitalWrite(41, LOW);   // 1
    digitalWrite(40, LOW);   // 2
    digitalWrite(39, HIGH);  // 4
    digitalWrite(38, LOW);   // 5

    KartenDelay = 700;
  }

  // Kartenzahl 8

  if (newPosition2 == 32) {
    digitalWrite(45, HIGH);
    digitalWrite(44, HIGH);
    digitalWrite(43, HIGH);
    digitalWrite(42, HIGH);
    digitalWrite(41, HIGH);
    digitalWrite(40, HIGH);
    digitalWrite(39, HIGH);
    digitalWrite(38, LOW);

    KartenDelay = 800;
  }

  // Kartenzahl 9

  if (newPosition2 == 36) {
    digitalWrite(45, HIGH);
    digitalWrite(44, HIGH);
    digitalWrite(43, HIGH);
    digitalWrite(42, HIGH);
    digitalWrite(41, LOW);
    digitalWrite(40, HIGH);
    digitalWrite(39, HIGH);
    digitalWrite(38, LOW);

    KartenDelay = 900;
  }


  //

  // Spielerzahl 2

  if (newPosition == 4) {
    digitalWrite(53, LOW);   // 9
    digitalWrite(52, HIGH);  // 10
    digitalWrite(51, HIGH);  // 7
    digitalWrite(50, HIGH);  // 6
    digitalWrite(49, HIGH);  // 2
    digitalWrite(48, HIGH);  // 1
    digitalWrite(47, LOW);   // 3
    digitalWrite(46, LOW);   // 4

    if (button1.pressed()) {
      State = 1;
      Serial.print(State);
    }
    while (State == 1) {
      
      Kartenzahl1();

      delay(2000);

      if (digitalRead(in4) == LOW) {
        tic.setTargetPosition(291);
        waitForPosition(291);

        delay(2000);
        if (tic.getCurrentPosition() == 291) {
          
          Kartenzahl1();

          tic.setTargetPosition(583);
          waitForPosition(583);
          delayWhileResettingCommandTimeout(3000);
          tic.haltAndSetPosition(0);
          State = 0;
          Serial.print(State);
        }
      }
    }
  }

  // Spielerzahl 3

  if (newPosition == 8) {
    digitalWrite(53, LOW);   // 9
    digitalWrite(52, HIGH);  // 10
    digitalWrite(51, HIGH);  // 7
    digitalWrite(50, HIGH);  // 6
    digitalWrite(49, HIGH);  // 2
    digitalWrite(48, LOW);   // 1
    digitalWrite(47, LOW);   // 5
    digitalWrite(46, HIGH);  // 4


    if (button1.pressed()) {
      State = 1;
      Serial.print(State);
    }

    while (State == 1) {

      analogWrite(enb, 250);
      digitalWrite(in2, HIGH);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(KartenDelay);

      analogWrite(enb, 0);
      digitalWrite(in2, LOW);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(300);

      analogWrite(enb, 250);
      digitalWrite(in2, LOW);
      digitalWrite(in1, HIGH);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 250);
      digitalWrite(in4, LOW);
      digitalWrite(in3, HIGH);
      Serial.print(digitalRead(in4));

      delay(200);

      analogWrite(enb, 0);
      digitalWrite(in2, LOW);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(194);
      waitForPosition(194);

      delay(2000);

      analogWrite(enb, 250);
      digitalWrite(in2, HIGH);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(KartenDelay);

      analogWrite(enb, 0);
      digitalWrite(in2, LOW);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(300);

      analogWrite(enb, 250);
      digitalWrite(in2, LOW);
      digitalWrite(in1, HIGH);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 250);
      digitalWrite(in4, LOW);
      digitalWrite(in3, HIGH);
      Serial.print(digitalRead(in4));

      delay(200);

      analogWrite(enb, 0);
      digitalWrite(in2, LOW);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(583);
      waitForPosition(583);

      delay(2000);

      analogWrite(enb, 250);
      digitalWrite(in2, HIGH);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(KartenDelay);

      analogWrite(enb, 0);
      digitalWrite(in2, LOW);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(300);

      analogWrite(enb, 250);
      digitalWrite(in2, LOW);
      digitalWrite(in1, HIGH);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 250);
      digitalWrite(in4, LOW);
      digitalWrite(in3, HIGH);
      Serial.print(digitalRead(in4));

      delay(200);

      analogWrite(enb, 0);
      digitalWrite(in2, LOW);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      delayWhileResettingCommandTimeout(3000);
      if (tic.getCurrentPosition() == 583) {
        tic.haltAndSetPosition(0);
        State = 0;
        Serial.print(State);
      }
    }
  }

  // Spielerzahl 4

  if (newPosition == 12) {
    digitalWrite(53, HIGH);  // 9
    digitalWrite(52, HIGH);  // 10
    digitalWrite(51, LOW);   // 7
    digitalWrite(50, HIGH);  // 6
    digitalWrite(49, LOW);   // 2
    digitalWrite(48, LOW);   // 1
    digitalWrite(47, LOW);   // 5
    digitalWrite(46, HIGH);  // 4

    if (button1.pressed()) {
      State = 1;
      Serial.print(State);
    }

    while (State == 1) {

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(145);
      waitForPosition(145);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(290);
      waitForPosition(290);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(435);
      waitForPosition(435);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(583);
      waitForPosition(583);
      if (tic.getCurrentPosition() == 583) {
        tic.haltAndSetPosition(0);
        State = 0;
        Serial.print(State);
      }
    }
  }

  // Spielerzahl 5

  if (newPosition == 16) {
    digitalWrite(53, HIGH);  // 9
    digitalWrite(52, HIGH);  // 10
    digitalWrite(51, HIGH);  // 7
    digitalWrite(50, LOW);   // 6
    digitalWrite(49, HIGH);  // 2
    digitalWrite(48, LOW);   // 1
    digitalWrite(47, LOW);   // 5
    digitalWrite(46, HIGH);  // 4

    if (button1.pressed()) {
      State = 1;
      Serial.print(State);
    }

    while (State == 1) {

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(116);
      waitForPosition(116);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(232);
      waitForPosition(232);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(348);
      waitForPosition(348);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(464);
      waitForPosition(464);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(583);
      waitForPosition(583);

      delay(1000);
      if (tic.getCurrentPosition() == 583) {
        tic.haltAndSetPosition(0);
        State = 0;
        Serial.print(State);
      }
    }
  }

  // Spielerzahl 6

  if (newPosition == 20) {
    digitalWrite(53, HIGH);  // 9
    digitalWrite(52, HIGH);  // 10
    digitalWrite(51, HIGH);  // 7
    digitalWrite(50, LOW);   // 6
    digitalWrite(49, HIGH);  // 2
    digitalWrite(48, HIGH);  // 1
    digitalWrite(47, LOW);   // 5
    digitalWrite(46, HIGH);  // 4

    if (button1.pressed()) {
      State = 1;
      Serial.print(State);
    }

    while (State == 1) {

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(97);
      waitForPosition(97);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(194);
      waitForPosition(194);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(291);
      waitForPosition(291);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(388);
      waitForPosition(388);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(485);
      waitForPosition(485);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(583);
      waitForPosition(583);
      delay(1000);
      if (tic.getCurrentPosition() == 583) {
        tic.haltAndSetPosition(0);
        State = 0;
        Serial.print(State);
      }
    }
  }

  // Spielerzahl 7

  if (newPosition == 24) {
    digitalWrite(53, LOW);   // 9
    digitalWrite(52, LOW);   // 10
    digitalWrite(51, HIGH);  // 7
    digitalWrite(50, HIGH);  // 6
    digitalWrite(49, LOW);   // 2
    digitalWrite(48, LOW);   // 1
    digitalWrite(47, LOW);   // 5
    digitalWrite(46, HIGH);  // 4

    if (button1.pressed()) {
      State = 1;
      Serial.print(State);
    }

    while (State == 1) {

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(83);
      waitForPosition(83);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(166);
      waitForPosition(166);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(249);
      waitForPosition(249);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(332);
      waitForPosition(332);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(415);
      waitForPosition(415);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(498);
      waitForPosition(498);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(583);
      waitForPosition(583);
      delay(1000);
      if (tic.getCurrentPosition() == 583) {
        tic.haltAndSetPosition(0);
        State = 0;
        Serial.print(State);
      }
    }
  }

  // Spieler 8

  if (newPosition == 28) {
    digitalWrite(53, HIGH);  // 9
    digitalWrite(52, HIGH);  // 10
    digitalWrite(51, HIGH);  // 7
    digitalWrite(50, HIGH);  // 6
    digitalWrite(49, HIGH);  // 2
    digitalWrite(48, HIGH);  // 1
    digitalWrite(47, LOW);   // 5
    digitalWrite(46, HIGH);  // 4

    if (button1.pressed()) {
      State = 1;
      Serial.print(State);
    }

    while (State == 1) {

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(72);
      waitForPosition(72);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(144);
      waitForPosition(144);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(216);
      waitForPosition(216);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(288);
      waitForPosition(288);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(360);
      waitForPosition(360);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(432);
      waitForPosition(432);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(504);
      waitForPosition(504);

      delay(175);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(583);
      waitForPosition(583);
      delay(1000);
      if (tic.getCurrentPosition() == 583) {
        tic.haltAndSetPosition(0);
        State = 0;
        Serial.print(State);
      }
    }
  }

  // Spieler 9

  if (newPosition == 32) {
    digitalWrite(53, HIGH);  // 9
    digitalWrite(52, HIGH);  // 10
    digitalWrite(51, HIGH);  // 7
    digitalWrite(50, HIGH);  // 6
    digitalWrite(49, HIGH);  // 2
    digitalWrite(48, LOW);   // 1
    digitalWrite(47, LOW);   // 5
    digitalWrite(46, HIGH);  // 4

    if (button1.pressed()) {
      State = 1;
      Serial.print(State);
    }

    while (State == 1) {

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(22);
      waitForPosition(22);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(44);
      waitForPosition(44);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(66);
      waitForPosition(66);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(88);
      waitForPosition(88);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(110);
      waitForPosition(110);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(132);
      waitForPosition(132);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(154);
      waitForPosition(154);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(176);
      waitForPosition(176);

      delay(2000);

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);

      tic.setTargetPosition(200);
      waitForPosition(200);
      delay(1000);
      if (tic.getCurrentPosition() == 200) {
        tic.haltAndSetPosition(0);
        State = 0;
        Serial.print(State);
      }
    }
  }
}

void Kartenzahl1(){
  if(newPosition2 = 4){
    analogWrite(enb, 250);
      digitalWrite(in2, HIGH);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 250);
      digitalWrite(in4, HIGH);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(KartenDelay);

      analogWrite(enb, 0);
      digitalWrite(in2, LOW);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(200);

      analogWrite(enb, 250);
      digitalWrite(in2, LOW);
      digitalWrite(in1, HIGH);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 250);
      digitalWrite(in4, LOW);
      digitalWrite(in3, HIGH);
      Serial.print(digitalRead(in4));

      delay(100);

      analogWrite(enb, 0);
      digitalWrite(in2, LOW);
      digitalWrite(in1, LOW);
      Serial.print(digitalRead(in2));

      analogWrite(ena, 0);
      digitalWrite(in4, LOW);
      digitalWrite(in3, LOW);
      Serial.print(digitalRead(in4));

      delay(2000);
      Serial.print("Funk");
  } 
}

Its really long idk if you wanna read that but ive used my machine with this code for weeks now and it worked perfectly fine. From one moment to the other my dc engines didnt good the full voltage anymore

Ive tried that and i only get about 1.5 to 2.5 Volts. Ive never measured that before i had the problem but from my knowladge and Arduino PWM pin should give 5V at max duty cycle

Can you post an annotated schematic showing all connections, power, ground and power source(s).

Are you saying you removed the Arduino from the L298 inputs, applied 5V to one of the L298 inputs and THAT input measures appox 2V? If so, your L298 input has an active short.

A schematic and troubleshooting details would be helpful