Счетчик времени работы оборудования и кол-ва включений

DMan
Offline
Зарегистрирован: 17.04.2016

Доброе время суток.

Хочу сделать счетчик времени работы , например насосного агрегата, и  счетчик кол-ва включений.

Будет использоваться сухой контакт пускателя на вход ардуины.

Планируется использование функции millis() .

Время работы агрегата будет выводиться в формате - часы:минуты:кол-во включений.

Может кто подскажет сслыку на готовый скетч, что бы не изобретать велосипед? Не смог найти в интернете ничего подобного.

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

За готовыми решениями - это Вы не в тот раздел.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

В чём затык, собственно? Псевдокод:

int onCount = 0; // кол-во включений
byte last_pin_state = digitalRead(inPin);
unsigned long timer = 0;

void loop()
{
  byte status = digitalRead(inPin);
  if(status != last_pin_state) // состояние пина поменялось
  {
    last_pin_state = status; // сохраняем текущее
    
    if(status == HIGH) // включили
    {
      onCount++; // увеличиваем кол-во включений
      timer = millis(); // запоминаем время включения
    }
    else // выключили
    {
      // печатаем продолжительность работы
      Serial.print("Duration: ");
      Serial.println(millis() - timer);
    }
  }
  
  
}

 

DMan
Offline
Зарегистрирован: 17.04.2016

Спасибо!

 

Skalolaz
Skalolaz аватар
Offline
Зарегистрирован: 01.05.2018

DIYMan пишет:

В чём затык, собственно? Псевдокод:

int onCount = 0; // кол-во включений
byte last_pin_state = digitalRead(inPin);
unsigned long timer = 0;

void loop()
{
  byte status = digitalRead(inPin);
  if(status != last_pin_state) // состояние пина поменялось
  {
    last_pin_state = status; // сохраняем текущее
    
    if(status == HIGH) // включили
    {
      onCount++; // увеличиваем кол-во включений
      timer = millis(); // запоминаем время включения
    }
    else // выключили
    {
      // печатаем продолжительность работы
      Serial.print("Duration: ");
      Serial.println(millis() - timer);
    }
  }
  
  
}

 

А если надо учитывать время работы некого оборудования? Оборудование вкл и ардуино включается. И считает в часах (до 500 часов) время работы? Возможно ли реализовать? Спасибо

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Skalolaz пишет:

А если надо учитывать время работы некого оборудования? Оборудование вкл и ардуино включается. И считает в часах (до 500 часов) время работы? Возможно ли реализовать? Спасибо

Возможно. С какой точностью надо учитывать - 10 минут, 1 минута, ... ?

Skalolaz
Skalolaz аватар
Offline
Зарегистрирован: 01.05.2018

asam пишет:

Skalolaz пишет:

А если надо учитывать время работы некого оборудования? Оборудование вкл и ардуино включается. И считает в часах (до 500 часов) время работы? Возможно ли реализовать? Спасибо

Возможно. С какой точностью надо учитывать - 10 минут, 1 минута, ... ?

10 минут более чем. На самом деле 1 час вполне. На экран потом будет выводиться числовое значение в часах от 0 до 500 - это я думаю что сам допишу))) 

b707
Offline
Зарегистрирован: 26.05.2017

Skalolaz пишет:

10 минут более чем. На самом деле 1 час вполне. На экран потом будет выводиться числовое значение в часах от 0 до 500 - это я думаю что сам допишу))) 

задачка несложная. С запуском программы включаете счетчик, каждые 10 минут или час записываете показания в ЕЕПРОМ. Программа на 10 строчек.

Skalolaz
Skalolaz аватар
Offline
Зарегистрирован: 01.05.2018

b707 пишет:

Skalolaz пишет:

10 минут более чем. На самом деле 1 час вполне. На экран потом будет выводиться числовое значение в часах от 0 до 500 - это я думаю что сам допишу))) 

задачка несложная. С запуском программы включаете счетчик, каждые 10 минут или час записываете показания в ЕЕПРОМ. Программа на 10 строчек.

кто бы написал код

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

1500р

Green
Offline
Зарегистрирован: 01.10.2015

2000р с выводом на экран.

b707
Offline
Зарегистрирован: 26.05.2017

ага, налетели :) не забудьте мое роялти за представленный в #7 алгоритм :)

Green
Offline
Зарегистрирован: 01.10.2015

Шкуру неубитого медведя делим на троих. Строго пополам.)