Если Вы заинтересованы в моих переводах и хотите меня отблагодарить, то кликните всего на одной ссылке в блоке Оплаченная Реклама

суббота, 10 декабря 2011 г.

Button State Change


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

Необходимое оборудование


  • плата Arduino
  • тактовая кнопка или переключатель
  • резистор 10 кОм
  • макетная плата
  • перемычки

  • Цепь


    Схема



    Скетч постоянно читает состояние кнопки. Затем он сравнивает состояние кнопки с предыдущем состоянием через цикл. Если текущее состояние кнопки, отличается от последнего состояния кнопки и текущее состояние кнопки включено, то кнопка изменилась с выключено на включено. Скетч затем увеличивает счетчик кнопки.
    Скетч также проверяет значение счетчика кнопки, и если оно кратно четырем, то включает светодиод на контакте 13. В противном случае, он выключает его.

    Код

    const int  buttonPin = 2;
    const int ledPin = 13;

    int buttonPushCounter = 0;
    int buttonState = 0;
    int lastButtonState = 0;

    void setup() {
      pinMode(buttonPin, INPUT);
      pinMode(ledPin, OUTPUT);
      Serial.begin(9600);
    }


    void loop() {
      buttonState = digitalRead(buttonPin);

      if (buttonState != lastButtonState) {
        if (buttonState == HIGH) {
          buttonPushCounter++;
          Serial.println("on");
          Serial.print("number of button pushes:  ");
          Serial.println(buttonPushCounter);
        } 
        else {
          Serial.println("off"); 
        }
      }
      lastButtonState = buttonState;

      if (buttonPushCounter % 4 == 0) {
        digitalWrite(ledPin, HIGH);
      } else {
       digitalWrite(ledPin, LOW);
      }
      
    }

    1 комментарий: