Как Atmega16-й можно мерять последовательность фаз ?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

Всем доброго времени суток !
Скажите плз. может кто-то сталкивался - как можно МК Atmega16 мерять последовательность фаз ?
Если это можно выполнить программным путём, то подскажите плз как!
или есть у кого-то примерчик . . .
Заранее благодарин всем !
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

ARV писал(а):последовательность каких фаз, точнее фаз чего вы собрались мерить?! растолкуйте...
Ага ! Ща соберусь с мыслями и попробую растолковать !

Подходит питание 380 вольт, т.е. три фазы (А,В,С) по 220 вольт.

Вот мне нужно следить за последовательностью перехода каждой фазы через ноль.

сначала А перешла через ноль
потом В перешла через ноль
потом С перешла через ноль и по кругу.
и если происходит сбой в чередовании фаз мне это нужно отловить !

Если не очень объяснил то постараюсь нарисовать )

Если это возможно выполнить программно, то я просто не пойму как.
Я меряю напряжение на этих трёх фазах этим же МК Atmega16
а вот как переход через ноль отловить не пойму.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 429
Зарегистрирован: Вс июн 29, 2008 13:53:03

Сообщение Илья79 »

Вот вы уважаемый kybertech сами почти ответили на свой вопрос:
1)Берем за опорную фазу А (ждем пока фаза А не перейдет через ноль)
2) За фазой А переходит через ноль фаза В, то это прямая последовательность чередования фаз
3) за фазой А переходит следом фаза С то обратная последовательность
П.С. как фазу назовешь так она и поплывет :))
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

Илья79 писал(а):Вот вы уважаемый kybertech сами почти ответили на свой вопрос:
1)Берем за опорную фазу А (ждем пока фаза А не перейдет через ноль)
2) За фазой А переходит через ноль фаза В, то это прямая последовательность чередования фаз
3) за фазой А переходит следом фаза С то обратная последовательность
П.С. как фазу назовешь так она и поплывет :))
А как же программно реализовать это ?
В какой переменной мне смотреть что фаза а к примеру перешла через 0 ?
Контактная информация:
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 429
Зарегистрирован: Вс июн 29, 2008 13:53:03

Сообщение Илья79 »

Для этого надо знать, на каком языке ты хотел бы писать программу, какую схему подключения используешь
И вообще кто я такой :)
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

Илья79 писал(а):Для этого надо знать, на каком языке ты хотел бы писать программу, какую схему подключения используешь
И вообще кто я такой :)
МК : Atmega16
писать хочу на языке C, хотя пойму пример на любом.
Вложения
Безымянный.JPG
А вот и схема подключения
(18.53 КБ) 916 скачиваний
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 429
Зарегистрирован: Вс июн 29, 2008 13:53:03

Сообщение Илья79 »

вот что получилось, код не очень, как получился :))


while (1) // Основной цикл
{
if (PINA.0==0) //переход фазы А через ноль
{while (1) //цикл опроса
{if (PINA.1==0) //Переход фазы В через ноль
{PORTB.3=1; //прямая последовательность зажигаем светодиод
break; //выпрыгиваем из цикла
}
{if (PINA.2==0) //переход фазы В через ноль
{PORTB.3=0; //обратная последовательность гасим светодиод
break; //выпрыгиваем из цикла
}
}
}


}
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

Илья79 писал(а):вот что получилось, код не очень, как получился :))


while (1) // Основной цикл
{
if (PINA.0==0) //переход фазы А через ноль
{while (1) //цикл опроса
{if (PINA.1==0) //Переход фазы В через ноль
{PORTB.3=1; //прямая последовательность зажигаем светодиод
break; //выпрыгиваем из цикла
}
{if (PINA.2==0) //переход фазы В через ноль
{PORTB.3=0; //обратная последовательность гасим светодиод
break; //выпрыгиваем из цикла
}
}
}


}
C таким решением я согласен ! Но на тех лапах я ещё меряю напряжение ! разве можно одновременно и мерять напряжение и смотреть не ноль ли там ?

Вот мне только что посоветовали как - то мерять полуволну или как её там ...

Если с измерением полуволны не получится придётся ещё циплять делители на другие дапы контроллера и там смотреть !
Но вот хотелось бы всё сделать так как нада, что бы и мерять напрядение и смотреть переход через 0.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4517
Зарегистрирован: Пн апр 03, 2006 11:43:25
Откуда: Санкт - Петербург

Сообщение Aheir »

Напряжение измеряется постоянно?
В конце концов, можно подать тот же сигнал еще и на другие ноги контроллера, на которых отлавливать только переход через 0.
Оптимизм х (Опыт + Знания) = const
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

Aheir писал(а):Напряжение измеряется постоянно?
В конце концов, можно подать тот же сигнал еще и на другие ноги контроллера, на которых отлавливать только переход через 0.
в том то и дело, напряжение переменное но я ставлвлю после делителя конденсатор для сглаживания и напряжение меряется постоянно.

Если убрать этот конденсатор то значение начнёт прыгать но при этом можно измерять его каким-то другим способом - вернее как мне сказали мерять эту самую половолну потом что-то на что-то делить и в результате получиться нормальное значение напряжения и ко всему этому можно отлавливать одновременно переход через ноль.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua

Сообщение NiTr0 »

Измерить пиковое напряжение, поделить на 1.4- получите грубо RMS.
Или суммировать все отсчеты за 1 (а лучше 2, 3, 4 или больше) периодов, умножить потом на 2 (т.к. половина периода выпадет) и поделить на кол-во отсчетов - получите настоящее RMS.
А еще можно подтягивать "ноль" делителей к половине опорного напряжения, выкинуть диоды и в итоге измерять настоящее RMS.
Определить переход через ноль - тоже не проблема будет по показаниям АЦП.
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

NiTr0 писал(а):Измерить пиковое напряжение, поделить на 1.4- получите грубо RMS.
Или суммировать все отсчеты за 1 (а лучше 2, 3, 4 или больше) периодов, умножить потом на 2 (т.к. половина периода выпадет) и поделить на кол-во отсчетов - получите настоящее RMS.
А еще можно подтягивать "ноль" делителей к половине опорного напряжения, выкинуть диоды и в итоге измерять настоящее RMS.
Определить переход через ноль - тоже не проблема будет по показаниям АЦП.

Спасибо огромное вот бы ещё наглядно взглянуть на это всё что бы понять полностью !

А подскажите плз. сколько нужно измерять раз одну полуволну ? я так понимаю чем больше тем лутше или я не прав ? (для того что бы потом всё сложить и т.д.)

Сейчас нарисую эту синусоиду и буду думать дальше.
Прошу не теряйтесь я подумаю и выложу то что надумал в картинках ))).

Ещё раз огромное спасибо.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 11169
Зарегистрирован: Чт окт 27, 2005 18:50:07
Откуда: из мест не столь отдалённых

Сообщение Сэр Мурр »

Извините за вмешательство.
Никогда не слыхал, чтоб во время работы в трёхфазной цепи сменилось чередование фаз. Для этого нужно менять местами провода в сети, или же- это аварийная ситуация на подающей линии, вроде перехлёста проводов и срабатывания защиты.
Короче, первый раз слышу о такой проблеме.
Модератор
Аватара пользователя
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Сообщение МитяРа »

Сэр Мурр.. к сожалению такое часто бывает..
Для слежения за этим есть устройства "реле контроля фаз" называется..
А происходит это в основном из-за "ошибок персонала".. при ремонте не туда посадили или ещё какая нить фигня..
..
Так вот по сути - предлагаю разделить "мухи отдельно, котлеты отдельно"..
Ставятся три детектора перехода через 0, например на оптроне, а напряжения по фазам меряется через другие выводы..
И не надо ничего совмещать - гемора меньше... :)
Друг Кота
Аватара пользователя
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua

Сообщение NiTr0 »

kybertech писал(а):Спасибо огромное вот бы ещё наглядно взглянуть на это всё что бы понять полностью !
А что смотреть? В вашей схеме выкидываете делители, делаете внешний ИОН (моно даже 5В питающих заюзать, только о стабильности позаботиться), от него - делитель скажем 2 резистора по 4.7к и от средней точки кондер эдак 100-1000 мкф на землю...
Итого при 0 на входе имеем на выходе АЦП 2^10-1; при -Umax.ампл - имеем 0 (при правильно подобранном делителе), при Umax.ампл - 2^11-1.
Делитель рассчитывать так, чтобы был запас по пиковому напряжению (иначе - показания будут неточными), к примеру для 380В - номинальное амплитудное значение будет 220 (фазовое напряжение)*1.41 (корень из 2) = 310В, с запасом стоит взять 400В (283В фазовое)
kybertech писал(а):А подскажите плз. сколько нужно измерять раз одну полуволну ? я так понимаю чем больше тем лутше или я не прав ? (для того что бы потом всё сложить и т.д.)
Чем больше, тем лучше.
Имея АЦП 10бит, 10й бит будет как знак (от показаний АЦП будем отнимать 2^10-1) - итого 9 значащих бит (при отрицательном числе - оно инвертируется), и работая с 16бит переменными получаем до 128 отсчетов в переменной без ее переполнения. Имея 32 отсчета на период (что вполне достаточно) - можно спокойно 4 периода анализировать.

А насчет совмещения - зачем усложнять обвязку, если будет измеряться мгновеное значение напряжения? Определить переход через 0 - элементарно в таком случае...
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

NiTr0
На данный момент у меня делитель такой как на рисунке прикреплённом, а для того чтобы мне мерять полуволну мне нужно выкинуть оттуда конденсаторы, правильно я понимаю ?
И тогда измеряя к примеру 1000 раз в секкунду я буду получать значение от 0 до Umax и опять до 0. потом из полученых значений получаю максимальное и дальше уже делю, умножаю его и тд. и тп. и тр. и др. и вместе с измерениями я программно могу отлавливать переход через ноль.

Я правильно понимаю ?
Может что-то нужно исправить в моём делители для такого варианта измерения ?
Вложения
Делитель.JPG
Делитель
(15.68 КБ) 860 скачиваний
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3051
Зарегистрирован: Пт авг 10, 2007 12:49:55
Откуда: kr.ua

Сообщение NiTr0 »

kybertech писал(а): потом из полученых значений получаю максимальное и дальше уже делю, умножаю его и тд. и тп. и тр. и др. и вместе с измерениями я программно могу отлавливать переход через ноль.
Только лучше суммировать все измерения за полуволну, после - получить их среднее арифметическое. Т.к. пиковое значение хорошо для синуса, но совсем не годится при наличии в сети помех.
А еще лучше - суммировать за весь период ;)
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

NiTr0 писал(а): Только лучше суммировать все измерения за полуволну, после - получить их среднее арифметическое. Т.к. пиковое значение хорошо для синуса, но совсем не годится при наличии в сети помех.
А еще лучше - суммировать за весь период ;)
В прикреплённом файле нрисовал синусоиду и коментарии.

Судя по рисунку я меряю значение за полуволну та что идёт от 0 до 255 (от 0 до +5 вольт) полчаю Х-количество измерений и Y-сумму этих измерений, и потом нахожу среднее.
Y / X = среднее значение. а что мне потом с ним делать я не могу понять !
вот я понимаю так - у меня 255 это приравнивается к +5 вольтам, а 0 к 0 вольтам. А если я получаю среднее значений к примеру 127 как я буду знать чо у меня максимальное было 5 вольт. ? или нада ещё какие-то операции математические производить ?

И на счёт делителя - такой делитель будет пригоден для таких замеров ?
Вложения
123.jpg
Синусоида
(11.71 КБ) 786 скачиваний
Контактная информация:
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 170
Зарегистрирован: Пт окт 31, 2008 02:54:28
Откуда: Украина

Сообщение kybertech »

NiTr0 писал(а): Только лучше суммировать все измерения за полуволну, после - получить их среднее арифметическое. Т.к. пиковое значение хорошо для синуса, но совсем не годится при наличии в сети помех.
А еще лучше - суммировать за весь период ;)
В прикреплённом файле нрисовал синусоиду и коментарии.

Судя по рисунку я меряю значение за полуволну та что идёт от 0 до 255 (от 0 до +5 вольт) полчаю Х-количество измерений и Y-сумму этих измерений, и потом нахожу среднее.
Y / X = среднее значение. а что мне потом с ним делать я не могу понять !
вот я понимаю так - у меня 255 это приравнивается к +5 вольтам, а 0 к 0 вольтам. А если я получаю среднее значений к примеру 127 как я буду знать чо у меня максимальное было 5 вольт. ? или нада ещё какие-то операции математические производить ?

И на счёт делителя - такой делитель будет пригоден для таких замеров ?
Вложения
123.jpg
Синусоида
(11.71 КБ) 723 скачивания
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»