Моторчик в одну сторону крутится медленнее

Переделал в отдельные циклы, все равно не помогает

int IN2 = 2; // подъём 1
int IN3 = 3; // подъём 2

const int button1 = 13;  // кнопка
const int button2 = 8;  // концевик верх
const int button3 = 9;  // концевик низ
int button1State = 0;         
int button2State = 0;        
int button3State = 0;         

void setup()
{
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);

pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
}
void loop()
{
podiom();
spusk();
  }
void podiom() {
button1State = digitalRead(button1);
button2State = digitalRead(button2);
button3State = digitalRead(button3);
if (button1State == HIGH && button2State == LOW) {
digitalWrite (IN3, HIGH);
digitalWrite (IN2, LOW);
}
else {
    digitalWrite (IN2, LOW);
    digitalWrite (IN3, LOW);
    }
}
void spusk() {
button1State = digitalRead(button1);
button2State = digitalRead(button2);
button3State = digitalRead(button3);
if (button1State == LOW && button3State == LOW) {
digitalWrite (IN2, HIGH);
digitalWrite (IN3, LOW);
}
else {
    digitalWrite (IN2, LOW);
    digitalWrite (IN3, LOW);
    }
}

@te238s , нито соболезную, нито сочувствую )))

1 лайк

ВСЁ РАЗОБРАЛСЯ!!! Извините за отнятное время)))

void loop()
{
podiom();
spusk();
  }
void podiom() {
button1State = digitalRead(button1);
button2State = digitalRead(button2);
button3State = digitalRead(button3);
if (button1State == HIGH) {
digitalWrite (IN3, HIGH);
digitalWrite (IN2, LOW);
if (button2State == HIGH) {
digitalWrite (IN3, LOW);
digitalWrite (IN2, LOW);
}
}

}
void spusk() {
button1State = digitalRead(button1);
button2State = digitalRead(button2);
button3State = digitalRead(button3);
if (button1State == LOW) {
digitalWrite (IN2, HIGH);
digitalWrite (IN3, LOW);
}
if (button3State == HIGH) {
digitalWrite (IN2, LOW);
digitalWrite (IN3, LOW);
}
}

1.ЕСЛИ нажата кн1 И конц1 не сработал, ТО ВВЕРХ, иначе СТОП
2. ЕСЛИ не нажата кн1, ТО ЕСЛИ конц2 не сработал, ТО ВНИЗ, ИНАЧЕ СТОП.
@Schwappess , эээ, не совсем. Сравни с моим алгоритмом.

Ну как раз когда я добавлял ИНАЧЕ, он медленно ехал. А сейчас как надо едет в обе стороны и останавливается на концевиках

Ай ладно, работает и ладно! Выпьем за это!

Ну да, тем более что скетч не совпадает со схемой)))

Вот вот.

1 лайк

Схема была примерная на коленке за 2 минуты набросана. Все в голове))

Спасибо за помощь!!!

1 лайк

Так я и понял. Вы мне(или кому-нибудь ещё) предложили разобраться, почему не работает несуществующая схема, т.к. у меня много лишнего времени))

@Schwappess но я настоятельно рекомендую изучить Конечный автомат, дабы не было пробуксовок в таких простых алгоритмах.

Зачем вводить форумчан в заблуждение, размещая “примерную” схему?
Если “все в голове”, голову и надо было выкладывать на форум.