Пытаюсь измерить напряжение на входе А0 с фотодиода. Пользуясь стандартным скетчем ReadAnalogVoltage не получается добиться точных значений - уровень скачит в приделах 20 мВ. Читал, что для более точных значений можно использовать внутреннее напряжение 1.1В, но, как написать для этого программу ни как не пойму. помогите. P.s. 0-5В
Нужно отключить Aref и подключить к внешнему стабильному источнику 5В . Или см. здесь http://arduino.ru/Reference/AnalogReference
А у вас плохое напряжение питания? Вы точно уверены, что причина в опорном напряжении, а не в элементарных наводках?
Обычная программа int val = 0; void setup() { Serial.begin(9600); pinMode(A0, INPUT); } void loop() { val = analogRead(A0); Serial.println(val); delay(1000); } на входе: 52 52 52 51 51 51 51 51 51 52 52 52 с использованием analogReference(INTERNAL); 237 239 239 239 238 238 237 236 236 я пытаюсь при неизменном свете сделать одинаковые показания, чтобы они не скакали
Что тут сказать. Шум в пределах 2%. Поищите измерительный прибор, который точнее измерения делает. Тут только стат. обработка результатов спасет. Плюс, вероятно, имеет место мерцание света, или иные факторы. Например, если измеряемое значение слегка колеблется вблизи 51.5, то в результате округления с равной вероятностью может получаться и 51 и 52.
Более точный измерительный прибор точно так же будет шуметь в районе низких разрядов. Если аналоговое значение сидит ровно на границе цифровых зон, то как иначе?
Поставьте 22мкФ или 100 мкФ на ногу А0 и на корпус , за 1 секунду наверно хватит зарядиться...(против лома- нет приёма)