Требуется сделать милливольтметр с максимальной точностью, как правильно реализовать электрическую и программную часть?
Правильно будет сначала указать диапазон измеряемых напряжений, точность и входное сопротивление, а только потом все остальное
Шунт, как можно меньше, дабы не влиять сильно на остальную схему (0.02-0.05 Ом) в разрыв общего провода (-) и ОУ, дабы усилить этот сигнал для ардуинки и в аналоговый порт. А использовав закон Ома, можно даже и ток вычислить. А дальше калибровать, калибровать и ещё раз калибровать. Калибровка производится за счет изменения КУ ОУ до истинного значения, снятым образцовым измерительным прибором, Китай - мультиметр сойдет, если не требуется точность менее 1%.
Какой шунт? Это из другой оперы. Это так ток меряют. Тут - напряжение. Если точность 1 мВ, то переключите референс на внутренний, и будет у вас точность около 1 мВ, и такое же разрешение. И все дела. Диапазон тогда тоже изменится - до 1 В с копейками.
У меня аналоговые порты используется помимо порта для вольтметра, на сколько понимаю это напряжение везде изменится.
измеряют? Можно 1 поставить делители 2 переключать ref каждый раз, когда нужно померять малое напряжение, потом обратно 3 взять низковольтный rail2rail операционник, но будет искажение вблизи нуля и вблизи максимума (rail он как бы не совсем 2 rail)
Да, измеряют, переключать типо analogReference на небольшой промежуток времени и потом записывать значение?
А вообще если напряжение 5В, 1023 значения, то 5/1023=0,0048... т.е. примерно ≈ 4мВ на 1 шаг. Правильно понимаю?
Vref переключается не реле, а внутри мк, командами самого мк, у Блума вроде видел, в регистре конфига ацп. Или даташит на атмегу328 смотрите, оригинал всегда точнее. Я наизусть не помню, какой какие биты какого регистра. Да, правильно.
А какой тогда смысл мерят милливольты, если REF скачет на десятки милливольт? Прецизионный источник опорного напряжения
Ну а если точности достаточно такой, то если измерять до 5 вольт делитель получается не нужен? Как можно обезопасить ардуину, если случайно на неё подать >5в? Что скажете по этому поводу: http://tim4dev.com/arduino-secret-true-voltmeter/ ???
при измерении напряжения есть разные аспекты, например, если вы измеряете выходное напряжение сенсора влажности (к примеру, HIH4000), то вам абсолютная точность не важна совершенно - показания определяются отношением V/Vcc (Vcc как ref), и как бы не изменялся Vcc - влиять на точность определения влажности он не будет. Всякие там аналоговые датчики ускорения, тока и пр. работают на таком же принципе- они преобразуют входной сигнал в выходной, зависящий от входного сигнала и пропорциональный Vcc. А вот если вам нужно знать абсолютное значение напряжения - тут другой вопрос, и само собой, что относительная точность не может быть выше относительной точности Vref, ну и ± единица мл. разряда. Истина она конкретна.
Абсолютное значение нужно измерять. Сейчас измеряю так, но напряжение Vref постоянно изменяется, меряя его мультиметром изменяю делитель и получается достаточно точно +-5мВ: Код (C++): int snalogInput = A0; float vin = 0; void setup(){ Serial.begin(9600); } void loop(){ vin = float(analogRead(snalogInput))/176,4; int vt = vin*1000; Serial.print("Voltage ="); Serial.println(vt); delay(500); }