пауза с помощью micros ()

Тема в разделе "Arduino & Shields", создана пользователем Azret, 26 мар 2019.

  1. Azret

    Azret Нуб

    Здравствуйте! Помогите пожалуйста,
    моя задача: При входном сигнале на PIN1, выдать выходной сигнал LED31, но с некоторой паузой вначале. т.е. включился PIN1. запустился таймер паузы, по истечение времени паузы, включается диод, как только выключается PIN1 выключается и диод.

    Код (C++):
    #define PIN1 1


    #define LED31 5
    #define LED32 6

    #define delayTime 2000
    bool prevValue = 0;
    bool prevValue2 = 0;
    uint32_t timeRising;

    void setup()
    {
      pinMode(LED31, OUTPUT);
      pinMode(LED32, OUTPUT);
      pinMode(PIN1, INPUT);

      //previousMicros = micros();
    }

    void loop()
    {
                                   
    {
      if (prevValue == LOW && digitalRead(PIN1) == HIGH)
      {
        digitalWrite(LED31, LOW);
        timeRising = micros();
        prevValue = 1;

      }
      if (prevValue == 1 && (micros() - timeRising)>= delayTime)
      {
        digitalWrite(LED31, HIGH);
      }
      if (digitalRead(PIN1)== LOW)
      {
      digitalWrite(LED31, LOW );
    prevValue = 0;
      }
    }
     
     
  2. Daniil

    Daniil Гуру

    А в чем проблема?