Обработка нажатия кнопок в arduino nano v3

polion
Offline
Зарегистрирован: 22.02.2015

Доброго времени суток. 

Опишу ситуацию к 12 и 11 цифровым портам подключены кнопки

при нажатие кнопки на 11 порту включаем моторчик, при нажатие кнопки на 12 порту моторчик останавливаем но кнопка остается зажатой т.е состояение все время HIGH.

Теперь необходимо обработать ситуацию когда кнопка на 12 порту зажата, нажимаем кнопку на 11 порту необходимо чтоб моторчик вращался в другую сторону, но ничего не происходит

Делаю такую проверку

int val=0;

  void loop() {
    if (digitalRead(11) == HIGH && val==0) {     
      val=1;
      digitalWrite(OUT1,HIGH);
      digitalWrite(OUT2,LOW);
    }
    if(digitalRead(12)==HIGH)
    {
      digitalWrite(OUT1,LOW);
      digitalWrite(OUT2,LOW);
    }
    if(digitalRead(11)==HIGH && digitalRead(12)==HIGH)
    {
      val=0;
      digitalWrite(OUT1,LOW);
      digitalWrite(OUT2,HIGH);
    }
  }

Не подскажете как обработать такую ситуацию?

bwn
Offline
Зарегистрирован: 25.08.2014

Похоже в последнем условии надо еще проверить состояние val, для чего то вы ее ввели в программу?

Надо проверять и в предпоследнем if, иначе будет выключать всегда, пока нажата 12.

polion
Offline
Зарегистрирован: 22.02.2015

bwn пишет:

Похоже в последнем условии надо еще проверить состояние val, для чего то вы ее ввели в программу?

Надо проверять и в предпоследнем if, иначе будет выключать всегда, пока нажата 12.

Спасибо, попробую проверить так.