В чем проблема? Мотор работает нормально только когда мы нажимаем левую клавишу, а не другие.

int mf11=13;//motor1 1-й терминал
int mf12=12;//motor1 2-й терминал
int mf21=9;//motor2 1-й терминал
int mf22=8;//motor2 2-й терминал
int fr=2;//передний ключ
int bk=3;//клавиша возврата
int rt=4;//правая клавиша
int lt=5;//левая клавиша

void setup() {   
    pinMode(mf11,OUTPUT);
    pinMode(mf12,OUTPUT);
    pinMode(mf21,OUTPUT);
    pinMode(mf22,OUTPUT);
    pinMode(fr,INPUT);
    pinMode(bk,INPUT);
    pinMode(rt,INPUT);
    pinMode(lt,INPUT);
}

void loop() {  
    int s = digitalRead (fr);
    int h = digitalRead (bk);
    int i = digitalRead (rt);
    int v = digitalRead (lt);
    if(s==HIGH) {   
         digitalWrite(mf11,HIGH);
         digitalWrite(mf12,LOW);
         digitalWrite(mf21,HIGH);
         digitalWrite(mf22,LOW);
    }   
    if (h==HIGH) {   
        digitalWrite(mf11,LOW);
        digitalWrite(mf12,HIGH);
        digitalWrite(mf21,LOW);
        digitalWrite(mf22,HIGH);
    }
    if (i==HIGH) {   
         digitalWrite(mf11,LOW);
         digitalWrite(mf12,HIGH);
         digitalWrite(mf21,HIGH);
         digitalWrite(mf22,LOW);
    }
   if (v==HIGH) {  
        digitalWrite(mf11,HIGH);  
        digitalWrite(mf12,LOW);  
        digitalWrite(mf21,LOW);  
        digitalWrite(mf22,HIGH);
   } else {   
       digitalWrite(mf11,LOW);
       digitalWrite(mf12,LOW);
       digitalWrite(mf21,LOW);
       digitalWrite(mf22,LOW);
  }
}

, 👍1

Обсуждение

Нужны схемы, чтобы можно было понять, что происходит... Также я предполагаю, что вы действительно хотите использовать операторы else if, а не отдельные операторы if, поскольку else применяется только к оператору if(v==HIGH) (это может быть частью/всей вашей проблемой, поскольку именно это условие, как вы говорите, работает), @Chad G


1 ответ


3

Причина, по которой ваш код работает только для left, заключается в том, что когда v имеет низкий уровень, ваш блок else выполняется и устанавливает все контакты в низкий уровень! Вам нужно использовать else if.

if(condition1)
{
  ...
}
else if (condition2)
{
  ...
}
else
{
  ...
}
,