Опрос дискретного датчика уровня

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Andrey_RTF
Встал на лапы
Сообщения: 148
Зарегистрирован: Вс дек 20, 2009 12:02:33

Опрос дискретного датчика уровня

Сообщение Andrey_RTF »

Приветсвую всех. Столкнулся с проблемой - имеется устройство отслеживающее многие параметры автомобиля одним из которых является уровень масла в картере двигателя который отслеживается с помощью дикретного датчика уровня, так вот собственно в чем проблема - когда заводится двигатель большая часть масла расходится по техническим магистралям двигателя, но в поддоне остается еще немного масла, при этом, если машина стоит на ровной поверхности то датчик уровня находится еще в допустимом положении. Стоит только заехать на какой нибудь небольшой бугорок, срабатывает датчик и устройство сигнализирует о недостаточном уровне масла, хотя по тех. параметрам, масла в двигателе залито норма. Так вот вопрос как избавиться от "ложных" срабатываний - увеличивать интервал между опросами датчиков. Для полной картины - машина ВАЗ 2114, датчик уровня масла - дискретного типа геркон + магнит на поплавке, в данный момент датчики опрашиваются 10 раз в секунду, остальные датчики уровней (охл. жидкость и омывающая жидкость, тормозная жидкость) работают отлично, проблема возникла только с датчиком уровня масла.
Аватара пользователя
vem566
Друг Кота
Сообщения: 4732
Зарегистрирован: Вс янв 24, 2010 13:14:02
Откуда: Омск

Re: Опрос дискретного датчика уровня

Сообщение vem566 »

Один из вариантов - попробовать "скрестить" его с датчиком давления масла. Когда реально масла мало, то и давление падает. Но тогда нужно менять датчик давления на что-то, что его реально измеряет, а не указывает на факт наличия.
COBA
Открыл глаза
Сообщения: 65
Зарегистрирован: Пн мар 15, 2010 20:57:18

Re: Опрос дискретного датчика уровня

Сообщение COBA »

Может стоить попробовать поставить датчик наклона? Самый простой, в котором просто шарик бегает и замыкает контакты или пузырек в трубке плавает... И поставить условие: если начальный уровень масла нормальный и пошел наклон - то все хорошо
Andrey_RTF
Встал на лапы
Сообщения: 148
Зарегистрирован: Вс дек 20, 2009 12:02:33

Re: Опрос дискретного датчика уровня

Сообщение Andrey_RTF »

Мне тут подсказали другой способ - сделать своего рода программную фильтрацию, но опять же от этого упадет оперативность, но это уже не столь важно. Заключается эта фильтрация в следующем - несколько раз опрашивать датчик (сколько конкретно нужно будет устанавливать опытным путем) и если допустим за 10 опросов он показал 1 то значит уровень действительно упал, лучше напишу приблизительный код, так будет понятнее

Код: Выделить всё

(переменные и названия портов условны)

//тело обработчика прерывания по таймеру (опрос 10 раз в секунду)//
if(PIND.1==1) // опрашиваем датчик
     {
      c++; // инкрементируем переменную "С"
      if(c==50) // если в течение 5 сек состояние датчико было равно 1 (врямя цикла опроса нужно подбирать экспериментально)
           {
           status=1; // то уровень низкий
           с=0; // обнуляем переменную для следуюшего цикла опроса
           }

     }
     else
     {
     status=0; // иначе, если хотя бы один раз датчик перешел в нулевое состояние, то уровень в норме (таким образом мы убираем срабатывание усройства при кратковременных перекосах автомобиля)
     c=0; //обнуляем переменную для следуюшего цикла опроса
     }

Пока нет возможности опробовать данный способ, как думаете - вариан рабочий?
COBA
Открыл глаза
Сообщения: 65
Зарегистрирован: Пн мар 15, 2010 20:57:18

Re: Опрос дискретного датчика уровня

Сообщение COBA »

Я думаю такое возможно организовать. Если не ошибаюсь, то надо применять медианный фильтр. Но тут надо делать выборку и следовательно выйдет что результат будет с неким запаздыванием. Выглядит это где -то так: есть выборка из N элементов, берем первые М из них(это окно, размер которого берем, скорее всего, экспериментально). Эти М элементов сортируем по возрастанию и берем медиану из этого массива. Далее передвигаем окно на один элемент вправо и проделываем операцию по новой. Такой фильтр весьма не плохо фильтрует импульсные помехи. Главное правильно подобрать размер окна и частоту опроса датчика...
(Но лучше посмотреть по фильтру в википедии)
Andrey_RTF
Встал на лапы
Сообщения: 148
Зарегистрирован: Вс дек 20, 2009 12:02:33

Re: Опрос дискретного датчика уровня

Сообщение Andrey_RTF »

ну это практически то же самое, что янаписал выше
Ответить

Вернуться в «Периферия»