Как стать автором
Обновить

ShIoTiny и окружающий мир: аналоговые датчики или АЦП для самых маленьких

Время на прочтение11 мин
Количество просмотров8.5K
Всего голосов 21: ↑18 и ↓3+15
Комментарии17

Комментарии 17

Точность АЦП отнюдь не определяется лишь его разрядностью.
Согласен. Но я написал, что все «на пальцах и упрощенно».
Если начать расписывать шумы, погрешности и усреднения всякие — то выйдет очень много и очень скучно и очень непонятно.

Цель статьи — наглядные примеры использования узла АЦП в конкретной разработке.
Это все понятно, но «на пальцах и упрощенно» не должно приводить к принципиальным заблуждениям. Иначе подобные ошибочные представления могут крепко засесть в памяти начинающих и сильно мешать при дальнейшем их развитии.
К сожалению, заблуждение о том, что разрядность однозначно определяет точность АЦП — довольно распространенное.
Сергей, я буду благодарен, если вы предложите что дополнить. Мне нетрудно поправить будет статью дельным материалом.
Стоит дополнить о линейности? шумах?
При данном уровне изложения и предполагаемой целевой аудитории написанного вполне достаточно. Просто, на Вашем месте, я бы убрал фразы:
Отсюда можно без труда прикинуть точность измерений:
Точность преобразования АЦП ESP8266 примерно 0.1%.
Пожалуйста, не воспринимайте это как придирки, просто действительно наболело. Увы, подобные утверждения не раз слышал от вполне состоявшихся инженеров.
Сделал.

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


Нисколечко и не воспринимаю. Спасибо.
Просто надо различать понятия «точность» и «разрешающая способность». К примеру, при помощи 24-битного сигма-дельта АЦП можно получить разрешение по температуре с обычного термистора в тысячные доли градуса. Но сам термистор при этом имеет погрешность в 3%. То есть около 2-3 градусов. При этом в сигиа-дельта последние разряды обычно не используют. Так, для 24-битного АЦП реально можно брать только старшием 18-19 разрядов. Для АЦП последовательного приближения, которые часто в МК используются, обычно откидывают младший разряд. А вообще измерения это целая наука. Но автор статьи прав в том, что для простых применений этим можно не заморачиваться. С точностью в 3-4 градуса температуру можно измерить копеешным термистором при помощи 10-битного АЦП.

Вы правы. Различать стоит.
Но мне кажется, что в примере с термистором это вопрос не к ацп, а к термистору. Или нет?


Статья то не об ацп как таковом, а о том как работать с по и железом конкретного контроллера.
На пальцах и упрощенно.

Я и имел в виду то, что можно взять крутой АЦП, но если сам датчик паршивый, то нужной точность достигнуть не удастся.

А к статье у меня лично вопросов нет. Всё хорошо и понятно изложено!
АЦП на ESP8266 просто ужас
АЦП на ESP8266 просто ужас


Вы его готовить не умеете :)
А если серьёзно — то для контроля питания или освещенности — пойдёт. Для тех применений, что он используется.

Встроенные АЦП микроконтроллеров вообще имеют много недостатков.
АЦП у ESP8266 имеет только внутренний ИОН, крайне нестабильный, сильно зависящий от температуры и от конкретного чипа. Кроме того, имеет место его нелинейность, которая частично лечится калибровкой.
Использовать его для измерения чего бы то ни было — крайне затруднительно. Ну для контроля освещения на уровне «есть свет»/«нету света» — можно. Контроль батареи с точностью 10-15% наверное тоже можно.
У «нормальных» микроконтроллеров типа AVR можно подключить внешний ИОН необходимой точности и получить желаемый результат.

Ну я примерно так, как вы описали его и использую:) Плюс-минус километр. :)

Кстати, ваши статьи очень мне понравились.
Встроенные АЦП микроконтроллеров вообще имеют много недостатков.

А что, ваша прошивка поддерживает что то кроме этого?

Dht11/22
Ds1820 или или.
Три дискретных входа на сухой контакт и три реле на 220


Обмен по mqtt и udp multicast


Да там по ссылкам подробное описание в pdf

Кстати, а что вы пробовали измерять этим АЦП?
Поделитесь опытом, если можете, пожалуйста.
Из серьезных проектов — датчик EMG (мерит передачу нервных импульсов к мышце) с аналоговым выходом. Получив на выходе неплохой генератор случайных чисел перешел на внешние АЦП MCP3421/MCP3422 с более/менее стабильным результатом
ESP8266 — вообще одна головная боль: нестабильный WiFi, частые перезагрузки при использовании внешних прерываний, невозможность рулить внутренним WDT, выход из режима сна через заднее место и прочие ужасы.
ESP32 в этом отношении получше намного.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации