| AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
Вольтметр сетевого напряжения
26.12.2013, 23:45
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Очень велика ёмкость конденсатора в измерительном выпрямителе, по сути пиковый детектор. Кстати, а зачем там вообще выпрямитель?
Делайте несколько десятков измерений за период, да считайте действующее значение программно и не будет никакой инерционности.
Практически аппаратная динамичка лежит тут поблизости, а Вы её в основной цикл вывели... Про прерывания слышали?
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо omercury за это сообщение:
|
|
|
27.12.2013, 10:31
|
|
|
Частый гость
Регистрация: 11.12.2013
Сообщений: 18
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Да просто если емкость менее 100u, стабильных значений получить не получается совсем, хоть при 255, хоть при 4000 отсчетов (к слову, почему - я так и не понял). За ссылку спасибо, почитаю. А с прерываниями не связывался - думал для такой мелочной задачи не нужно такое усложнение.
|
|
|
|
27.12.2013, 10:37
|
|
|
Гражданин KAZUS.RUN
Регистрация: 29.12.2012
Адрес: Питер
Сообщений: 980
Сказал спасибо: 131
Сказали Спасибо 230 раз(а) в 157 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Сообщение от Corden
|
|
Т.к. индикация динамическая, любая задержка в цикле счетном или после него соответственно тормозит на это же время и работу индикатора
|
Вложите свою индикацию в цикл раз на... много. Например на тысячу. Что-то типа такого:
|
Код:
|
for (i=0; i‹1000;i++)
{
GPIO_Write(GPIOB,digits[volt-volt/10*10]);
...
...
delay(100);
} |
А вообще - рекомендую почитать как пользоваться таймерами.
|
|
|
|
27.12.2013, 14:26
|
|
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Сообщение от Corden
|
|
стабильных значений получить не получается совсем
|
Входных цепей в инете описано множество (даже не собираюсь разводить полемику), конденсатор стабильности не добавляет...
Первое. При измерении нужно делать синхронизацию, привязываясь к полупериодам, иначе измерения плывут (сколько бы замеров не делалось), например здесь нет синхронизации. NO_sin.rar
Второе. Вот так будут отображаться показания при синхронизации. Также, как и в реалии наблюдается дрожание показаний. NO_integ.rar
Третье. Способов устранения дрожания моного, от простого суммирования за интервал, до такого же простого как "накапливающий интегратор" https://kazus.run/forums/showpost.ph...1&postcount=11, а сложности здесь и не нужны... Sin_220.rar
Однако динамическую индикацию нужно написать правильно, даже если она в цикле...
|
|
|
|
Сказали "Спасибо" mimuh64
|
|
|
27.12.2013, 15:57
|
|
|
Частый гость
Регистрация: 11.12.2013
Сообщений: 18
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Хм, а что не так с динамической индикацией?
Записал-включил-погасил-повторил для следующего разряда
Последний раз редактировалось Corden; 27.12.2013 в 16:15.
|
|
|
|
01.01.2014, 16:18
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Сообщение от Corden
|
|
Хм, а что не так с динамической индикацией?
|
желательно обеспечить СТАБИЛЬНОЕ ВРЕМЯ между повторами, исключить разнояркость разрядов.
Сообщение от Corden
|
|
стабильных значений получить не получается совсем
|
Переменое напряжение завести на вход АЦП через делитель. Конденсатор можно и не ставить.
Измерение в периоде:
- ожидаем АЦП = 0 (ловим отрицательный период обрезаный до 0.
- ожидаем АЦП !=0 (ловим начало положительного периода).
- измеряем 32/64/128 с периодом (10 милисек/ 32/64/128, смотря на скоко хватит скорострельности МК и загружености ядра другими задачами) и все значения суммируем.
- вычисляем среднее в одном периоде, и потом усредняем за 10-20 периодов.
Ещё можно массив на 50-100 периодов, сначала попарно отсекать МАХ и МИН значения в массиве, сократив количество значений в массиве в 2 раза, а потом оставшиеся усреднить, тогда показания стоят как вкопаные.
Ну, или поставьте ИС детектора от Analog Devices и не парьте себе мозги, если не хватает )))
Сообщение от Corden
|
|
А с прерываниями не связывался.
|
абсолютно всё пишу в прерываниях. легко распределять время между задачами.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
Последний раз редактировалось picavr; 01.01.2014 в 16:38.
|
|
|
|
10.01.2014, 16:19
|
|
|
Частый гость
Регистрация: 11.12.2013
Сообщений: 18
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Сообщение от picavr
|
|
не парьте себе мозги, если не хватает )))
|
Не не не, не спортивно ведь. В этом весь и смысл - парить мозги чтобы совсем не высохли. Печально, конечно, что в студенческие годы этим не занимался, подусохли слегка. Но тем полезнее будет..
По самоделке - таки Вы правы, без отсекания цельных периодов ничего не получится вменяемого, даже интегратор в примере выше бестолку, т.к. значения без привязки к периоду получаются как-попало. Хотел побыстренькому, думал диодами помигал и уже постиг дзен. Ан-нет, придется таки копать глубоко.
|
|
|
|
10.01.2014, 17:05
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Сообщение от picavr
|
- ожидаем АЦП = 0 (ловим отрицательный период обрезаный до 0.
- ожидаем АЦП !=0 (ловим начало положительного периода).
|
А чем не устраивает обычно предлагаемая "zero cross detection" на прерываниях? И не придётся тратить ресурсы процессора на ожидание перехода через ноль...
Один из примеров:
AVR182: Zero Cross Detector
__________________
There's always more than one way to skin a cat.
|
|
|
|
Сказали "Спасибо" tempora
|
|
|
10.01.2014, 17:45
|
|
|
Частый гость
Регистрация: 11.12.2013
Сообщений: 18
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
О как, это интересный момент, про защитные диоды на кристалле в качестве выпрямителя как-то и не думал, спасибо
|
|
|
|
10.01.2014, 18:43
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Вольтметр сетевого напряжения
Только не "выпрямителя". И кстати, в некоторых случаях бывает полезно развязать схему с м/к и сетевые 220В оптроном.
__________________
There's always more than one way to skin a cat.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:32.
|
|