Я собираю устройство, в котором будут использоваться аналоговые порты помимо порта для измерения. Изменение внутреннего опорного напряжения не совсем подходит.
Я стараюсь никогда не использовать напряжение питания. Оно меняется в зависимости от чего запитать и от потребления самой схемы. 1. Поставте опорное напряжение 1,1В. 2. На все аналоговые входы, где ожидается напряжение выше 1,1В поставте делители. 3. На входы где напряжение 0-1,1В, но возможны прыжки до 5В, последовательно поставте резистор 200 Ом
Так а смысл, если внутреннее опорное всё равно прыгает, точность повысится, но делители на остальные не хочется ставить, тогда уже надо усиливать напряжение измеряемое. Мне интересно будет ли опорное напряжение прыгать если ардуину запитать от внешннго БП через линейный стабилизатор например.
Внутренне опорное не зависит (или почти не зависит) от напряжения питания и прыгает оно в сотни раз менше. Зачем усиливать измеряемое напряжение? Если оно меньше 1,1 В, то пускайте напрямую, или через 200 Ом резистор. Ref можно переключать, но это не будет правильно если на других входах будет напряжение больше 1,1В
Как не прыгает, 30 минут назад оно было: Код (C++): vin = float(analogRead(snalogInput))/176,4; 1023/176,4=5,799, сейчас измеряю - 5,7 ровно. Да в принципе с опорным +-5В точности хватит. Получается для стабильности надо либо использовать внешнее опорное(без понятия как), либо как-то ардуиной измерять реальное опорное.
Опорное типа DEFAULT, это не опорное, а порнография. Вы пытаетесь измерять микрометром от столба. Сегодня одно,а завтра другое. Флешку втыкнули в соседнее гнездо и опорное поменялось. Зачем вам внешнее опорне напряжение, если для вашей точности хватает внутреннего. У меня проскакивает мысля, что вы не понимаете сколько опорных напряжений на Ардуинке, а их ДВА. 1. analogReference(INTERNAL) - для Atmega328=1.1V шкала 1,1/1023=0,001 2. analogReference(DEFAULT) - для Atmega328 = VCC и оно не равно VIN потому что после стоит стабилизатор. шкала примерно 5/1023=0,0048
Я про то, что оно не ровно 5В и колеблется в каких-то пределах при каких-то условиях, в связи с этим считываемые значения с аналогового порта будут разными Никак не = 5В.
это фантастика. ни при каких условиях при питании от usb не может быть на клемме Vref 5.68 В. 4.6 может, а 5. 68 не может. Может, батарейку нормальную в тестер поставить и не выносить людям мозг? Или тестер взять нормальный, который не врет на 20%? Ну и читайте внимательно то, что Вам пишут, чтобы не задавать по третьему кругу те же вопросы.
http://tim4dev.com/arduino-secret-true-voltmeter/ Специально для вас про опорное напряжение! Во первых два измерительных прибора показывают одинаковое значение, во вторых изменяя в коде делитель измеренным "не нормальным" напряжением, измеряя что-нибудь мультиметром и ардуиной получаем одинаковые значения +-5мВ.
Вы пробовали выставить analogReference(INTERNAL) или нет? Я вот не пойму. Вы здесь совета спрашиваете, или хотите нас в чем то убедить?
Внутренний reference имеет погрешность +/- 10% и при DEFAULT и при INTERNAL. INTERNAL повысит точность но всё равно в разных условиях питания ардуины измеряемое напряжение будет разным!!!!! В этом проблема!!!!!!!