Странности с аналоговыми входами
- Войдите на сайт для отправки комментариев
Сб, 19/11/2011 - 14:41
Добрый день!
Пару дней назад приобрел Ардуино Мега, чему крайне рад. Но как только руки добрались до его аналоговых входов, радости поубавилось. Дело в том, что при чтении с этих входов (даже свободных, не подключенных) я получаю не нулевые прыгающие значения.
Подскажите, так и должно быть или я что-то делаю не так?
наверно все так нулевые значения это искуство как и все аналоговое требует танцев с бубном фильтров развязок притяжек
плюс думаю что вы мерили сам себя по питанию памехи наводки итд
вообще так почти всегда и происходит поэтому програмно в дальнейшем корректируйте как вам угодно
Вот тут: arduino.cc/forum/index.php/topic,72289.0.html много чего интересного можно почерпнуть.
так и должно быть, Если аналоговый вход не подключен, то значения возвращаемые функцией analogRead() могут принимать случайные значения.
я подтянул резистором 1Ком на gnd, напряжения до 55в меряю через резистор 10ком. Первое приводит в порядок прыгащие значения, в сумме со вторым является делителем напряжения. http://www.meanders.ru/delitnapr.shtml
//вольтметр void voltemeter() { float U1; //измеряемое напряжение; float U2; //Напряжение без делителя while (digitalRead(KEY_BACK) != LOW) { lcd.clear(); float Rs = 1000.0; //номинал шунтирующего резистора (между GND и аналоговым входом) float Rd = 10000.0; //номинал резистора делителя (между входом и измеряемым напряжением) float Vo = 5.00; //опорное напряжение (5в) U2 = Vo * analogRead(7) / Rs; //Напряжение без Rd lcd.setCursor(0,1); lcd.print("U2: "); lcd.print(U2); lcd.print("В"); U1 = U2 / ( Rs / ( Rd + Rs )); //Расчитываем по делителю lcd.setCursor(0,2); lcd.print("U1: "); lcd.print(U1); lcd.print("В"); delay(100); } }Все ясно. Огромное спасибо за ответы.