|
Цифровой вольтметр-амперметр-ваттметр на AVR для бытовой сети, некоторые вопросы |
|
|
|
Mar 16 2011, 09:17
|

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

|
Вот делаю такую штуку - сабж. Делается для себя, но хочется не только некий показометр (а-ля китайские барометры, которые показывают хрен знает что, мало зависящее от атмосферного давления), а прибор, на показания которого можно ориентироваться  . Схему измерительной части прилагаю. Резистор R2 - многооборотный. На выходе ТТ предполагается еще поставить ОУ с переключаемым Ку как в AVR465 (для низкоточных нагрузок), но пока его там нету - сразу в ATMega8. БП на LM7805, мегу и LCD рисовать не стал - все стандартно. Генератор внутренний, 8МГц. Я принципиально не стал ставить шунт и делитель. С гальванической развязкой надежнее. Измерительные узлы отдельно от МК и цифровой части проверены обычным мультиметром на различных нагрузках (от 25Вт паяльника до 10КВт кухонной печки) - они полностью адекватны и работают нормально. Обработка данных такая: 1. АЦП на частоте 125 кГц цифрует сигнал. Обработчик прерывания Считает суммы отсчетов и их кол-во: // ADC interrupt service routine interrupt [ADC_INT] void adc_isr(void) { dword adc_data, temp; // Read the AD conversion result adc_data=ADCW&0xFFFE; if(isU) { // U temp=adc_data; //*adc_data; sqr_summU+=temp; countU++; } // if else { // I temp=adc_data; //*adc_data; sqr_summI+=temp; countI++; } // else } // adc_isr 2. Главная программа меряет по очереди ток и напряжение: ............. // Измерение напряжения isU=1; sqr_summU=0; countU=0; ADMUX&=0xFE; // ADC0 - канал напряжения // Запуск АЦП ADCSRA|=0x40; // ADCSC - Start ADC startMs=ms; // ожидание 21 мс (20мс - период 50 Гц) while (abs (ms-startMs)<21); // стоп АЦП ADCSRA&=0xBF; // 10111111 = BF ............. для тока также, только переменные другие. Переменная ms глобальная - TC1 по прерыванию считает миллисекунды. 3. Когда оба померяли, вычисляем // Расчет напряжения // Среднеквадратическое // Urms=sqrt(sum(u(i)^2)/N); u(i) - мгновенные отсчеты (с АЦП), i=1..N f_sqr_summU = ((float)sqr_summU)/countU; // ср. арифм. // f_sqr_summ=sqrt(f_sqr_summ); // Urms (отсчеты АЦП) // Uацп=ADC*Vref/1024=ADC*0.005 U = f_sqr_summU*0.005; // Uвх=Urms*109.52 U*=109.52; // Расчет тока // Среднеквадратическое // Urms=sqrt(sum(u(i)^2)/N); u(i) - мгновенные отсчеты (с АЦП), i=1..N f_sqr_summI = ((float)sqr_summI)/countI; // ср. арифм. // f_sqr_summ=sqrt(f_sqr_summ); // Urms (отсчеты АЦП) // Uацп=ADC*Vref/1024=ADC*0.005 I = f_sqr_summI*0.005; // Iн=500*Uацп/148,86 =Uацп*3.359 I*=3.359; // S - Полная мощность S_temp=((dword)I*U); S=S_temp; 4. после этого вывод на дисплей. Калибровки пока нету, но будет. Заметил странности: 1. При среднеквадратических было завышение показаний почти в 2 раза - вместо 220-230в показывал 380-400. По току аналогично. Поставил среднеарифметическое - нормально стало.... Почему? Или я чего-то прозевал? 2. Показания "бегают" - часто меняются в небольших пределах. Я могу поставить в цикл задержку - типа мерять раз в секунду, но меня такой способ чего-то смущает.. Может кто что посоветует? Спасибо.
Сообщение отредактировал hd44780 - Mar 16 2011, 09:19
Эскизы прикрепленных изображений
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
 |
Ответов
|
Mar 22 2011, 09:45
|

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

|
RabidRabbit, спасибо. я так не пытался  . Попробую. Если, конечно потянет считать float значения прямо в прерывании. Но можно и целочисленно сделать, в умноженных на 1000, например. Цитата(RabidRabbit @ Mar 22 2011, 11:28)  лучше зарядить таймер на частоту 1000 Гц, в обработчике прерывания запускать одиночное преобразование, дожидаться его завершения и результат приплюсовывать к накопителю. 100 отсчётов АЦП в таком случае перекроют 5 периодов частоты 50 Гц, что снимает необходимость ловить переход через 0 (я надеюсь, у Вас мега от кварца тактируется). По сумме этих 100 отсчётов (ну или 200, лишь бы на 20 делилось) можно вычислить напряжение. Скакать не должно  Есть у меня такая мысль. Наверное сделаю. Сейчас мега тактируется от внутренних 8MHz, просто ног не хватает  . На PB (там, где кварц) у меня ШД LCD сидит. Можно поставить и 16-ю мегу ... Цитата(ASZ @ Mar 22 2011, 11:12)  А зачем вообще выпрямлять? Делителем уменьшаете ПЕРЕМЕННОЕ напряжение трансформатора напряжения до 2/3 максимального входного АЦП и смещаете его до середины шкалы. Разность Umax-Umin=Ua дает Вам амплитудное значение измеренного напряжения. Действующее значение для синусоиды U=0,707Ua. А можно потенциометр включить ко вторичке параллельно мосту, а напряжение на движке смещать?
Сообщение отредактировал hd44780 - Mar 22 2011, 09:54
Эскизы прикрепленных изображений
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
|
Mar 22 2011, 10:03
|

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

|
Цитата(hd44780 @ Mar 22 2011, 12:45)  Попробую. Если, конечно потянет считать float значения прямо в прерывании. Но можно и целочисленно сделать, в умноженных на 1000, например. Вы правильно понимаете - не нужны float'ы в прерывании. В прерывании, например, можно суммировать целочисленные значения от АЦП (как есть, не надо их ни на что умножать, только в случае 8-битных значений для 100 замеров хватит 16-битной переменной, а для 10-битных значений уже надо 24-битную или 32-битную). Просуммировали 100 значений - скопировать в какую-нибудь глобальную переменную, увеличить другую глобальную переменную на 1, чтобы просигналить основной задаче о доступности нового результата, и снова суммировать сотню значений  Если я недоступно излагаю - спрашивайте в личке, например
|
|
|
|
|
Mar 22 2011, 10:24
|

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

|
Цитата(RabidRabbit @ Mar 22 2011, 12:03)  Если я недоступно излагаю - спрашивайте в личке, например  Да нет, все понятно. Спасибо. Напишу, проверю вечером. Я на работе, железо дома  . У меня отсчеты 10-битные, суммирую в беззнаковый 32 бит.
Сообщение отредактировал hd44780 - Mar 22 2011, 10:26
--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса. (с) Мария Эдуарда
|
|
|
|
Сообщений в этой теме
hd44780 Цифровой вольтметр-амперметр-ваттметр на AVR для бытовой сети Mar 16 2011, 09:17 Vasily_ А зачем это делать http://www.conrad.com/VOLTCRAF... Mar 16 2011, 12:10 RabidRabbit 2. Результаты для тока и напряжения складывать в к... Mar 16 2011, 12:13 hd44780 Vasily_, ага. и платить 50 еврозеленых баксов . П... Mar 16 2011, 12:32 dimka76 Цитата(hd44780 @ Mar 16 2011, 15:32) И ещ... Mar 16 2011, 13:26  hd44780 Цитата(dimka76 @ Mar 16 2011, 15:26) Надо... Mar 16 2011, 14:03   kovigor Цитата(hd44780 @ Mar 16 2011, 18:03) Спас... Mar 16 2011, 16:12    hd44780 Цитата(kovigor @ Mar 16 2011, 18:12) Это,... Mar 16 2011, 17:44   defunct Цитата(hd44780 @ Mar 16 2011, 16:03) Дель... Mar 18 2011, 13:30    hd44780 Цитата(defunct @ Mar 18 2011, 15:30) Ф = ... Mar 18 2011, 14:20     KaMa3eR Цитата(hd44780 @ Mar 18 2011, 17:20) Спас... Mar 19 2011, 14:50 defunct Цитата(hd44780 @ Mar 16 2011, 14:32) И ещ... Mar 16 2011, 13:47 hd44780 На ТТ у меня диод германиевый (старый советский Д2... Mar 20 2011, 12:34 kovigor Цитата(hd44780 @ Mar 20 2011, 16:34) Насч... Mar 20 2011, 13:07 RabidRabbit Цитата(hd44780 @ Mar 20 2011, 15:34) Сред... Mar 21 2011, 14:44 hd44780 Я неточно выразился. Я не пойму, куда мне его став... Mar 20 2011, 15:46 nk@ Google рулит
Вот почитайте, насчет выпрямителей. ... Mar 20 2011, 19:43 azizcheg Добрый день всем.
Хочу сделать подобное. На мк ATM... Mar 21 2011, 06:27 hd44780 Я пока в процессе... Долбаное напряжение померить ... Mar 21 2011, 08:25 ASZ Цитата(hd44780 @ Mar 21 2011, 12:25) Я по... Mar 21 2011, 09:15  hd44780 Цитата(ASZ @ Mar 21 2011, 11:15) Мне непо... Mar 21 2011, 09:48   ASZ Цитата(hd44780 @ Mar 21 2011, 13:48) Пока... Mar 21 2011, 10:11    nk@ Цитата(ASZ @ Mar 21 2011, 12:11) А зачем ... Mar 21 2011, 10:48 azizcheg Цитата(hd44780 @ Mar 21 2011, 11:25) 3-х ... Mar 22 2011, 07:38  hd44780 Цитата(azizcheg @ Mar 22 2011, 09:38) 128... Mar 22 2011, 08:02   azizcheg Цитата(hd44780 @ Mar 22 2011, 11:02) Личн... Mar 22 2011, 08:13    hd44780 Цитата(azizcheg @ Mar 22 2011, 10:13) Что... Mar 22 2011, 08:34     RabidRabbit Цитата(hd44780 @ Mar 22 2011, 11:34) АЦП ... Mar 22 2011, 09:28 hd44780 Не понял ...
Я ж получаю полож. полуволну с верхн... Mar 21 2011, 10:34 ASZ Цитата(hd44780 @ Mar 21 2011, 13:34) Не п... Mar 22 2011, 09:12 e_one Занимался подобной задачей. Для развязки от сети и... Mar 21 2011, 12:13 hd44780 Я на С в CvAvr пишу.
float у него 4 байта вроде -... Mar 21 2011, 15:35 RabidRabbit Цитата(hd44780 @ Mar 21 2011, 18:35) В бу... Mar 21 2011, 16:32 hd44780 С буфером получается вот что:
// Для сумм
//volat... Mar 21 2011, 16:59 nk@ А AD делает отличные RMS to DC конвертеры:
http:/... Mar 21 2011, 18:55 hd44780 Еще и достать их не очень....
Правда из доки можно... Mar 21 2011, 19:21 hd44780 К вопросу о тех кольцевых буферах.
С какой частот... Mar 22 2011, 07:11 RabidRabbit Цитата(hd44780 @ Mar 22 2011, 10:11) К во... Mar 22 2011, 08:52 ASZ Цитата(hd44780 @ Mar 22 2011, 12:45) ...s... Mar 22 2011, 12:53  hd44780 Цитата(ASZ @ Mar 22 2011, 14:53) Можно, е... Mar 22 2011, 14:04   MaslovVG Позволю себе заметиь.
Первое для определения средн... Mar 22 2011, 20:20    hd44780 Цитата(MaslovVG @ Mar 22 2011, 22:20) Изм... Mar 23 2011, 07:30 hd44780 RabidRabbit, с буферами вроде получилось. Показыва... Mar 22 2011, 17:39 hd44780 Без выпрямителя я вот такое вижу - схема. Вместо 2... Mar 23 2011, 09:39 dimka76 Цитата(hd44780 @ Mar 23 2011, 12:39) Как ... Mar 23 2011, 11:13 hd44780 dimka76, спасибо. Попробую. Mar 23 2011, 11:54 Tanya Цитата(hd44780 @ Mar 23 2011, 14:54) dimk... Mar 23 2011, 12:17  hd44780 Цитата(Tanya @ Mar 23 2011, 14:17) Попроб... Mar 23 2011, 14:11   Tanya Цитата(hd44780 @ Mar 23 2011, 17:11) Вы и... Mar 23 2011, 14:22    hd44780 Цитата(Tanya @ Mar 23 2011, 16:22) Я имел... Mar 23 2011, 15:05     Tanya Цитата(hd44780 @ Mar 23 2011, 18:05) Схем... Mar 23 2011, 16:59      hd44780 Цитата(Tanya @ Mar 23 2011, 18:59) Схема ... Mar 23 2011, 19:18       Stanislav_S Цитата(hd44780 @ Mar 23 2011, 23:18) Схем... Mar 23 2011, 19:34       Tanya Цитата(hd44780 @ Mar 23 2011, 22:18) Посл... Mar 24 2011, 09:25        hd44780 Цитата(Tanya @ Mar 24 2011, 11:25) Это бу... Mar 24 2011, 10:19         Stanislav_S Вот так это выглядет, измерение напряжения с обмот... Mar 24 2011, 10:28         Tanya Цитата(hd44780 @ Mar 24 2011, 13:19) А че... Mar 24 2011, 10:38          Stanislav_S Цитата(Tanya @ Mar 24 2011, 14:38) А заче... Mar 24 2011, 10:50           Tanya Цитата(Stanislav_S @ Mar 24 2011, 13:50) ... Mar 24 2011, 10:59            Stanislav_S Цитата(Tanya @ Mar 24 2011, 14:59) А я пр... Mar 24 2011, 11:09             Tanya Цитата(Stanislav_S @ Mar 24 2011, 14:09) ... Mar 24 2011, 11:26              Stanislav_S Цитата(Tanya @ Mar 24 2011, 15:26) А с на... Mar 24 2011, 12:21               Tanya Цитата(Stanislav_S @ Mar 24 2011, 15:21) ... Mar 24 2011, 12:25                Stanislav_S Цитата(Tanya @ Mar 24 2011, 16:25) Кто эт... Mar 24 2011, 13:09                 Tanya Цитата(Stanislav_S @ Mar 24 2011, 16:09) ... Mar 24 2011, 13:25     Stanislav_S Что то схемы измерения у вас больно альтернативные... Mar 23 2011, 17:04 hd44780 Stanislav_S, а зачем виртуальная земля? Для точнос... Mar 24 2011, 09:05 Stanislav_S Цитата(hd44780 @ Mar 24 2011, 13:05) Stan... Mar 24 2011, 10:17 hd44780 Stanislav_S, Tanya, спасибо.
Вроде понятно. Буду п... Mar 24 2011, 10:53 hd44780 Мне так видится - схема.
Со второй вторичкой/транс... Mar 24 2011, 11:38 Tanya Цитата(hd44780 @ Mar 24 2011, 14:38) Мне ... Mar 24 2011, 12:07 Sirko Извините.
А почему нельзя проще?
Если судить по п... Mar 25 2011, 15:12 SHUR1K Цитата(Sirko @ Mar 25 2011, 17:12) Извини... Mar 30 2011, 13:53  nk@ Цитата(SHUR1K @ Mar 30 2011, 16:53) ловит... Mar 30 2011, 18:34   SHUR1K Цитата(nk@ @ Mar 30 2011, 20:34) А не про... Mar 31 2011, 04:49  hd44780 Цитата(SHUR1K @ Mar 30 2011, 15:53) ловит... Mar 31 2011, 07:15 НЕХ А не проще ли поставить ADE7755 ценою меньше долла... Mar 31 2011, 05:23 777777 Наличие диодов сразу говорит о том, что достаточну... Mar 31 2011, 08:03 hd44780 Цитата(777777 @ Mar 31 2011, 10:03) Налич... Mar 31 2011, 10:53  777777 Цитата(hd44780 @ Mar 31 2011, 14:53) У ме... Mar 31 2011, 11:54   hd44780 Цитата(777777 @ Mar 31 2011, 13:54) Да ла... Mar 31 2011, 12:30 hd44780 Доделал вольтметр полностью .
Показал 188-190в при... Mar 31 2011, 16:53 SHUR1K Цитата(hd44780 @ Mar 31 2011, 18:53) Доде... Apr 1 2011, 05:00  777777 Цитата(SHUR1K @ Apr 1 2011, 09:00) У меня... Apr 1 2011, 05:25   SHUR1K Цитата(777777 @ Apr 1 2011, 07:25) Ну ни ... Apr 1 2011, 08:32    777777 Цитата(SHUR1K @ Apr 1 2011, 12:32) Да ник... Apr 1 2011, 08:56     SHUR1K Цитата(777777 @ Apr 1 2011, 10:56) А, кст... Apr 1 2011, 11:08      Stanislav_S Цитата(SHUR1K @ Apr 1 2011, 15:08) Нет, у... Apr 1 2011, 12:33       SHUR1K Цитата(Stanislav_S @ Apr 1 2011, 14:33) С... Apr 1 2011, 12:46        ILYAUL Цитата(SHUR1K @ Apr 1 2011, 16:46) 16x16 ... Apr 1 2011, 13:03        Stanislav_S Цитата(SHUR1K @ Apr 1 2011, 16:46) 16x16 ... Apr 1 2011, 13:29        rx3apf Цитата(SHUR1K @ Apr 1 2011, 16:46) 16x16 ... Apr 1 2011, 16:10         SHUR1K Цитата(rx3apf @ Apr 1 2011, 18:10) Это чт... Apr 1 2011, 18:04          Stanislav_S Цитата(SHUR1K @ Apr 1 2011, 22:04) Прошу ... Apr 2 2011, 12:08           SHUR1K Цитата(Stanislav_S @ Apr 2 2011, 14:08) Х... Apr 3 2011, 14:35            Stanislav_S Цитата(SHUR1K @ Apr 3 2011, 18:35) Нет, н... Apr 3 2011, 15:30 hd44780 У меня и подстроечник и коэффициенты в EEPROM .
... Apr 1 2011, 06:24
2 страниц
1 2 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|