Iki lineeri arduino ile çalıştırmak istiyorum ama biri durdugunda digeri de duruyor .Kod dogru ama calismiyor neden olabilir

#include “Lineer.h”

Lineer::Lineer(int In1, int In2, int Pot, char LA) {
this->In1 = In1;
pinMode(this->In1, OUTPUT);

this->In2 = In2;
pinMode(this->In2, OUTPUT);

this->Pot = Pot;

this->current_position = 300;
this->last_position = 0;
this->isClosed; 
this->LA = LA;

}

void Lineer::Open() {
if (current_position <= 1020) {
digitalWrite(In1, HIGH);
digitalWrite(In2, LOW);
current_position = analogRead(Pot);
}else{
Serial.print(LA);
Serial.println(" open fonksiyonu durdu");
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
isClosed = 0;
}
}

void Lineer::Close() {
if (!isClosed && current_position >= 100) {
digitalWrite(In1, LOW);
digitalWrite(In2, HIGH);
current_position = analogRead(A0);
current_time = millis();
if (current_time - previous_time >= 100){
previous_time = current_time;
if(last_position - current_position < 15){
Serial.print(LA);
Serial.println(" close fonksiyonu durdu");
Serial.println(last_position - current_position);
digitalWrite(In1, LOW);
digitalWrite(In2, LOW);
isClosed = 1;
}
last_position = current_position;
}
}else if(!isClosed && current_position < 100){
digitalWrite(In1, LOW);
digitalWrite(In2, HIGH);
current_position = analogRead(A0);
}
}

Kodun özelinde incelmeye gerek var mı bilemedim.

Bir tane pot ile pozisyon veriyorsun. İki lineer de aynı karar yapılar ve döngülerin içinde.

Olması gerken bu.

İki lineer için ayrı karar yapıları (if veya benzeri) kurarar ve tek tek yapacaklarını kodlarsan ikisi de ayrı davranış sergiler.

Bir çok yerde LOW’a çekmişsin lineerleri hangisini hangi amaçla LOW hangi amaçla High a çektiğini kontrol etmelisin.

Tabi burada doğru pinleri seçtiğin ve bağlantıları da doğru yaptığını varsayıyoruz.