Подскажите пожалуйста управление каналом одной резистивной кнопкой

Тема в разделе "Arduino & Shields", создана пользователем NUr_Explorer, 8 окт 2014.

  1. NUr_Explorer

    NUr_Explorer Нуб

    Здравствуйте, подскажите пожалуйста, не могу справиться с проблемой управления выхода при нажатии резестивной кнопки (стандартные кнопки на панельки с экраном) , подключенные к A0.
    Т.е если я делаю с одной кнопки включить канал, а с другой выключить, то все работает. Но мне необходимо с одной кнопки включать и выключать выход (нажал-выход активен-отпустил-выход активен-нажал-выход не активен-нажал-выход не активен).
    Если делать по условию, то получается все логично кнопку нажал, если выход не активен то включаем его, а вот дальше у меня получается парадокс. Подскажите пожалуйста идею. С флагами тоже фигня у меня получается.

    #define ON_OFF_PIN 10
    boolean on_off_pin=LOW;
    void setup() {
    pinMode(ON_OFF_PIN,OUTPUT);
    digitalWrite(ON_OFF_PIN,LOW);

    if (Feature==5&&on_off_pin==LOW) {
    on_off_pin=HIGH;
    digitalWrite(ON_OFF_PIN,HIGH);
    //пробовал и digitalWrite(ON_OFF_PIN, !digitalRead(ON_OFF_PIN));
    delay(750);
    }
    }
     
  2. NUr_Explorer

    NUr_Explorer Нуб

    Всё, наконец-то случайно разобрался сам.
    решение оказалось таким:
    if (Feature==5) {
    if (on_off_pin==LOW) {
    on_off_pin=HIGH;
    digitalWrite(ON_OFF_PIN,HIGH);
    delay(500);
    }
    else if (on_off_pin==HIGH) {
    on_off_pin=LOW;
    digitalWrite(ON_OFF_PIN,LOW);
    delay(500);

    }
    else {
    delay(10);
    }
    }