Jump to content

    
Sign in to follow this  
hd44780

Цифровой вольтметр-амперметр-ваттметр на AVR для бытовой сети

Recommended Posts

Google рулит:)

Вот почитайте, насчет выпрямителей. Коротко и понятно.

http://de.ifmo.ru/bk_netra/page.php?tutindex=36&index=13

Последняя схемка, кстати, используется в болгарских приводах постоянного тока. Классика :)

 

Share this post


Link to post
Share on other sites

Добрый день всем.

Хочу сделать подобное. На мк ATMEGA128 построить вольтметр/ваттметр. Выводить на 3 семисегментных элемента. Подскажите где посмотреть. Если кто делал, напишите, пожалуйста, на azizcheg@gmail.com.

Share this post


Link to post
Share on other sites

Я пока в процессе... Долбаное напряжение померить не могу ...

Постоянку миллион раз мерил - с датчиков давления/влажности, БП делал со встроенным вольтметром - с первого раза оживало.

А тут - уже неделю парюсь... Вроде все понятно, а ни фига не получается :wacko: .

 

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

 

Только ток шунтами мерить я очень не люблю. Конечно, дешевле ТТ во много раз, но и проблем полно сопутствующих.

Edited by hd44780

Share this post


Link to post
Share on other sites
Я пока в процессе... Долбаное напряжение померить не могу ...

Постоянку миллион раз мерил - с датчиков давления/влажности, БП делал со встроенным вольтметром - с первого раза оживало.

А тут - уже неделю парюсь... Вроде все понятно, а ни фига не получается :wacko:

...skipped...

Мне непонятно, зачем вообще диоды ставить и иметь головную боль из-за их нелинейности?

Погасить на делителе до приемлемой величины и сместить положительным напряжением до нуля посередине. И АЦПируйтесь наздоровье.

Кстаати, у германиевых диодов ВАХ от температуры сильно зависит.

 

Share this post


Link to post
Share on other sites
Мне непонятно, зачем вообще диоды ставить и иметь головную боль из-за их нелинейности?

Погасить на делителе до приемлемой величины и сместить положительным напряжением до нуля посередине. И АЦПируйтесь наздоровье.

Кстаати, у германиевых диодов ВАХ от температуры сильно зависит.

 

Пока только для комнатной температуры. Пока алгоритмы не обкатаю. Потом сделаю активный делитель на ОУ со смещением.

Диод по напряжению - кремниевый, из диодного моста (схема в первом посте). Или такая схема плоха?

Share this post


Link to post
Share on other sites
Пока только для комнатной температуры. Пока алгоритмы не обкатаю. Потом сделаю активный делитель на ОУ со смещением.

Диод по напряжению - кремниевый, из диодного моста (схема в первом посте). Или такая схема плоха?

Посмотрите прямую ветвь ВАХ Ваших диодов. Диод открывается при напряжении >0,8В (? - склероз) и имеет очень большую нелинейность.

Таким образом, при малых напряжениях Вы получите сверхпогрешность.

 

А зачем вообще ставить ОУ? С трансформатора и так достаточно большое напряжение :)

 

Share this post


Link to post
Share on other sites

Не понял :( ...

Я ж получаю полож. полуволну с верхнего входа моста .... Зачем ее смещать?

Если б была 2-я вторичка, там были бы обе полуволны.

Share this post


Link to post
Share on other sites
А зачем вообще ставить ОУ? С трансформатора и так достаточно большое напряжение :)

 

На ОУ собирается "прецизионный выпрямитель". Все уже давно придумано до (для) нас :)

Можно, в принципе, засемплировать синусоиду, проинтегрировать и посчитать среднеквадратичное значение, но аналоговая техника справится с этим быстрее и точнее. Гораздо проще мерять постоянное напряжение. С ВЧ помехами, опять-же программно бороться будет не просто. Ну, это все конечно, если мы хотим иметь прибор, а не коробочку с лампочками, которая будет показывать значения в попугайчиках :)

 

PS:Ну, уж если есть желание решить задачу исключительно программно, то это очень интересная и объемная тема для обсуждения.

Edited by nk@

Share this post


Link to post
Share on other sites

Занимался подобной задачей. Для развязки от сети использовал схему из книги Полупроводниковая схемотехника У. Тице и К. Шенк, страница 469.

измерение делал 1 раз в миллисекунду. Синхронизировал начало измерений с переходом синуса через ноль. Измерял 1 полный период. по прерыванию от таймера запускал преобразование АЦП, потом USUM=(ADCW>>2)*(ADCW>>2)+USUM; и по следующем переходе через 0 подсчитывал RESULT=sqrt(USUM/N);

Задача точности остро не стояла. реально пришлось увеличить количество периодов измерения до 10. Погрешность измерений примерно +-1В.

Тестировал эту схему в диапазоне температур от 20 до 55 градусов и напряжений 150-230В. заметил, что оба оптрона должны иметь одну температуру - находится рядом, иначе точность теряется.

 

Но это было давно, сейчас вопрос возник и чтоб не создавать новую тему решил написать здесь.

 

Кто знает, какой минимальный уровень напряжение может быть на входе опорного напряжения АЦП меги16. В даташите молчат, может кто-то подскажет ответ?

 

Share this post


Link to post
Share on other sites
Среднее арифметическое сильно "бегает" (писал выше), кольцевой буфер на 200 значений не спас, больше делать не могу - килобайта памяти в меге 8 не хватает :(. Не вешать же туда SRAM на 64 КБ :wacko: ...
Мнэээ, а float у Вас сколько битов? Не то если по 32 - то как два буфера (напряжение и ток) 200 * 2 * 4 влезло в 1 килобайт? С сишным компилятором и один, я думаю, не влезет... А если всё-таки влезло 200 значений, то какой же должен быть разброс, болтанка в 10 вольт при таком раскладе даст изменение в результате только на 5 сотых...

 

Share this post


Link to post
Share on other sites

Я на С в CvAvr пишу.

 

float у него 4 байта вроде - никакой памяти не хватит складывать их в буфер. 1 буфер = 4*200 = 800 байт - почти весь SRAM Mega8.

Не цеплять же мне ATMega32 ...

 

В буфер я клал 8-битовые значения с АЦП. 2 буфера - по 200 значений на напряжение и ток.

Мож где ошибся в дальнейших обсчетах... Хз...

 

Сейчас сделал среднее арифметическое отсчетов АЦП без буфера за 1000 замеров без таймера - тьфу-тьфу вроде получше стало...

С началом полуволны пока не синхронизируюсь. Но в будущем может и понадобится. Для определения угла сдвига фаз между напряжением и током. Ну это потом.

Сделал пока только для напряжения.

Токовый транс пока отключил. Все равно, алгоритмы замеров идентичные, отличия только в коэффициентах..

Edited by hd44780

Share this post


Link to post
Share on other sites
В буфер я клал 8-битовые значения с АЦП. 2 буфера - по 200 значений на напряжение и ток. Мож где ошибся в дальнейших обсчетах... Хз...
Я, конечно, не спец, но если задаться интервалом в 400 вольт, да поделить этот интервал на 256 (8-битовые отсчёты), то на один бит придётся около 1.5 вольта, как-то так... И чего вы таки хотите? Для более-менее приличных результатов, по-моему, можно что-то типа оверсэмплинга применить, например 64 восьмибитных замера сложить, результат поделить на 8 (получив "одиннадцатибитный" результат), далее всё же организовать кольцевой буфер на 16 "одиннадцатибитных" значений, и, добавив очередное, считать сумму значений из буфера и поделить на 16.

 

Share this post


Link to post
Share on other sites

С буфером получается вот что:

 

// Для сумм

//volatile dword summU;

volatile byte arrayU[200];

 

// Кол-во преобразований напряжения и тока

volatile word count_U=0;

 

................

 

 

// ADC interrupt service routine

interrupt [ADC_INT] void adc_isr(void)

{

word adc_data=ADCW;

 

adc_data>>=2;

arrayU[count_U]=adc_data&0xFF;

count_U++;

if (count_U>=200)

count_U=0;

} // adc_isr

 

..........

// Обрабока

f_sqr_summU=0.0;

for (i=0;i<200;i++)

{

f_sqr_summU+=(float)arrayU;

} // for

sprintf (buffer, "A=%.2f ", f_sqr_summU);

hd44780_puts_xy ( 0, 0, buffer );

 

f_sqr_summU/=200;

 

// Uацп=ср*5/1024

f_sqr_summU=f_sqr_summU*5.0/1024;

sprintf (buffer, "B=%.2f ", f_sqr_summU);

hd44780_puts_xy ( 8, 0, buffer );

 

На дисплее:

A=19360 B=0.47

 

Т.е. сумма значений в буфере - 19360 (примерно, оно меняется все время)

U на входе АЦП = 0.47в, хотя на самом деле там 2.00-2.50в

Edited by hd44780

Share this post


Link to post
Share on other sites

А AD делает отличные RMS to DC конвертеры:

http://www.analog.com/static/imported-file...heets/AD636.pdf

http://www.analog.com/static/imported-file...heets/AD637.pdf

А дальше меряем постоянное напряжение - и всех делов :)

 

PS: Прошу прощения, цена почти 20 бакинских. Дороговато :(

Edited by nk@

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this