[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Ваттметр
senyДата: Воскресенье, 24.06.2012, 16:31 | Сообщение # 1
Группа: Проверенные
Сообщений: 45

Статус: Offline
В состав своего терморегулятора для дачи решил приспособить Ваттметр.
На сайте РадиоКот эта тема обсуждалась очень плотно НО программа у них написана на СИ, камень там мега8 и самый большой минус необходимо вскрывать счетчик и менять кварц.
Многие современные счетчики в частности Меркурий выполнены не на ADE77xx а на не кварцованных микросхемах так что покупать счетчики, курочить их и искать ADE мне не хотелось. Зато на многих счетчиках есть телеметрический выход.
Вот моя попытка сделать Ваттметр на attiny2313 не вскрывая пломб счетчика.
Дано:
Меркурий 2001.5 (3200 импульсов на кВт*ч.), attiny2313, 8 мГц кварц.
Code

$regfile = "2313def.dat"
$crystal = 8000000
$baud = 19200

Config Timer1 = Timer , Prescale = 64 , Capture Edge = Rising
Config Portd.6 = Input                    'прерывания
Config Portb.2 = Output                    'светодиод

Open "comb.0:9600,8,n,1" For Output As #1
Open "comb.1:9600,8,n,1" For Input As #2

'Так как предделитель 64 то 64/8000000*65535=0.52428 переполнений в секунду
'тобиш приблизительно 2 раза 2 Гц.
Dim Timercounter As Word                    '
Dim Period As Single
Dim Secund As Single
Dim Milisec As Single
Dim Flag As Bit
Dim Watt As Single
Dim F As Integer

'T=(1/F)*n тут Т-константа, n-предделитель, F-частота работы камня
'T=(1/8000000)*64=0.000008
'каждое значение таймера1 = 0.000008 сек.
Const T = 0.000008

Flag = 0
On Capture1 Zaxvat

Timercounter = 0
Flag = 0
Waitms 50
'разрешаем прерывания
Enable Interrupts
Enable Capture1

Set Portb.2

Do                    ' главный цикл программы

  '0.52428  время переполнения таймера
  '62500 0.5 sek
If Timer1 = 65535 Then

'так как он переполняется каждые 0.52428 секунды то их и складываем
Secund = Secund + 0.52428

If Secund > 255 Then Secund = 0
End If

If Flag = 1 Then

' определяем период * на коэффициент 1/8000000*64= 0,000008 примерное
'время в секундах на один тик таймера
    Period = Timercounter * T
   Milisec = Period + Milisec

    '************************
    Watt = 3600 / Milisec                    'импульсов в час                    '
    Watt = Watt * 1000                    ' импульсы на 1000 ватт
    Watt = Watt / 3200                    '  колличество ватт
     F = Watt
Print #1 , "Watt :"
Print #1 , F
Flag = 0
'Secund = 0

End If
Loop

'отрабатывает по прерыванию portd.6
Zaxvat:

  Timercounter = Timer1
  Milisec = Secund                    ' копируем значение таймера в переменную
  Flag = 1
  Timer1 = 0
  Secund = 0                    ' обнуляем таймер
Return

Расчет таймера обсуждался в разделе этого форума avrproject.ru
Проверить точность показаний я не могу т.к. на своем тестере канал измерения 10А я спалил уже давно.А на приборы которые можно подключить для проверки особой надежды нет. Так вот Лампа накаливания 100 Вт. фирмы филипс при подключении показывает 90-91 Вт. более мощные нагрузки на которых написано 2000-2200 Вт показывают в районе 1700 Вт. Зато мой старинный паяльник мощность 70 Вт. четко паказывает 70Вт. Эталонной нагрузки у меня нет.
Так вот если кому интересно и есть возможность потестировать буду очень признателен.
P.S
Не знаю на какой файлообменник выложить фотки и схемки ибо ни разу не пользовался.


 
exersizzeДата: Воскресенье, 24.06.2012, 21:00 | Сообщение # 2
Группа: Администраторы
Сообщений: 723

Статус: Offline
А можно ссылку на радиокот с темой обсуждения ваттметра, чтоб было видно откуда лапы растут smile

Файлы и картинки можно загружать прям сюда, над кнопкой "Добавить ответ" есть функция прикрепить файл. После выбора файла появляется код, который нужно вставить в текст сообщения.


 
senyДата: Воскресенье, 24.06.2012, 21:31 | Сообщение # 3
Группа: Проверенные
Сообщений: 45

Статус: Offline
Вот ссылка на кота. РадиоКот Схемки позже доберусь до рабочего компа.

 
niko-layДата: Вторник, 26.06.2012, 11:50 | Сообщение # 4
Группа: Проверенные
Сообщений: 19

Статус: Offline
А что делает микроконтроллер в этом проекте - следит за частотой мигания светодиода в счетчике и просчитывать потребление по известной зависимости "частота мигания"/"потребление". Я правильно понимаю?

 
senyДата: Вторник, 26.06.2012, 15:38 | Сообщение # 5
Группа: Проверенные
Сообщений: 45

Статус: Offline
Да абсолютно правильно. В счетчике есть телеметрический выход ,и на нем кстати светодиод висит, и через оптопару на мк идут импульсы. В паспорте описано сколько импульсов на кВт*ч. В моем случае 3200. Мк их принимает а таймер считает сколько времени проходит между импульсами.С помощью не сложных вычислений считается мощность. В общих чертах все.



Сообщение отредактировал seny - Вторник, 26.06.2012, 15:41
 
senyДата: Четверг, 15.11.2012, 00:35 | Сообщение # 6
Группа: Проверенные
Сообщений: 45

Статус: Offline
Появилась возможность проверить работу и сравнить с промышленной установкой. В принципе показывает правильно но без десятых долей ватт.

 
  • Страница 1 из 1
  • 1
Поиск: