16.12.2015, 12:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Имерение переменного напряжения.
Сообщение от Alex9797
|
Этот фрагмент текста говорит об измерении атмегой или тестером?
|
Это измерение атмегой. Кстати было переполнение в переменной unsigned int. Там в коде умножаю на 0.1 чтобы от этого уйти... стало стабильнее. Разброс +-5 вольт...
|
|
|
|
16.12.2015, 13:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Имерение переменного напряжения.
Сообщение от miwutka
|
Обязательно синхронизироваться с сетью для измерения напряжения?
|
Сообщение от miwutka
|
Вот и думаю нужно синхронизацию делать для измерений или нет? Или так должно сойти...
|
20 замеров на период - это очень мало, если не синхронизировать, даже если мерять чистый синус. А для огрызков синуса и синхронизация не спасет, ведь момент обрезания синусоиды может плавать между моментами измерений, и измеритель этого не заметит. И максимальная погрешность будет при угле обрезания около 90 градусов.
Для решения этой проблемы давно уже надо было прислушаться к советам злобного и вредного:
Сообщение от индюк
|
делаешь 200 замеров за период
|
и точность повысится, даже без синхронизации.
|
|
|
|
16.12.2015, 14:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Имерение переменного напряжения.
у меня 4 канала ацп. Если я делаю 100 измерений за период 86% памяти занято. При 100 измерениях и при 50 и при 20 одно и тоже показывает. примерно 5% прыгает индикатор. Подскажите как интегрировать правильно. Оставил 50 измерений. Но все что ниже нуля мк видит же как 0. Может нужно делать дифф ацп, а не обычным?
|
|
|
|
16.12.2015, 14:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Имерение переменного напряжения.
Чтобы память не ело нужно просто каждое полученное значение от АЦП перемножать на себя и складывать в сумматор. А по истечению времени измерения поделить сумму на количество измерений и извлечь корень, вот и все СКЗ.
|
|
|
Сказали "Спасибо" alvadep
|
|
|
16.12.2015, 14:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Имерение переменного напряжения.
Сообщение от alvadep
|
Чтобы память не ело нужно просто каждое полученное значение от АЦП перемножать на себя и складывать в сумматор
|
Я подозреваю, что на всю эту красоту у него просто не успевает атмега.
Поэтому он вынужден сначала просто накапливать выборки в памяти, после чего не спеша делать вычисления.
|
|
|
|
16.12.2015, 15:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Имерение переменного напряжения.
Если мега не успевает делать умножение (заметьте аппаратное) и накапливать сумму в переменной, то тогда действительно ОЙ!
А вот поделить и извлечь корень уже можно и не спеша.
|
|
|
|
16.12.2015, 15:17
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Имерение переменного напряжения.
сделал чтобы память не ело
PHP код:
|
ISR(ADC_vect) { ADC1_temp=ADCW; adc_data[input_index]+=ADC1_temp*0.1*ADC1_temp*0.1; if (++input_index › (LAST_ADC_INPUT-FIRST_ADC_INPUT)) input_index=0; ADMUX=(FIRST_ADC_INPUT | ADC_VREF_TYPE)+input_index; i++; if (i==200) {i=0; start_math=1;}; }
в майне
if (start_math==1) { start_math=0; ADC1=sqrt(adc_data[1]*0.02)*10 ; adc_data[1]=0; };
|
суть осталась таже. при 216 вольт в сети показывает 213-222..... Теперь надо усреднить. Наверно каждые 10 суммировать и делить на 10 и хватит...?
8 МГц Мк работает. Программа пустая. Отображает на 7-сегментном индикаторе напряжение. Пока больше ничего нету. Всего хватает. зато киллограмм памяти секономил. Спасибо!
Последний раз редактировалось miwutka; 16.12.2015 в 15:20.
|
|
|
|
16.12.2015, 15:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Имерение переменного напряжения.
Сообщение от miwutka
|
суть осталась таже
|
Какая суть? Какое количество измерений на период? Если оно осталось прежним, и не увеличилось, то какого изменения сути мы ждали?
Насчет усреднения - да, это нужно. Конечно, желательно вычислять скользящее среднее. Чтобы мега не гуляла без дела.
|
|
|
|
16.12.2015, 15:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Имерение переменного напряжения.
Сообщение от Alex9797
|
желательно вычислять скользящее среднее
|
Подскажите как его правильно считать? Измерений у меня 50 на период. сейчас попробую сделать 200 на период но не дуаю что чтото измениться.... Переменная флоат в которую я суммирую квадраты измерений. Надеюсь она не переполниться.
Последний раз редактировалось miwutka; 16.12.2015 в 15:42.
|
|
|
|
16.12.2015, 15:53
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Имерение переменного напряжения.
сделал 250 измерений на канал за период 20 мс. Всё тоже самое прыгает индикация примерно 5% вверх-вниз. Наверно однозначно надо среднее скользящее вычислять. Подскажите плиз.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:21.
|
|