Скачут значения с аналогового пина

Jehn

New member
Всем привет. Давно начал минипроект на d1 mini + датчик температуры lm35. Подрубил как в мануалах напрямую к 3.3 вольтам, земле и A0. Вывел в blynk и тогда мне казалось что все значения выдает корректные.
На днях дописал код, чтобы месаги в блинке валились если температура больше нужного значения и увидел что она скачет на 2-3 градуса туда сюда (второй столбец на скрине). Сырые значения с пина скачут на 8 (78-86 на скрине).

1593527479729.png
Если датчик вообще отключить, то analogRead(A0) выдает значения 0 или 4, 5, 6. Должно же быть всегда 0 при таком раскладе или ошибаюсь? На другой плате точно так же.
1593528012579.png
Что можно с этим поделать?
 

enjoynering

Active member
Фильтровать. Самый простой фильтр - усреднение. Делаете и суммируются 32, 64 измерения и делите на кол. измерений. Можно применить медианный фильтр, он посложнее в реализации.
 

Jehn

New member
Фильтровать. Самый простой фильтр - усреднение. Делаете и суммируются 32, 64 измерения и делите на кол. измерений. Можно применить медианный фильтр, он посложнее в реализации.
Спасибо. Про это сразу подумал, но было ощущение, что костыльное решение. Но нифига, работает как надо.
 
Сверху Снизу