Найти тему
2202

Индикатор моточасов - для электротехники

Оглавление

При эксплуатации и сервиса электротехники, а мы ее производим, необходимо иметь таймер моточасов. Можно поставить штатное изделие, но тогда добавляется еще один экран на котором отображается не самая полезная информация. Мы же пойдем другим путем...

Ранее в статьях:

был рассказ о некоторых направлениях производимой нами техники и применяемой элементной базы.

Счетчики моточасов можно разделить на две большие категории:

  • А)те что просто считают время работы двигателя;
  • Б)те что считают количество оборотов двигателя (реальные счетчики моточасов).

Счетчики из категории Б имеют определенную логику работы. Холостой ход моточас - равен астрономическому часу, Средний газ - моточас - 40 минут от астрономического часа, Полный газ - 30 минут. Но все это относительно. Наилучшее определение "... моточас это коэффициент износа за час работы у верхней границы выдаваемой мощности, или — количество оборотов двигателя и частота вращений, чем они больше, тем скорее моточас подходит к концу".

Для нашей техники, более важным является общее время работы. Если это касается тракторов работающих на электротяге, то не о каких моточасах речи быть не может, но для лучшего понимания наших заказчиков, мы пользуемся термином "моточасы".

При реализации "моточасов" не электромеханическим и не механическим способом, необходимо сохранять прошедшее время работы даже при отключении питания.

С электромеханикой - все просто. Включил - начало считать... Шестереночки крутятся, цифры меняются...

Так выглядит электромеханический счетчик моточасов ( спасибо за изображение ТД "Таймер" http://www.td-timer.ru/info/articles/schetchik_vremeni_narabotki.htm) цена от 1410р
Так выглядит электромеханический счетчик моточасов ( спасибо за изображение ТД "Таймер" http://www.td-timer.ru/info/articles/schetchik_vremeni_narabotki.htm) цена от 1410р

Но нам, во первых, надо считать не работу двигателя ДВС, во вторых, нам не нужен еще один экран, и, в третьих, у нас на борту есть Arduino NANO которая имеет flash-память.

Вот на ней мы и будем реализовывать счетчик "моточасов".

С характеристиками контроллера можно ознакомиться на сайте https://www.arduino.cc/.

Нас же интересует флеш-память. Ее не много, всего 1КБ, или 1024 байт. Которые заполнены значением 255. Гарантированное количество циклов перезаписи 100 000 раз.

-2

Задача: Организовать учет наработки с точностью в 1 минуту.

Решение: Для реализации задачи, будем каждую минуту производить запись во флеш-память.

При записи в одну и ту же ячейку, мы сможем учесть 100000 минут, а это - без малого 1667 часов, или примерно 70 дней... Сервисный период для нашей техники 1000 часов - хватает :), но ведь техника будет эксплуатироваться и далее... По этой причине будем записывать значения циклически. Начнем сначала... дойдем до конца... и опять в начало.

Предварительно необходимо очистить память от значения 255.

Очистка флеш-памяти Arduino

#include <EEPROM.h>

#include <printf.h>

int counter; // счетчик байтов

void setup() {

Serial.begin(9600);

printf_begin();

for (counter = 0; counter < 1024; counter++) {

byte data = EEPROM.read(counter);

printf("ячейка # %d равна = %d \n", counter, data);

EEPROM.update(counter, 0);

}

printf("OK \n"); // все закончили!

}

// эта часть нам не нужна - задача выполнена

void loop() {

}

... теперь можно, для успокоения совести - считать данные.

Чтение данных из флеш-памяти побайтно

#include <EEPROM.h>

#include <printf.h>

int counter=1000; // с какого байта будем читать значения, если с начала, то ставим "0"

void setup() {

Serial.begin(9600);

printf_begin();

}

// а вот теперь цикл нам понадобится

void loop() {

if (counter <= 1023) {

// читаем данные из EEPROM

byte data = EEPROM.read(counter);

printf("Ячейка № %d равна %d \n", counter, data);

counter++;

} else {

counter = 0;

}

}

Продолжение следует

Спасибо за уделенное внимание.

Заинтересовала тема - подписывайтесь, ставьте лайк.

Есть замечания и предложения - пишите комментарии...