"Дребезг" мотора, не оптимальный код

steelth
Offline
Зарегистрирован: 19.04.2016

Здравствуйте. Помогите разобраться пожалуйста.

Создаю нечто вроде линейного привода. Кнопка управления реверсом+стоповые концевики с двух сторон. Включил (подал питание на ард) - каретка дошла до концевика - отключение - переключил кнопкой реверс - и т.д.

Написал скетч, но при переключении реверса двигатель дергается. Я так понимаю неувязка delay+switch. Подскажите пожалуйста как оптимизировать код.

int IN1 = 8; // к 293d
int IN2 = 7;
int switchButn = 3;// кнопка реверса
int sw1 = 4;// концевики
int sw2 = 5;
void setup()
{
  pinMode (IN2, OUTPUT);
  pinMode (IN1, OUTPUT);
  pinMode (switchButn,INPUT);
  pinMode (sw1,INPUT);
  pinMode (sw2,INPUT);
}
void loop()
{
  if(digitalRead(switchButn)==HIGH){
digitalWrite (IN1, LOW); 
  digitalWrite (IN2, HIGH);
  switch (digitalRead(sw1)==HIGH) {
 case HIGH:
    digitalWrite (IN2, LOW);// код для выполнения
    digitalWrite (IN1, LOW);
    break;
    }

}
  else {
    digitalWrite (IN2, LOW); 
    delay(500);
  digitalWrite (IN1, HIGH);
 switch (digitalRead(sw2)==HIGH) {
 case HIGH:
    digitalWrite (IN2, LOW);// код для выполнения
    digitalWrite (IN1, LOW);
    break;
 }
  }
}

 

5alex5
5alex5 аватар
Offline
Зарегистрирован: 10.04.2016

что за мотор то? вообще моторы дергаются при запуске )

5alex5
5alex5 аватар
Offline
Зарегистрирован: 10.04.2016

и вообще на вскидку смотря на это все, странно как то...  пару строк а желаний больше

5alex5
5alex5 аватар
Offline
Зарегистрирован: 10.04.2016

может ДРЕБЕЗГ подшипников?