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

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

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

Студворк — интернет-сервис помощи студентам
прошивка и схема для МК для измеряемой мощности и потребляемой энергии в сети 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)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2012, 22:03
Ответы с готовыми решениями:

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

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

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

12
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
23.10.2012, 18:26
для измеряемой мощности
какой мощности?
0
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
23.10.2012, 18:48
Честно говоря, не знаю, как это правильно сделать... но можно поставить резистор с очень маленьким сопротивлением и измерять напряжение с одной стороны и с другой. Но для этого напряжение надо вначале выпрямить и пропустить через делитель. Но т.к. диоды и резисторы не идеально одинаковые, поэтому надо обязательно предусмотреть возможность подстройки. Кроме того, падение на резисторе будет очень маленьким и, возможно, придётся поставить операционник, что бы усилить разницу... в этом случае будет достаточно одного канала АЦП на контроллере.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
23.10.2012, 23:13
...все это очень сильно зависит от характера нагрузки, мощности, формы тока и т.п.. Это не такой простой вопрос как может показаться на первый взгляд, ТС. Так что, подробности нужны.
0
1 / 1 / 0
Регистрация: 06.05.2012
Сообщений: 16
26.10.2012, 07:26
Для измерения мощности необходимо одновременно измерить ток и напряжение, т.е. 2 аналого-цифровых преобразователя должны запуститься одновременно.
Если преобразователь один, то будет задержка между измерениями тока и напряжения, равная времени преобразования + время переключения коммутатора. Соответственно измеренная мощность будет неправильной.
Как варианты решения можете применить готовые микросхемы счетчиков электроэнергии, либо поставить 2 внешних АЦП, либо выбрать микроконтроллер с двумя АЦП, например ATxmega или STM32.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
26.10.2012, 09:17
...не мудрил бы, а именно из готовых взял бы.

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

Решение

ИМХО - самый нормальный вариант - это упомянутая выше микросхема счетчик+ваттметр+вольтметр+амперметр. Мерить синусоиду встроенным АЦП - весьма геморно. И ток в таком случае проще измерять при помощи трансформатора тока.
0
 Аватар для cybersonner
98 / 49 / 4
Регистрация: 24.12.2011
Сообщений: 101
27.10.2012, 08:12
измерение мощности- математика не такая уж и сложная.
читаем википедию 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
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
27.10.2012, 09:32
Повторю еще раз для всех предлагающих какие-то выкладки: без характера и параметров нагрузки об этом говорить рано.
0
 Аватар для cybersonner
98 / 49 / 4
Регистрация: 24.12.2011
Сообщений: 101
27.10.2012, 11:02
выкладки- закон природы. от характера нагрузки не зависят.
единственная вещь, которая может зависеть- частота дискретизации( чем более корявый ток или напряжение, тем больше частота дискретизации).
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
27.10.2012, 13:41
...примерчик для ТС.
0
 Аватар для ksk
624 / 495 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
25.01.2013, 20:08
Если ТС ещё интересна тема, то вот на что стоит посмотреть:
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2013, 20:08
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru