Оставшееся время выхода 5-минутного таймера
Я пытаюсь создать таймер, который выводит оставшееся время в минутах. Я использую Adafruit Circuit Playground Express. Например, если таймер составляет 5 минут, то каждую минуту он должен выводить оставшееся время, пока время не закончится.
Запущен 5-минутный таймер.
Задержка: 5 минут
Задержка: 4 минуты
Задержка: 3 минуты
Задержка: 2 минуты
Задержка: 1 минута
Это моя попытка реализовать это. Я хотел бы, чтобы он начинался с отображения «Задержка: 5 минут»; однако это не выводится, пока не пройдет 1 минута.
Что я делаю неправильно?
const long interval = 1 * 60 * 1000UL;
unsigned long previousMillis = 0;
int minutes = 5 ;
unsigned long currentMillis = millis();
while (minutes >= 0){
if (currentMillis - previousMillis >= interval) {
// сохранить время последнего мигания светодиодом
previousMillis = currentMillis;
Serial.print(F("Delay: "));
Serial.print(minutes);
Serial.println(F(" minute(s)"));
minutes = minutes - 1;
}
}
@CObject, 👍-1
Обсуждение1 ответ
Попробуйте это: (У меня нет Arduino, поэтому я не могу его протестировать)
int minutes = 5;
int passedminutes = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
while((millis() - minutes*60000) < 0)
{
if(millis()%60000 == 0)
{
Serial.print("Remaining Time: ");
Serial.println(minutes-passedminutes);
Serial.println();
passedminutes++;
delay(1);
}
}
}
millis()%60000
ненадежен, потому что счетчик millis()
пропускает некоторые значения. Примерно одно из каждых 42 значений., @Edgar Bonet
- как отправить данные в Adafruit Bluefruit Feather (32u4) через Bluetooth?
- Запись загрузчика на Adafruit Feather 32u4
- Увеличить частоту дискретизации на плате ESP32
- Ошибка при использовании Adafruit Feather M0
- Программирование Arduino Uno R3 для срабатывания реле каждые 24 часа
- Adafruit esp32 Feather не удалось скомпилировать
- Таймер глубокого сна esp8266 немного неточен?
- Как заставить погодный комплект с анемометром работать с помощью Arduino (UNO)?
это не выводит правильное оставшееся время
не является полезным описанием вывода .... было бы гораздо полезнее, если бы вы сказали, что на самом деле представляет собой вывод., @jsotolaКроме того, как определяется и инициализируется предыдущий Миллис?, @Michel Keijzers
Тот же вопрос был задан и обсуждается здесь https://forum.arduino.cc/index.php?topic=632900.msg4285177#msg4285177, @CrossRoads
почему вы публикуете свой вопрос здесь? ... форум Arduino дает вам хорошие предложения, @jsotola