Внешний ИОН
- Войдите на сайт для отправки комментариев
Вс, 30/12/2018 - 15:57
Имеем Arduino Nano. Нужно считывать аналоговые значения с разных входов. C одного A7 относительно внешнего прецезионного ИОН, с другого А6 относительно питания +5. Итак, для эксперемента подключил вход на +3.3В, а AREF придавил резистором к нулю. Набросал скетч типа:
... loop() { analogReference(DEFAULT); Serial.println("over INTERNAL:" + (String)analogRead(A7)); analogReference(EXTERNAL); Serial.println("over EXTERNAL:" + (String)analogRead(A7)); }
В итоге получаю оба показания примерно одинаковые. Что за чорт, в случае внешнего источника с нулевым напряжением должно быть 1023! Пробовал EXTERNAL менять на INTERNAL (относительно внутреннего ИОН 1.1В) - результат тот же, цифровое значение около 800.
Нужно считывать аналоговые значения с разных входов.
Думаете в этом скетче вы опрашиваете разные входы?
Читаем описание analogReference():
Notes and Warnings
After changing the analog reference, the first few readings from
analogRead()
may not be accurate.Или на понятном: после изменения источника опорного напряжения, несколько первых значений, возвращаемых функцией analogRead(), могут быть неточными.
Конкретно в этом нет. Говорю же, для ЭКСПЕРЕМЕНТА взял один порт. Сути не меняет.
Причём если AREF придавить светодиодом через резистор 300 Ом то всё норм, в если резистором 1кОм то нифига.
vlad072, давайте начнём с святого писания, то есть даташита. В нём написано, что референсное напряжение не должно быть менее 1 вольта и более Vcc, стягиванием aref к земле вы вгоняете АЦП в недокументированный режим работы. И получаете то, что получаете.
Нога Aref подключена к АЦП напрямую. И, если к ней подсоединить источник напряжения, то другими референсами пользоваться нельзя. Они будут замыкаться на то, что подключено к Ареф.
навеяло, " ... а давайте мы в нее лом сунем "
Вот, в даташите все ж черным по белому: