#1 2016-01-14 11:09:35

sstepane
Учасник
Зареєстрований: 2015-12-22
Повідомлень: 20

Правильный опрос аналогового пина

Добрый день,

Новичок в ардуине - потихоньку ковыряю и появился вот такой вопрос - как правильно опрашивать аналоговый пин analogRead?

Почему возник вопрос:
1. Плавающие значения на пине - как правильно делать усреднение
2. Как правильно опрашивать пины по таймеру и как таймер влияет на это

Детальнее:
1. Сначала делал одинарный опрос (1 х analogRead), теперь делаю 4 опроса с задержкой в 10 мсек и усредняю, есть мнение, после некоторого чтения в инете по вопросу, что нужно делать 100 опросов без задержки и усреднять. А как это вообще принято? Во всех туториалах 1 х аналогРид и досвидания...

2. Как правильнее проводить сбор данных - по таймеру (например 1 раз в секунду) или проводить опрос в удобное время (согласно коду, когда есть пауза, например), а по таймеру записывать значения (на карточку или в терминал или на дисплей)? Как это обычно принято? Бэст кейс, так сказать, какой?

Извините, если идиотские вопросы и это уже где-то огромными буквами напечатано...

Неактивний

#2 2016-01-14 11:28:24

alex_dol
Учасник
Зареєстрований: 2015-12-28
Повідомлень: 196

Re: Правильный опрос аналогового пина

Проще поставить RC интегрирующую цепочку по входу, правда при быстром изменении сигнала считанные с АЦП показания будут запаздывать.

Неактивний

#3 2016-01-14 12:33:19

Йожэг
Учасник
Зареєстрований: 2015-12-30
Повідомлень: 97

Re: Правильный опрос аналогового пина

sstepane пише:

Плавающие значения на пине - как правильно делать усреднение

Да, фильтр поставить (вариант -- RC-цепочка) или сымитировать его, померяв несколько раз и усреднив.
Или отбросить младшие биты как незначимые, если это реально шум ненужный.

sstepane пише:

Как правильнее проводить сбор данных - по таймеру (например 1 раз в секунду) или проводить опрос в удобное время

Для систем автоматического управления / цифровых регуляторов важно соблюдать точный период дискретизации, т.е., например, собирать данные по таймеру. Иначе дрожание частоты дискретизации может ухудшить качество регулирования. Даже простой ПИД-регулятор может через Д-составляющую что-то напортить. Но если процесс медленно меняющийся по отношению к частоте опроса датчика, да ещё и регулятор всего лишь первого порядка, то IMHO можно не заморачиваться и делать как проще.

Неактивний

#4 2016-04-19 00:01:04

rrr
Гість

Re: Правильный опрос аналогового пина

void loop()
{
I= ((I * 4) + (analogRead(Pin) ) / 5;
}

середнє значення набігає за рахунок циклу

#5 2016-04-19 00:08:41

rrr
Гість

Re: Правильный опрос аналогового пина

I= ((I * 4) + analogRead(Pin) ) / 5;
була лишня дужка

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму