можно сделать под любые варианты - диапазон зависит от входных делителей, отображение результата от коэфициента в программе, шаг= мах требуемое значение/1024
Не совсем так. Коэффициент в программе один на ток и напряжение. Поэтому напряжение меряется до 25,60 вольт а ток до 2,560А. Для раздельной настойки нужно ввести две константы. Если поменять строчки adc_summ=adc_summ/100; volt=(adc_summ*Vref/1024); на adc_summ=adc_summ*Vref/1024/100; volt=adc_summ; То разрешающая способность возрастет. Дискретность будет не 1024 шага, а будет определяться константой Vref. Есть еще предложения по улучшению программы: 1. Размерность массивов сделать кратной 2 (128 вместо 100): Тогда деление на число элементов массива компилятор заменит сдвигом - быстрее будет выполняться и меньше код. 2. В обработчике прерывания ADC производить только сбор данных в массивы - никаких переключений входов. В этом случае можно будет задейстововать не 100 точек измерения а например 256. По заполнении массива выставлять флаг окончания измерения, который ожидается в основной программе. Если флаг установлен - значения в массив не добавлять. В основной программе в зависимости от режима измерять ток или напряжение и переключать входы АЦП с ожиданием установления измеряемого сигнала. По истечении этого периода ожидания устанавливать счетчик заполнения массива на 0 и начинать набирать статистику по следующему измеряемому параметру. Естественно что перед этим накопленные элементы массива должны быть прсуммированы. Еще лучшее решение - суммирование прямо в обработчике. 16 разрядов - 10 разрядов = 6 разрядов = 32 измерения с суммированием можно выполнить прямо в unsigned int. Если применить unsigned long, то потребуется несколько больше времени. Зато можно обойтись всего одной переменной в 4 байта для счетчика и организовать наколение до (32-10 = 22) 2 в 22 степени измерений . Ну или до разумных пределов: например до 5 измерений в секунду-сбор примерно 900 точек измерения. Плата за это - увеличение времени обработчика прерывания АЦП. 3. Как я понял в программе применено отображение в один интервал времени только одного сегмента индикаторов из 48. То есть в лобой момент времени горит только один сегмент. Он потребляет примерно (5-3)/100=20мА тока. Если применить включение дополнительного приемника такого же тока в то время когда сегмент выключен, то потребляемый устройством ток стабилизируется. Это уменьшит шумы и возможно приведет к улучшению разрешающей способности. А возможно и наоборот. При выключении шума перестанет действовать механизм увеличения разрешающей способности АЦП в присутствии шума и разрешающая способность упадет. Это предложение является сомнительным и может не принести результатов в виде улучшения разрешающей способности. 4. Имеет смысл увеличить частоту АЦП насколько это возможно. При этом можно будет накапливать больше точек в единицу времени, а следовательно и увеличивать разрешающую способность. Частоту можно увеличивать до тех пор, пока суммарное время обеих обработчиков прерываний не будет занимать процентов 50-80 всего процессорного времени.
Подскажите пожалуйста как добиться устойчивости показаний зарядного тока. А то показания просто мельтешат во всех трёх разрядах.
Методом половинного деления. Подаете на вход измерителя требуемое постоянное напряжение (или ток) без зарядки - перестает прыгать - проверяйте зарядку, Прыгает - проверяйте измеритель. В измерителе подайте напряжение в 1-1,5 вольта прямо на вход контроллера и аналогично разделите схему пополам. Мое предположение: забыли припаять сглаживающий конденсатор в зарядке или конденсатор неисправен. Если есть осциллограф - посмотрите что там за напряжения.
2. В обработчике прерывания ADC производить только сбор данных в массивы - никаких переключений входов. В этом случае можно будет задейстововать не 100 точек измерения а например 256.
При использовании таких массивов придется заменить мегу8 на мегу 128...
Методом половинного деления. Подаете на вход измерителя требуемое постоянное напряжение (или ток) без зарядки - перестает прыгать - проверяйте зарядку, Прыгает - проверяйте измеритель. В измерителе подайте напряжение в 1-1,5 вольта прямо на вход контроллера и аналогично разделите схему пополам. Мое предположение: забыли припаять сглаживающий конденсатор в зарядке или конденсатор неисправен. Если есть осциллограф - посмотрите что там за напряжения.
Проблему решил. Проанализировал всю схему как посоветовал "Galizin" пришел к выводу, что проблема кроется в зарядном устройстве, а точнее в конденсаторе вольтдобавки, который у меня был установлен из-за недостаточностью напряжения на выходе. Как только конденсатор был выпаян все стало в норму. Сейчас только колеблется младший разряд.
1. а есть прошивка в которой напряжение и ток меряются до 51,2В и 5,12А соответственно? 2. может не стоит делать измерение напряжения с точностью до сотых долей вольта? до десятых хватит вполне, незначащий ноль можно гасить или не гасить.
Подскажите плиз установку Fuse для данной конструкции в CVAVR. Не хотелось бы потом мучиться с восстановлением работоспособности Atmegи или покупать новую.
Совет автору, по измерению тока: 1. Использовать калиброванный шунт 75 мВ, либо датчик тока на эффекте Холла 2. В ПО предусмотреть ручной ввод номинал шунта, чтобы отображался правильный ток.
Тем самым каждый для себя сам определить какие пределы он измеряет
Тема шикарная . И очень хотелось бы повторить , но с учётом прозьб и пожеланий . 1. Измерение напряжения 50-55 Вольт . 2. Измерение тока 10-50 Ампер . 3.
RomanT писал(а):
Совет автору, по измерению тока: 1. Использовать калиброванный шунт 75 мВ, либо датчик тока на эффекте Холла 2. В ПО предусмотреть ручной ввод номинал шунта, чтобы отображался правильный ток.
Тем самым каждый для себя сам определить какие пределы он измеряет
Но почему автор молчит ?
_________________ Век живи , век учись (если денег хватит) .
Котята. нужна ваша помощь.... наткнулся я на проект http://monitor.net.ru/forum/files/44780_1_348.gif Спаял схемку... и тут возникла 1 проблемка. Температуру показывает исправно, а вот ток и напряжение..... при вынутом ОУ Напряжение меряется исправно. как только подключаю ОУ показание напряжения становиться 0.00 ну и конечно ток не меряется... Конструкция проверена несколькими человеками как говорит автор (немного обсуждалось тут http://monitor.net.ru/forum/8-bc1602b2-info-273504.html) ОУ выбрал LM 358 думал в ней проблема-менял не помогло. Монтаж несколько раз проверил. Незнаю что делать.....HELLP
Нужен амперметр вольтметр на меге 8 0-30в и 0-5А хорошо если есть на 10 ампер есть ли такая схема ??
а выше я описывал проэкт-все работает. непомню где нашел свою козу но ща норм. одна проблемка высокая чувствительность... при измерении больше 2х ампер показания начинают скакать из за пульсаций.
А смысл? зачем что-то ловить на 8-разрядном АЦП, если китайский мультиметр на пару порядков точнее?
В Atmega8 - 10 разрядный АЦП, здесь видимо 8 берется - для удобства. Точность 1/256 = 0.4%. В китайских - даже по паспорту не лучше, а хуже. И их нужно 2. Плюс питание им нужно хитрое, иначе батареек не напасешься.
_________________ Человек - это звучит гордо, а обезьяна - объективно...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения