Мучаюсь с millis()

ну тогда буду считать что вы хотели на делай сделать, что вроде порицается!))) так и запишем, v258 пропагандирует делай…

Нужно организовать три задержки работающие последовательно по 5 секунд. Delay не подходит так как надо чтобы работали прерывания при этом.

После отрабатывания последней задерки должна работать первая и так далее

Ну так это у вас в #8 написано. Что не так?

этот код не работает. Он выводить через 15 сек. все три Print. А надо каждый выводить каждые 5 сек.

Да, точно, так работать не будет, извиняюсь - невнимателен)

вот и мучался с ним.

Одно другому не помеха.
(Смех смерти не помеха.)

Контора пишет (с) :wink:

Это потому, что вы сделали три отдельных вывода (каждые 5 секунд, каждые 10 секунд и каждые 15 секунд). Все работает в точности, как вы закодировали

Тогда ещё проще

uint32_t last_millis = 0;

uint8_t Print = 1;

void setup() {
 Serial.begin(9600);
}

void loop() {
  if(millis() - last_millis >= 5000 && Print == 1 )
  {
    last_millis = millis();
    Serial.println("Print_1");
     Print = 2;
  }

   if(millis() - last_millis >= 5000 && Print == 2 )
  {
    last_millis = millis();
    Serial.println("Print_2");
     Print = 3;
  }

   if(millis() - last_millis >= 5000 && Print == 3 )
  {
    last_millis = millis();
    Serial.println("Print_3");
     Print = 1;
  }
 

}
1 лайк

да работает. Круто. Я пытался таким способом сделать, но не пошло. Спасибо

Подумаете на досуге - ещё проще сделаете

Проще с delay.

Да, делей прерыванию не помеха.

В моем коде тоже работает. Еще раз спасибо

Как то дубово выглядит. Может так лучше?

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  static uint32_t last_millis = 0;

  if (millis() - last_millis >= 5000)
  {
    static uint8_t Print = 1;

    last_millis = millis();
    Serial.println("Print_" + (String)Print);
    if (++Print > 3)
    {
      Print = 1;
    }
  }
}
1 лайк

Значительно. Все думал, неужели никто не предложит вместо трех одинаковых циклов сделать один.

Задержку тоже можно менуот цикла к циклу

1 лайк

Ага.) deleted

Конечно.
Я лишь чуть подправил код ТС-а.
Доработать ему оставил:

Вот сомневаюсь я, что станет ))