Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/57: Рейтинг темы: голосов - 57, средняя оценка - 4.67
6 / 6 / 7
Регистрация: 14.04.2010
Сообщений: 101
1

PIC16F877. Измерение потребляемой мощности в сети 220В

22.10.2012, 22:03. Показов 10687. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
прошивка и схема для МК для измеряемой мощности и потребляемой энергии в сети 220В . Индикатор LCD
PIC16F877

ребят, помогите со схемой, я не могу сделать ее(
с прошивкой вроде разобрался
с одной ножки снимаю напряжение
с другой ток, эквивалентый напряжению( это надо сделать из элементов на схеме)
и все это вывожу на LCD

вот что я навоял.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Define ADC_CLOCK = 3  'default value is 3
Define ADC_SAMPLEUS = 10  'default value is 20
Define LCD_BITS = 8  'allowed values are 4 and 8 - the number of data interface lines
Define LCD_DREG = PORTB
Define LCD_DBIT = 0  '0 or 4 for 4-bit interface, ignored for 8-bit interface
Define LCD_RSREG = PORTD
Define LCD_RSBIT = 1
Define LCD_EREG = PORTD
Define LCD_EBIT = 3
Define LCD_RWREG = PORTD  'set to 0 if not used, 0 is default
Define LCD_RWBIT = 2  'set to 0 if not used, 0 is default
Define LCD_COMMANDUS = 2000  'delay after LCDCMDOUT, default value is 5000
Define LCD_DATAUS = 50  'delay after LCDOUT, default value is 100
Define LCD_INITMS = 2  'delay used by LCDINIT, default value is 100
'the last three Define directives set the values suitable for simulation; they should be omitted for a real device
 
Dim an0 As Word
Dim an1 As Word
Dim x As Word
 
TRISA = 0xff  'set all PORTA pins as inputs
ADCON1 = 0  'set all PORTA pins as analog inputs
Lcdinit 1  'initialize LCD module; cursor is blinking
 
loop:
    Adcin 0, an0
    Adcin 1, an1
    x = an0 * an1
    Lcdcmdout LcdClear  'очистим дисплей LCD
    Lcdout "Voltage AN0:"  'текст для строки 1
    Lcdcmdout LcdLine2Home  'курсор в начале строки 2
    Lcdout "Value: ", #an0  'текст для строки 2
    Lcdcmdout LcdClear
    Lcdout "Current AN1:"  'текст для строки 1
    Lcdcmdout LcdLine2Home  'курсор в начале строки 2
    Lcdout "Value: ", #an1  'текст для строки 2
    Lcdcmdout LcdClear
    Lcdout "Power:"  'текст для строки 1
    Lcdcmdout LcdLine2Home  'курсор в начале строки 2
    Lcdout "Value: ", #x  'текст для строки 2
 
    WaitMs 1  'larger value should be used in real device
Goto loop  'loop forever
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2012, 22:03
Ответы с готовыми решениями:

Измерение потребляемой мощности
Добрый день! Возникла задача сделать переходник который сможет мерять потребляемую мощность и...

Изменится ли величина активной мощности, потребляемой установкой?
Изменится ли величина активной мощности, потребляемой установкой, после повышения сosфи цепи с...

Во сколько раз мощность, потребляемая нихромовой проволочкой, больше мощности, потребляемой вольфрамовой
Удельное сопротивление металлов и сплавов линейно зависит от температуры: ρ(T)=ρ0(1+α(T−T0)), ρ0...

Измерение мощности тока
Помогите, pls, измерить мощность протекающего тока по цепи. Имеется несколько цепей. Напряжение...

12
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
23.10.2012, 18:26 2
для измеряемой мощности
какой мощности?
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
23.10.2012, 18:48 3
Честно говоря, не знаю, как это правильно сделать... но можно поставить резистор с очень маленьким сопротивлением и измерять напряжение с одной стороны и с другой. Но для этого напряжение надо вначале выпрямить и пропустить через делитель. Но т.к. диоды и резисторы не идеально одинаковые, поэтому надо обязательно предусмотреть возможность подстройки. Кроме того, падение на резисторе будет очень маленьким и, возможно, придётся поставить операционник, что бы усилить разницу... в этом случае будет достаточно одного канала АЦП на контроллере.
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
23.10.2012, 23:13 4
...все это очень сильно зависит от характера нагрузки, мощности, формы тока и т.п.. Это не такой простой вопрос как может показаться на первый взгляд, ТС. Так что, подробности нужны.
0
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 16
26.10.2012, 07:26 5
Для измерения мощности необходимо одновременно измерить ток и напряжение, т.е. 2 аналого-цифровых преобразователя должны запуститься одновременно.
Если преобразователь один, то будет задержка между измерениями тока и напряжения, равная времени преобразования + время переключения коммутатора. Соответственно измеренная мощность будет неправильной.
Как варианты решения можете применить готовые микросхемы счетчиков электроэнергии, либо поставить 2 внешних АЦП, либо выбрать микроконтроллер с двумя АЦП, например ATxmega или STM32.
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
26.10.2012, 09:17 6
...не мудрил бы, а именно из готовых взял бы.

А вообще, рекомендовал бы к ознакомлению "Что стоит за цифровыми счетчиками электроэнергии" (алгоритм, схема, практика реализации).
0
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
26.10.2012, 22:42 7
В розетке приблизительно синусоидальное напряжение. И приблизительно синусоидальный ток.
Поэтому:
1) Чтобы получить мгновенное значение полной мощности следует строго одновременно измерить мгновенную силу тока и мгновенное напряжение и их перемножить. Однако полная электрическая мощность это скороее всего совсем не та цифра, которую хочется измерить.

Эти синусоиды смещены относительно друг друга во времени. Величина смещения зависит от характера нагрузки. То есть если она более ёмкостная - ток опережает напряжение, если она индуктивная - ток отстаёт от напряжения.
Поэтому:
2) Чтобы получить активную электрическую мощность, следует перемножить одновременно полученные значения тока и напряжения на косинус угла между ними. Для получения реактивной электрической мощности - умножить на синус. (теорию гуглим по фразе "треугольник напряжений"). То есть понадобится ещё анализировать смещение синусоид и вычислять косинус.

3) Можно, конечно, поступить по другому. Вычислить действующее значение тока и действующее значение напряжения, поделив амплитудное значение на коэффициент (для синусоиды это корень из двух), и затем умножать их на косинус для получения активной мощности. Но при этом получим погрешность из-за того, что форма тока сильно отличается от синусоиды из-за присутствия нелинейной нагрузки. То есть этот коэффициент по хорошему нужно вычислять, проанализировав форму тока. Но может быть в данном случае такая точность и не требуется.

Видел вот такую схему розеточного вольтметра:
http://alex-exe.ru/radio/micro... 7seg-plus/
Она под другой МК, но я думаю, можно попытаться адаптировать её к F877

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

Программа из того проекта умножает амплитудное напряжение на коэффициент, то есть его точность зависит от синусоидальности напряжения. Для бытовых нужд сойдёт.

Тут уже советовали воспользоваться специализированными микросхемами для счётчиков. Это был хороший совет. Кстати, у Микрочипа есть совместимые с PIC микросхемы для счётчиков.
1
108 / 16 / 2
Регистрация: 09.03.2011
Сообщений: 37
26.10.2012, 23:54 8
Лучший ответ Сообщение было отмечено как решение

Решение

ИМХО - самый нормальный вариант - это упомянутая выше микросхема счетчик+ваттметр+вольтметр+амперметр. Мерить синусоиду встроенным АЦП - весьма геморно. И ток в таком случае проще измерять при помощи трансформатора тока.
0
98 / 49 / 4
Регистрация: 24.12.2011
Сообщений: 101
27.10.2012, 08:12 9
измерение мощности- математика не такая уж и сложная.
читаем википедию http://ru.wikipedia.org/wiki/%... 1%82%D1%8C
Ацп контроллера оцифровывает сигнал тока https://www.cyberforum.ru/cgi-bin/latex.cgi?i(n\Delta t) и напряжения https://www.cyberforum.ru/cgi-bin/latex.cgi?u(n\Delta t) , далее считает:
Действующее напряжение
https://www.cyberforum.ru/cgi-bin/latex.cgi?U=\sqrt{\frac{1}{N}\sum_{n=0}^{N}{u}^{2}(n\Delta t)
Действующий ток
https://www.cyberforum.ru/cgi-bin/latex.cgi?I=\sqrt{\frac{1}{N}\sum_{n=0}^{N}{i}^{2}(n\Delta t)
Активная мощность
https://www.cyberforum.ru/cgi-bin/latex.cgi?{P}_{A}=\frac{1}{N}\sum_{n=0}^{N}u(n\Delta t)i(n\Delta t)
Полная мощность
https://www.cyberforum.ru/cgi-bin/latex.cgi?{P}_{F}=UI
так как ацп оцифровывает поочередно с двух каналов, то нехватающие данные берутся методом усреднения соседних отсчетов.
при работе контроллера сигналы берутся в отчетах АЦП, а вместо https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{N} берется калибровочный коэффициент( подбирается для того, чтобы результат правильно показывался в вольтах, амперах или чем еще).
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
27.10.2012, 09:32 10
Повторю еще раз для всех предлагающих какие-то выкладки: без характера и параметров нагрузки об этом говорить рано.
0
98 / 49 / 4
Регистрация: 24.12.2011
Сообщений: 101
27.10.2012, 11:02 11
выкладки- закон природы. от характера нагрузки не зависят.
единственная вещь, которая может зависеть- частота дискретизации( чем более корявый ток или напряжение, тем больше частота дискретизации).
0
10231 / 6609 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
27.10.2012, 13:41 12
...примерчик для ТС.
0
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
25.01.2013, 20:08 13
Если ТС ещё интересна тема, то вот на что стоит посмотреть:
MCP3909 и MCP3905A - специализированные микросхемы для измерения энергии и мощности, на них счётчики делают.

Вот любопытный документ на сайте производителя:
"MCP3909 3-Phase Energy Meter Reference Design Using the PIC18F2520"

И вот такой:
IEC Compliant Active-Energy Meter Design Using The MCP3905A/06A

И вот ещё парочка статей на сайте производителя:
http://www.microchip.com/wwwpr... e=en028189
http://www.microchip.com/wwwpr... e=en520376
1
25.01.2013, 20:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2013, 20:08
Помогаю со студенческими работами здесь

Измерение мощности велосипеда
--- актуальный вопрос здесь ---> --- Измерение мощности велосипеда: Встал вопрос...

Измерение реактивной мощности осциллографом
Даны источник тока, нагрузка (Zн=a+jb) и осциллограф. Нужно собрать схему для измерения реактивной...

Измерение мощности трехфазного двигателя
Здравствуйте. Двигателя 3-ф асинхронный. Схема треугольник 220/380, Р=80 Вт. Подключил фазометр и...

Измерение активной и реактивной мощности?
Подскажите пожалуйста зачем нужны при измерении активной или реактивной мощности эти...

Мониторинг напряжения в сети ~220В
Здравствуйте. Есть необходимость отслеживать наличие напряжения в сети. Использовался Этот датчик....

Детектор обрезанного синуса сети 220в
Ребят привет. Предположим вся электросеть квартиры подключена через симистор. Не берём во внимание...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru