Счётчик наработки
- Войдите на сайт для отправки комментариев
Пт, 06/08/2021 - 13:38
Подскажите как ставить на Паузу счётчик, и включать его (продолжать ) например на выводе 13 по низкому и высокому уровню?
{ //Счётчик наработки в формате часы,минуты,секунды. После 50 суток работы Arduino встроенный счетчик миллисекунд обнуляется и начинает отсчет снова. unsigned long time = millis() / 1000; display.setContrast(55); display.setTextSize(1); display.setTextColor(BLACK); display.setCursor(35, 40); if (time/60/60<10) { display.print ("0"); } display.print (time/60/60); display.print (":"); if (time/60%60<10) { display.print ("0"); } display.print ((time/60)%60); display.print (":"); if (time%60<10) { display.print ("0"); } display.println (time%60); display.display(); }
Добавить переменную в которой будут храниться секунды и её значение будет увеличиваться на 1 при двух условиях: 1) прошло 1000 миллисекунд; 2) низкий уровень на 13 пине.
А пример этого (кода) можно?
Часы тикают постоянно, а нужно чтоб отсчитывали время работы реле.
Я пробовал так if(digitalRead(13)==HIGН) { здесь код который выше }
Завести флаг паузы.
николай76 Я имел в виду встроить Ваш код в эту конструкцию http://arduino.ru/tutorials/BlinkWithoutDelay вместо моргания диодом.
Хороший пример. Попробую. Только вот модель на работе, через пол часа домой, так что в понедельник.
Ни разу ардуино в протеусе не пробовал. и вообще возможно ли это. Ладно это уже совсем другая тема.
Я пробовал так if(digitalRead(13)==HIGН) { здесь код который выше }
Никак вы миллис на паузу не поставите, это неверный подход.
Вам нужно завести свой счетчик, отдельный от миллис. И прибавлять его только тогда, когда на пине есть сигнал. Задача элементарная на 2 строчки.
А ваш код выше вообще к отсчету времени никакого отношения не имеет, это код показа времени на экране.