Запустить мигалку по нажатию кнопки.

Тема в разделе "Микроконтроллеры AVR", создана пользователем vvr, 5 июл 2015.

  1. vvr

    vvr Инженерище

    Есть код - светодиод мигает определённое количество раз (в примере пять раз).
    Как запустить его по нажатию кнопки - ума не приложу.
    Перепробовал уже кучу вариантов, но успехов никаких.
    Использовать в виде функции и запускать при нажатии кнопки тоже не получается.
    В каком направлении хоть копать?


    Код (Text):

    int ledPin = 13;
    int ledState = LOW;
    unsigned long previousMillis = 0;
    long OnTime = 50;        // длительность свечения светодиода (в миллисекундах)
    long OffTime = 300;      // светодиод не горит (в миллисекундах)
    int count = 0;

    void setup()
    {
      pinMode(ledPin, OUTPUT);
    }

    void loop()
    {
      unsigned long currentMillis = millis();
      if((ledState == HIGH) && (currentMillis - previousMillis >= OnTime))
      {
        ledState = LOW;
        previousMillis = currentMillis;
        digitalWrite(ledPin, ledState);
        count ++;
      }
      else if ((ledState == LOW) && (currentMillis - previousMillis >= OffTime))
      {
        ledState = HIGH;
        previousMillis = currentMillis ;
        digitalWrite(ledPin, ledState);
      }
      if(count >= 5)
      {
        count = 5;
        ledState = HIGH;
      }
    }
     
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    По нажатию на кнопку установить флаг.
    При установленном флаге выполнять код мигания.
    После последнего мигания снять флаг.
     
  3. vvr

    vvr Инженерище

    Спасибо за ответ.
    Покурил и сам допёр:D
    наверно никотин иногда помогает прояснить мозги:)
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    Самые ценные идеи и решения очень часто рождаются именно в курилках :)
     
    vvr нравится это.