Всем привет!
Собрал простую схему из датчика температуры TMP36GZ и фоторезистора на макетной плате. Втыкаю в Ардуину, запускаю порт-плоттер (красный цвет – температура, синий – фоторезистор). На голой Ардуине работает как надо (в плоттере отсчёты от 0 до 140). Выдёргиваю из работающей Ардуины макетку (плоттер 140-270) и втыкаю через шилд W5100 (плоттер от 270 до конца) – в итоге слегка завышает значения фоторезистора и в разы повышает температуру. Скетч всё это время крутится один и тот же.
Отчего могут быть такие изменения в сигнале и что с этим делать?
13 | photocell = analogRead(photocellPin); |
14 | temp = (analogRead(TMP36GZPin)*5.0/1024-0.5)*100; |
15 | Serial .print(photocell); |
Использование аналоговых датчиков вместе с цифровыми шилдами, которые срут по питанию в АЦП всегда чревато проблемами.
Или берите отдельный АЦП или меняйте датчики на цифровые.
Ок. Благодарю за совет!
Фильтры по цепям питания могут помочь? Или это все обречено? Интересуюсь для себя.
Фильтры по цепям питания могут помочь?
Может и могут, если их (фильтры) готовить уметь. У меня не получилось :-(
Фильтры по цепям питания могут помочь? Или это все обречено? Интересуюсь для себя.
А эти фильтры - куда? Свой дополнительный шилд между Ардуиной и используемым шидлом? Просто интересуюсь.
На плате VCC чипа соединена с AVCC by design. Так что без уничтожения Ардуины, как конструктива, не обойтись.
А ежели разведете свою плату, то можно уже и фильтров насовать.
Я уже даже и подзабыл, насколько там всё запущено
У меня только одно объяснение - на момент утверждения рефренсной схемы создатели не предполагали, что на ардуинах начнут космолёты строить. Светодиодом поморгать, попищать там, потенциометр померять - это да. А чтобы веб-сервера строить... Поэтому схемотехника была упрощена настолько, насколько это возможно.
UPD.
Вот, кстати, на продвинутых "ардуинах" в области 18-го вывода (ввода) МК наблюдается и конденсатор керамический и ещё какая-то черная деталюка. Диод-не диод... может и дроссель.