реклама на сайте
подробности

 
 
11 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Цифровой вольтметр-амперметр-ваттметр на AVR для бытовой сети, некоторые вопросы
hd44780
сообщение Mar 22 2011, 07:11
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



К вопросу о тех кольцевых буферах.

С какой частотой должны идти выборки в эти буфера?
Сейчас у меня АЦП тактируется 125 кГц. Сколько там получится сэмплов в секунду я посчитать пока не удосужился (в доке как-то мутно про это написано sad.gif ), но, думается 100KSPS наберется. 1 сэмпл за 10 мкс.
Т.е. 200 байт буфера полностью обновятся за 2 мс. Т.е. весь буфер не вмещает даже полпериода 50 герцового сигнала.

Это нормально? Или надо понижать частоту выборки?

e_one, не знаю. Посмотрел я схему, не понял ее.


Сообщение отредактировал hd44780 - Mar 22 2011, 07:15


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
azizcheg
сообщение Mar 22 2011, 07:38
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 20-01-11
Из: Махачкала
Пользователь №: 62 364



Цитата(hd44780 @ Mar 21 2011, 11:25) *
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 мега потому, что они есть на фирме, а остальных нет вроде.
И вообще я думал и ваттметр и вольтметр объединить в одном устройстве. А вольты выводить или ватты - переключается каким-нибудь тумблером.
Возможна ли такая реализация?

Сообщение отредактировал azizcheg - Mar 22 2011, 07:41
Go to the top of the page
 
+Quote Post
hd44780
сообщение Mar 22 2011, 08:02
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(azizcheg @ Mar 22 2011, 09:38) *
128 мега потому, что они есть на фирме, а остальных нет вроде.
И вообще я думал и ваттметр и вольтметр объединить в одном устройстве. А вольты выводить или ватты - переключается каким-нибудь тумблером.
Возможна ли такая реализация?


Возможна. В принципе, все равно, какая там мега. Главное, чтобы АЦП был. Но он у любой меги есть.
Идея простая - меряете всегда и все. А выводите на дисплей что-то одно.

Лично у меня пока проблемы с измерениями crying.gif . Напряжение вроде нормально показывает, но все время "бегает"...

Сообщение отредактировал hd44780 - Mar 22 2011, 08:07


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
azizcheg
сообщение Mar 22 2011, 08:13
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 20-01-11
Из: Махачкала
Пользователь №: 62 364



Цитата(hd44780 @ Mar 22 2011, 11:02) *
Лично у меня пока проблемы с измерениями crying.gif . Напряжение вроде нормально показывает, но все время "бегает"...


Что значит бегает?
Как вообще, в принципе осуществляется измерение этого напряжения(тока)? Чуть дайте теории пожалуйста :-)
Go to the top of the page
 
+Quote Post
hd44780
сообщение Mar 22 2011, 08:34
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(azizcheg @ Mar 22 2011, 10:13) *
Что значит бегает?
Как вообще, в принципе осуществляется измерение этого напряжения(тока)? Чуть дайте теории пожалуйста :-)


Схема в первом посте темы. Мега там не нарисована, только моя измерительная часть.
Программная часть у меня такая (наиболее удачный вариант на текущий момент).
АЦП работает на 125кГц.
Обработчик АЦП суммирует все получаемые отсчеты и считает их кол-во. Как насчитает 1000 штук - останов АЦП (по флагу, в главной программе).
Далее считает среднее арифметическое этих отсчетов. По нему вычисляется напряжение на входе АЦП (формула из ДШ на проц). И умножается на коэффициент делителя (в моем случае это коэф транса*коэф деления потенциометра). Это есть напряжение в сети.

"Бегает" - меняется в небольших пределах.
Я "на глаз" наблюдал диапазон примерно 210..230в. Мультиметр показывает где-то 230. Наверное, можно втупую брать максимум, но я не уверен.

Для тока алгоритм такой же, только последний коэффициент другой, он зависит от того, как вы ток меряете.
Если шунтом - просто закон ома. Если ТТ, то иначе...

Для мощности посложнее. Поэтому и хочется не коэффициентами подгонять, а понять, что там происходит.

Сообщение отредактировал hd44780 - Mar 22 2011, 08:36


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
RabidRabbit
сообщение Mar 22 2011, 08:52
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



Цитата(hd44780 @ Mar 22 2011, 10:11) *
К вопросу о тех кольцевых буферах. С какой частотой должны идти выборки в эти буфера?
Сейчас у меня АЦП тактируется 125 кГц. Сколько там получится сэмплов в секунду я посчитать пока не удосужился (в доке как-то мутно про это написано sad.gif ), но, думается 100KSPS наберется. 1 сэмпл за 10 мкс.
Т.е. 200 байт буфера полностью обновятся за 2 мс. Т.е. весь буфер не вмещает даже полпериода 50 герцового сигнала.
Это нормально? Или надо понижать частоту выборки?

Семён Семёныч! В кольцевые буферы я предлагал складывать уже вычисленные значения напряжения и тока wink.gif Я думаю, вполне хватит по 16 значений тока и напряжения. Чтобы не было неоднозначностей, набросаю код.
CODE

#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;
}

И такую же фигню для тока sm.gif

Сообщение отредактировал RabidRabbit - Mar 22 2011, 10:05
Go to the top of the page
 
+Quote Post
ASZ
сообщение Mar 22 2011, 09:12
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 302
Регистрация: 24-07-06
Из: Донецк, Украина
Пользователь №: 19 042



Цитата(hd44780 @ Mar 21 2011, 13:34) *
Не понял sad.gif ...
Я ж получаю полож. полуволну с верхнего входа моста .... Зачем ее смещать?
Если б была 2-я вторичка, там были бы обе полуволны.

А зачем вообще выпрямлять? Делителем уменьшаете ПЕРЕМЕННОЕ напряжение трансформатора напряжения до 2/3 максимального входного АЦП и смещаете его до середины шкалы.
Разность Umax-Umin=Ua дает Вам амплитудное значение измеренного напряжения. Действующее значение для синусоиды U=0,707Ua.
Этим избавляетесь от всяких нелинейностей от диодов и значительно упрощаете схему (3 резистора!).
Это же касается и цепи тока.

Лично считаю, что усложнять схему ради упрощения программы - дурной тон.
Go to the top of the page
 
+Quote Post
RabidRabbit
сообщение Mar 22 2011, 09:28
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



Цитата(hd44780 @ Mar 22 2011, 11:34) *
АЦП работает на 125кГц.
Обработчик АЦП суммирует все получаемые отсчеты и считает их кол-во. Как насчитает 1000 штук - останов АЦП (по флагу, в главной программе).
Далее считает среднее арифметическое этих отсчетов. По нему вычисляется напряжение на входе АЦП (формула из ДШ на проц). И умножается на коэффициент делителя (в моем случае это коэф транса*коэф деления потенциометра). Это есть напряжение в сети.

Как-то это по-моему не очень правильно. На мой взгляд, лучше зарядить таймер на частоту 1000 Гц, в обработчике прерывания запускать одиночное преобразование, дожидаться его завершения и результат приплюсовывать к накопителю. 100 отсчётов АЦП в таком случае перекроют 5 периодов частоты 50 Гц, что снимает необходимость ловить переход через 0 (я надеюсь, у Вас мега от кварца тактируется). По сумме этих 100 отсчётов (ну или 200, лишь бы на 20 делилось) можно вычислить напряжение. Скакать не должно sm.gif
Go to the top of the page
 
+Quote Post
hd44780
сообщение Mar 22 2011, 09:45
Сообщение #39


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



RabidRabbit, спасибо. я так не пытался wink.gif .
Попробую. Если, конечно потянет считать float значения прямо в прерывании. Но можно и целочисленно сделать, в умноженных на 1000, например.

Цитата(RabidRabbit @ Mar 22 2011, 11:28) *
лучше зарядить таймер на частоту 1000 Гц, в обработчике прерывания запускать одиночное преобразование, дожидаться его завершения и результат приплюсовывать к накопителю. 100 отсчётов АЦП в таком случае перекроют 5 периодов частоты 50 Гц, что снимает необходимость ловить переход через 0 (я надеюсь, у Вас мега от кварца тактируется). По сумме этих 100 отсчётов (ну или 200, лишь бы на 20 делилось) можно вычислить напряжение. Скакать не должно sm.gif


Есть у меня такая мысль. Наверное сделаю.
Сейчас мега тактируется от внутренних 8MHz, просто ног не хватает sad.gif . На PB (там, где кварц) у меня ШД LCD сидит.
Можно поставить и 16-ю мегу ...

Цитата(ASZ @ Mar 22 2011, 11:12) *
А зачем вообще выпрямлять? Делителем уменьшаете ПЕРЕМЕННОЕ напряжение трансформатора напряжения до 2/3 максимального входного АЦП и смещаете его до середины шкалы.
Разность Umax-Umin=Ua дает Вам амплитудное значение измеренного напряжения. Действующее значение для синусоиды U=0,707Ua.


А можно потенциометр включить ко вторичке параллельно мосту, а напряжение на движке смещать?

Сообщение отредактировал hd44780 - Mar 22 2011, 09:54
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
RabidRabbit
сообщение Mar 22 2011, 10:03
Сообщение #40


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



Цитата(hd44780 @ Mar 22 2011, 12:45) *
Попробую. Если, конечно потянет считать float значения прямо в прерывании. Но можно и целочисленно сделать, в умноженных на 1000, например.
Вы правильно понимаете - не нужны float'ы в прерывании. В прерывании, например, можно суммировать целочисленные значения от АЦП (как есть, не надо их ни на что умножать, только в случае 8-битных значений для 100 замеров хватит 16-битной переменной, а для 10-битных значений уже надо 24-битную или 32-битную). Просуммировали 100 значений - скопировать в какую-нибудь глобальную переменную, увеличить другую глобальную переменную на 1, чтобы просигналить основной задаче о доступности нового результата, и снова суммировать сотню значений sm.gif Если я недоступно излагаю - спрашивайте в личке, например sm.gif
Go to the top of the page
 
+Quote Post
hd44780
сообщение Mar 22 2011, 10:24
Сообщение #41


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(RabidRabbit @ Mar 22 2011, 12:03) *
Если я недоступно излагаю - спрашивайте в личке, например sm.gif


Да нет, все понятно. Спасибо. Напишу, проверю вечером. Я на работе, железо дома biggrin.gif .

У меня отсчеты 10-битные, суммирую в беззнаковый 32 бит.

Сообщение отредактировал hd44780 - Mar 22 2011, 10:26


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
ASZ
сообщение Mar 22 2011, 12:53
Сообщение #42


Местный
***

Группа: Свой
Сообщений: 302
Регистрация: 24-07-06
Из: Донецк, Украина
Пользователь №: 19 042



Цитата(hd44780 @ Mar 22 2011, 12:45) *
...skipped...
А можно потенциометр включить ко вторичке параллельно мосту, а напряжение на движке смещать?

Можно, если постоянное напряжение после моста НИКАК не связано с измерительной схемой.
Go to the top of the page
 
+Quote Post
hd44780
сообщение Mar 22 2011, 14:04
Сообщение #43


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Цитата(ASZ @ Mar 22 2011, 14:53) *
Можно, если постоянное напряжение после моста НИКАК не связано с измерительной схемой.


Мост питает мегу и LCD. Обычный БП на LM7805.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
hd44780
сообщение Mar 22 2011, 17:39
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



RabidRabbit, с буферами вроде получилось. Показывает 213-214 при где-то 230 в. Но это без калибровки, коэффициенты "на глаз".

Теперь, наверное, займусь смещением и среднеквадратическим.


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Mar 22 2011, 20:20
Сообщение #45


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Позволю себе заметиь.
Первое для определения среднего не нужен буфер.
вычисляем по формуле
Аy= ((к-1)Ac+M)/k где Ac предидущее среднее, Ау новое среднее, М последнее измерение, к глубина усреднения(эквивалентна длине буфера)
при к равном степени двойки вычисления сводатся к двум сложениям идвум сдвигам.
Измерять лучше средне квадратичное значение и тока и напряжения и мощности без всяких выпрямителей. При этом можно измерять несинусоидальные величины.
Go to the top of the page
 
+Quote Post

11 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 09:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01511 секунд с 7
ELECTRONIX ©2004-2016