Подсчет количества пиковых значений в минуту.
- Войдите на сайт для отправки комментариев
Сб, 10/02/2018 - 18:39
Приветствую други. Ситуация- аналоговый датчик при работе выдает значени в форме синусоиды.
Для имитации берем analogRead(A0); Вполне себе повторяет ситуацию в железе.
То есть у нас есть значения: 300-320-298, 200-250-210, и т.д.
То есть вседа есть некое 3начение максимальное, за которым всега идет меньше максимального, в ощем синусоида. Задача сосчитать именно пиковые значения и привести их количество в минуту. Полчучится своего рода тахометр. Натолкните на мысль, с чего начать.
Если значения не дребезжат, то если текущее значение меньше предыдущего, значит пик пройден - добавляем к счетчику единицу. Не?
И да, после этого ничего не прибавляем к счетчику, пока не найдем подобным образом минимум, а потом снова ищем максимум и т.д.
с чего начать.
1. Сесть за стол
2. Определить чёткий критерий "пиковости" (у Вас его нет, а без него ничего не выйдет)
3. Почеасать репу
4. написать программу.
Да, примерно так и думал. У самого датчика есть некий "шум", то есть он не выдает в состоянии покоя 300-300-300. Как вариант я могу взять 10 его значений и вывести среднее, получится тишина по факту. Или нужно определить синусоиду шума, програмно ее отсечь, и считать только явную синусоиду, так?
Четкого критерий таков, для низких оборотов (1500) синусоида красивая, но с увеличением, высота пика сильно падает (датчик то аналоговый)- но все же отследить реально. Меня устроит стабильная работа (точная) до 3к оборотов.
Четкого критерий таков, для низких оборотов (1500) синусоида красивая, но с увеличением, высота пика сильно падает (датчик то аналоговый)- но все же отследить реально. Меня устроит стабильная работа (точная) до 3к оборотов.
Это ни хрена не чёткий кртиерий, а бабабольство про красивую синусоиду. Чёткий критерий, это однозначное, формальное, тупое определение "сравни это с тем ... привать то к этому ... и если получилось > 0 то вот оно и есть", такое. чтобы однозначно перекладывалось на программу.
А почему бы этот аналоговый сигнал не преобразовать в меандр? Тогда все становится проще.
Значит четкого криетрия нет, и есть толь входные данные.
1. Датчик имеет собственный шум в пределах 378-384 =6 единиц (из 1024); С ним поборюсь с помощью среднего арифметическиго.
2. Чем ниже обороты- тем четче виден пик.
Попобдробнее, про меандр? Может есть кусок кода? Что это нам даст?
Меандр - прямоугольный сигнал. Можно сделать преобразование с помощью компаратора.
А что касается, что это даст - это даст возможность просто считать импульсы.
Если я правильно уловил вашу мысль, то я беру к примеру АЦП ADS1115 https://www.adafruit.com/product/1085
У него встроен программируемый компаратор, и просто считаю свои импульсы. Так?
Дороговастенькое решение. Погуглите что-то типа преобразование синусоиды в прямоугольные импульсы.
У меня уже приобретены эти АЦП в Китае за 3 уе. Но направление я понял. Вы считаете это самое лучшее решение будет?
Не могу сказать, лучше или нет. Но если программно не получается получить стабильный результат, то остается аппаратный или их комбинация.