Помогите в работе с массивом, пожалуйста!
- Войдите на сайт для отправки комментариев
Здравствуйте! Прошу не камнями бросаться, но помочь. Мне нужно, чтобы с моего датчика излучения считывались значения и заносились в массив, а потом вычислять среднее значение за некоторое n - число измерений. Но дело в том, что я тотальный новичок как в программировании вообще, так и в ардуино в частности. Потом из массива должно высчитываться среднее значение и выводиться на экран. С выводом на экран и связью с датчиком я осилил, но как работать с массивом 0 не представляю вообще. Мне нужно опрашивать датчик, скажем, с переодичностью в 0,1 сек и заносить данные в массив из 10 элементов, а после высчитывать среднее. При этом очень желательно, чтобы масив работал по принципу удалению самого старого элемента и добавлнием новго вместо него. Даже примерно не представляю, как такое реализовать. Помогите, пожалуйста!
Метод плавающего кадра или плавающего среднего без использования массива, как мне кажется, вполне подойдёт для вашей задачи. Впервом случае в некоторой переменной аккумуляторе накаливается сумма из N измерений - кадр, по завершению накопления кадра, вычисляется среднее значение кадра и аккумулятор обнуляется для накопления суммы следующего кадра. Во втором случае нет необходимости держать счётчик измерений кадра. При добавлении нового элемента из аккумулятора вычитается его среднее значение и добавляется новое.
А с массивами всё просто: посмотрите на описание array. Не набудьте одну особенность С - массивы всегда начинаются с нуля.
Боюсь, этот метод не подойдет. Все это используется для пирометра, и планируется сделать так, что на дисплее будет показываться максимальное, минимальное и среднее значение. Причем данные должны динамически обновляться. А ведь в массиве сравнительно легко провернуть выделение максимума и минимума...
Издеваеетесь? :) Каждое вновь поступившее значение сравниваем с переменной, хранящей минимум, если новое значение меньше, пишаем его в переменную минимума, аналогично с максимумом, потом новое значение добавляем к аккумулятору кадра. 3 слова в памяти, три проверки. :)
а как организовать опрос датика, скажем, раз в 0,1 сек?
Если по-детски, то между опросами, в основной цикл поставить delay(100), чуть сложнее проверять премя, немного сложнее - по прерыванию таймера.
Ещё можно ознакомиться с Блинком без делай. Тоже помогает опрашивать раз в 100 мсек. :)