hd44780 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба К вопросу о тех кольцевых буферах. С какой частотой должны идти выборки в эти буфера? Сейчас у меня АЦП тактируется 125 кГц. Сколько там получится сэмплов в секунду я посчитать пока не удосужился (в доке как-то мутно про это написано :( ), но, думается 100KSPS наберется. 1 сэмпл за 10 мкс. Т.е. 200 байт буфера полностью обновятся за 2 мс. Т.е. весь буфер не вмещает даже полпериода 50 герцового сигнала. Это нормально? Или надо понижать частоту выборки? e_one, не знаю. Посмотрел я схему, не понял ее. Изменено 22 марта, 2011 пользователем hd44780 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
azizcheg 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба 3-х фазный вольтметр переменного тока - http://www.embed.com.ua/raznoe/tryohfaznyi...remennogo-toka/ Как раз с 7 сегм индикатором. Правда Mega48. А зачем тебе 128 мега? Ваттметр на Mega8 - http://radiokot.ru/circuit/digital/measure/23/ http://www.radiokot.ru/forum/viewtopic.php?f=25&t=25937 128 мега потому, что они есть на фирме, а остальных нет вроде. И вообще я думал и ваттметр и вольтметр объединить в одном устройстве. А вольты выводить или ватты - переключается каким-нибудь тумблером. Возможна ли такая реализация? Изменено 22 марта, 2011 пользователем azizcheg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба 128 мега потому, что они есть на фирме, а остальных нет вроде. И вообще я думал и ваттметр и вольтметр объединить в одном устройстве. А вольты выводить или ватты - переключается каким-нибудь тумблером. Возможна ли такая реализация? Возможна. В принципе, все равно, какая там мега. Главное, чтобы АЦП был. Но он у любой меги есть. Идея простая - меряете всегда и все. А выводите на дисплей что-то одно. Лично у меня пока проблемы с измерениями :crying: . Напряжение вроде нормально показывает, но все время "бегает"... Изменено 22 марта, 2011 пользователем hd44780 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
azizcheg 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба Лично у меня пока проблемы с измерениями :crying: . Напряжение вроде нормально показывает, но все время "бегает"... Что значит бегает? Как вообще, в принципе осуществляется измерение этого напряжения(тока)? Чуть дайте теории пожалуйста :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба Что значит бегает? Как вообще, в принципе осуществляется измерение этого напряжения(тока)? Чуть дайте теории пожалуйста :-) Схема в первом посте темы. Мега там не нарисована, только моя измерительная часть. Программная часть у меня такая (наиболее удачный вариант на текущий момент). АЦП работает на 125кГц. Обработчик АЦП суммирует все получаемые отсчеты и считает их кол-во. Как насчитает 1000 штук - останов АЦП (по флагу, в главной программе). Далее считает среднее арифметическое этих отсчетов. По нему вычисляется напряжение на входе АЦП (формула из ДШ на проц). И умножается на коэффициент делителя (в моем случае это коэф транса*коэф деления потенциометра). Это есть напряжение в сети. "Бегает" - меняется в небольших пределах. Я "на глаз" наблюдал диапазон примерно 210..230в. Мультиметр показывает где-то 230. Наверное, можно втупую брать максимум, но я не уверен. Для тока алгоритм такой же, только последний коэффициент другой, он зависит от того, как вы ток меряете. Если шунтом - просто закон ома. Если ТТ, то иначе... Для мощности посложнее. Поэтому и хочется не коэффициентами подгонять, а понять, что там происходит. Изменено 22 марта, 2011 пользователем hd44780 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RabidRabbit 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба К вопросу о тех кольцевых буферах. С какой частотой должны идти выборки в эти буфера? Сейчас у меня АЦП тактируется 125 кГц. Сколько там получится сэмплов в секунду я посчитать пока не удосужился (в доке как-то мутно про это написано :( ), но, думается 100KSPS наберется. 1 сэмпл за 10 мкс. Т.е. 200 байт буфера полностью обновятся за 2 мс. Т.е. весь буфер не вмещает даже полпериода 50 герцового сигнала. Это нормально? Или надо понижать частоту выборки? Семён Семёныч! В кольцевые буферы я предлагал складывать уже вычисленные значения напряжения и тока ;) Я думаю, вполне хватит по 16 значений тока и напряжения. Чтобы не было неоднозначностей, набросаю код. #define MY_BUFFER_SIZE 16 float get_voltage( const float mesuredVoltage ) { static float voltage[MY_BUFFER_SIZE] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; static int pos = 0; int i; float result = 0; // voltage[pos++] = mesuredVoltage; // if ( pos >= MY_BUFFER_SIZE ) pos = 0; // for ( i = 0; i < MY_BUFFER_SIZE; i++ ) { // result += voltage[i]; } // return result / MY_BUFFER_SIZE; } И такую же фигню для тока :) Изменено 22 марта, 2011 пользователем RabidRabbit Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ASZ 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба Не понял :( ... Я ж получаю полож. полуволну с верхнего входа моста .... Зачем ее смещать? Если б была 2-я вторичка, там были бы обе полуволны. А зачем вообще выпрямлять? Делителем уменьшаете ПЕРЕМЕННОЕ напряжение трансформатора напряжения до 2/3 максимального входного АЦП и смещаете его до середины шкалы. Разность Umax-Umin=Ua дает Вам амплитудное значение измеренного напряжения. Действующее значение для синусоиды U=0,707Ua. Этим избавляетесь от всяких нелинейностей от диодов и значительно упрощаете схему (3 резистора!). Это же касается и цепи тока. Лично считаю, что усложнять схему ради упрощения программы - дурной тон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RabidRabbit 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба АЦП работает на 125кГц. Обработчик АЦП суммирует все получаемые отсчеты и считает их кол-во. Как насчитает 1000 штук - останов АЦП (по флагу, в главной программе). Далее считает среднее арифметическое этих отсчетов. По нему вычисляется напряжение на входе АЦП (формула из ДШ на проц). И умножается на коэффициент делителя (в моем случае это коэф транса*коэф деления потенциометра). Это есть напряжение в сети. Как-то это по-моему не очень правильно. На мой взгляд, лучше зарядить таймер на частоту 1000 Гц, в обработчике прерывания запускать одиночное преобразование, дожидаться его завершения и результат приплюсовывать к накопителю. 100 отсчётов АЦП в таком случае перекроют 5 периодов частоты 50 Гц, что снимает необходимость ловить переход через 0 (я надеюсь, у Вас мега от кварца тактируется). По сумме этих 100 отсчётов (ну или 200, лишь бы на 20 делилось) можно вычислить напряжение. Скакать не должно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба RabidRabbit, спасибо. я так не пытался ;) . Попробую. Если, конечно потянет считать float значения прямо в прерывании. Но можно и целочисленно сделать, в умноженных на 1000, например. лучше зарядить таймер на частоту 1000 Гц, в обработчике прерывания запускать одиночное преобразование, дожидаться его завершения и результат приплюсовывать к накопителю. 100 отсчётов АЦП в таком случае перекроют 5 периодов частоты 50 Гц, что снимает необходимость ловить переход через 0 (я надеюсь, у Вас мега от кварца тактируется). По сумме этих 100 отсчётов (ну или 200, лишь бы на 20 делилось) можно вычислить напряжение. Скакать не должно :) Есть у меня такая мысль. Наверное сделаю. Сейчас мега тактируется от внутренних 8MHz, просто ног не хватает :( . На PB (там, где кварц) у меня ШД LCD сидит. Можно поставить и 16-ю мегу ... А зачем вообще выпрямлять? Делителем уменьшаете ПЕРЕМЕННОЕ напряжение трансформатора напряжения до 2/3 максимального входного АЦП и смещаете его до середины шкалы. Разность Umax-Umin=Ua дает Вам амплитудное значение измеренного напряжения. Действующее значение для синусоиды U=0,707Ua. А можно потенциометр включить ко вторичке параллельно мосту, а напряжение на движке смещать? Изменено 22 марта, 2011 пользователем hd44780 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RabidRabbit 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба Попробую. Если, конечно потянет считать float значения прямо в прерывании. Но можно и целочисленно сделать, в умноженных на 1000, например.Вы правильно понимаете - не нужны float'ы в прерывании. В прерывании, например, можно суммировать целочисленные значения от АЦП (как есть, не надо их ни на что умножать, только в случае 8-битных значений для 100 замеров хватит 16-битной переменной, а для 10-битных значений уже надо 24-битную или 32-битную). Просуммировали 100 значений - скопировать в какую-нибудь глобальную переменную, увеличить другую глобальную переменную на 1, чтобы просигналить основной задаче о доступности нового результата, и снова суммировать сотню значений :) Если я недоступно излагаю - спрашивайте в личке, например :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 22 марта, 2011 Опубликовано 22 марта, 2011 (изменено) · Жалоба Если я недоступно излагаю - спрашивайте в личке, например :) Да нет, все понятно. Спасибо. Напишу, проверю вечером. Я на работе, железо дома . У меня отсчеты 10-битные, суммирую в беззнаковый 32 бит. Изменено 22 марта, 2011 пользователем hd44780 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ASZ 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба ...skipped... А можно потенциометр включить ко вторичке параллельно мосту, а напряжение на движке смещать? Можно, если постоянное напряжение после моста НИКАК не связано с измерительной схемой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба Можно, если постоянное напряжение после моста НИКАК не связано с измерительной схемой. Мост питает мегу и LCD. Обычный БП на LM7805. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба RabidRabbit, с буферами вроде получилось. Показывает 213-214 при где-то 230 в. Но это без калибровки, коэффициенты "на глаз". Теперь, наверное, займусь смещением и среднеквадратическим. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MaslovVG 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба Позволю себе заметиь. Первое для определения среднего не нужен буфер. вычисляем по формуле Аy= ((к-1)Ac+M)/k где Ac предидущее среднее, Ау новое среднее, М последнее измерение, к глубина усреднения(эквивалентна длине буфера) при к равном степени двойки вычисления сводатся к двум сложениям идвум сдвигам. Измерять лучше средне квадратичное значение и тока и напряжения и мощности без всяких выпрямителей. При этом можно измерять несинусоидальные величины. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться