реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Фазометр, измеритель сдвига фазы от -90° до +90°
offerkin
сообщение Apr 18 2016, 18:25
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 18-04-16
Из: Николаев
Пользователь №: 91 357



Доброе время суток уважаемые форумчане! В программирование я новичок,так что сильно не "пинайте" по возможности! rolleyes.gif Есть проект на атмега 128,основную часть которого я осилю сам(внешние прерывания,SPI),а вот вторая часть проекта на данном этапе мне не по зубам,кому не трудно очень прошу помочь с написанием кода,сильно нуждаюсь в Вашей отзывчивости! Суть в следующем-есть два меандра с постоянной частотой от 6 до 15 кГц (выборочно),вот с этих сигналов и нужно будет вычесть фазовый сдвиг от -90° до +90°,индикацией будут служить 15 светодиодов подключенных к 30 портам атмеги 128(мультиплексию не предлагать) 30 портов из-за того,что светодиоды двухцветные с общим катодом,то есть отклонение фазы от 0 до -90° показывает бегущий огонек например зеленого цвета,от 0 до +90° -красного цвета,если 0 то соответственно ничего не горит. Прилагаю схему,к которой и будет подключатся девайс,и комментарий человека,который долгое время "копался" в этой теме-"Фазу измерять надо от -90 до +90 градусов.
Если в аналоговом тракте МД есть синхронные детекторы, то с их выходов X и Y снимаем напряжение при помощи АЦП, усредняем и обрабатываем. Опорной точки нет как таковой (всё уже сделано в СД), мы просто измеряем VDI и длину вектора (амплитуду сигнала) непрерывно в каждый момент времени.
Если прибор с прямой обработкой сигнала, то опорный сигнал - это фаза TX в точке 0 и в точке +90 градусов."


Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
offerkin
сообщение Apr 25 2016, 05:03
Сообщение #2





Группа: Новичок
Сообщений: 4
Регистрация: 18-04-16
Из: Николаев
Пользователь №: 91 357



Есть схема,на стрелочном индикаторе,вместо него можно подключить АЦП,но предел измерений будет в интервале от 0 до +90°,как таким же самым методом можно провести измерение отрицательного диапазона от 0 до -90°?




Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
amiller
сообщение Apr 25 2016, 08:53
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Если я правильно понял Вашу задачу, то:
1. Имеется два сигнала прямоугольной формы и частоты 6 - 15кГц
2. Нужно измерить фазовый сдвиг между ними.

Для решения это задачи я вообще не вижу необходимости в аналоговой обработке.
Можно так:
1. Преобразуете сигналы к логическим уровням.
2. Подаете сигналы на входы одного из таймеров ATMega.
3. По фронту одного из сигналов сбрасываете таймер, по фронту второго, фиксируете время сдвига.
Если есть на этом контроллере аппаратная возможность, то делаете через Capture. Если нет, можно программно, даже через прерывания. Всё равно точность будет не хуже, чем в аналоговом виде.
Go to the top of the page
 
+Quote Post
offerkin
сообщение Apr 25 2016, 09:49
Сообщение #4





Группа: Новичок
Сообщений: 4
Регистрация: 18-04-16
Из: Николаев
Пользователь №: 91 357



a с примером кода сможете мне помочь? Очень нужна помощь!
Go to the top of the page
 
+Quote Post
amiller
сообщение Apr 25 2016, 11:50
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Цитата(offerkin @ Apr 25 2016, 13:49) *
a с примером кода сможете мне помочь? Очень нужна помощь!

С кодом помочь не могу, таких задач не было. Я уже много лет не занимался мегами. Сейчас посмотрел в документации на её таймера, убогое зрелище.
Всего один канал capture, чего явно мало. Вероятно есть возможность объединить и засинхронизировать пару таймеров, но это сложновато будет, если опыт маленький.
Я предлагаю Вам такой вариант:
1. Запустить таймер на максимальной частоте.
2. Сигналы подать на ноги, где можно настроить внешние прерывания по изменению уровня.
3. По прерываниям фиксировать в переменные код счётчика таймера.
4. На основании этих данных в фоне с помощью простой арифметики вычисляете период импульсов и фазовый сдвиг.
Только смотрите, чтобы другие прерывания не мешали измерениям.
Go to the top of the page
 
+Quote Post
SlavaV
сообщение May 8 2016, 05:42
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 100
Регистрация: 13-06-06
Из: г.Улан-Удэ
Пользователь №: 18 024



Можно немного подкорректировать ТЗ нельзя чтобы у оборудования ни чего не горело (светилось) это я про показания при нулевом сдвиге фаз, а то становиться непонятно проводит измерение оборудование или сдохло.

а по коду это в Вашей компетенции, Вы же написали, что осилите сами работу с внешними прерываниями. Это ни что иное как внешнее прерывание первый сигнал подаёте на INT0 запускаете таймер(счетчик) второй сигнал запускаете на T0 фиксируете значение.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01394 секунд с 7
ELECTRONIX ©2004-2016