3хразряндный семисегментник, работающий как частотомер
3хразряндный семисегментник, работающий как частотомер
Добрый день.В общем навыков программирования на ассимблере у меня нет, но задача есть.
Разработать устройство для отображения на 3-разрядном семисегментном индикаторе информацию о частоте входного сигнала от 45.0 Гц до 65.0 Гц с разрешением 0.1 Гц.Форма сигнала синусоидальная с размахом от 1 до 4 вольт (постоянное смещение 2.5 в). Использовать динамическое управление.
В общем схему и номиналы резисторов мне изобразить удалось.Вопрос в том как написать алгоритм программы, по нему я думаю не очень сложно написать саму программу.Проблема состоит также в том что я не совсем понимаю сам принцип работы частотомера.как я понял значение частты мы получаем из выражения F=1/T.А сам период Т вычисляется как N*t, где t-время одного импульса а N-количество эти самых импульсов.В даташите на PIC18F2520 я вычитал что t=Fosc/делитель, я выбрал делитель 4 а Fosc 4 МГц, следовательно импульс равен 1 мкс, а вот с N проблема, чтобы их посчитать нужен период синусоиды моей не зная частоты, я прикинул что можно по положительному перепаду посчитать, т.е когда она значение 2.5 В первый раз пересекает в + и в конце аналогично, но как это реализовать не понимаю
Разработать устройство для отображения на 3-разрядном семисегментном индикаторе информацию о частоте входного сигнала от 45.0 Гц до 65.0 Гц с разрешением 0.1 Гц.Форма сигнала синусоидальная с размахом от 1 до 4 вольт (постоянное смещение 2.5 в). Использовать динамическое управление.
В общем схему и номиналы резисторов мне изобразить удалось.Вопрос в том как написать алгоритм программы, по нему я думаю не очень сложно написать саму программу.Проблема состоит также в том что я не совсем понимаю сам принцип работы частотомера.как я понял значение частты мы получаем из выражения F=1/T.А сам период Т вычисляется как N*t, где t-время одного импульса а N-количество эти самых импульсов.В даташите на PIC18F2520 я вычитал что t=Fosc/делитель, я выбрал делитель 4 а Fosc 4 МГц, следовательно импульс равен 1 мкс, а вот с N проблема, чтобы их посчитать нужен период синусоиды моей не зная частоты, я прикинул что можно по положительному перепаду посчитать, т.е когда она значение 2.5 В первый раз пересекает в + и в конце аналогично, но как это реализовать не понимаю
- Реклама
- АлександрЛ
- Друг Кота
- Сообщения: 43896
- Зарегистрирован: Пн ноя 30, 2009 03:00:01
- Откуда: Нерезиновая
Re: 3хразряндный семисегментник, работающий как частотомер
На самом деле- всё очень просто-
Синусоидальный сигнал при помощи формирователя превращаете в прямоугольный, если время счета 10 секунд вас устраивает- то тупо считаете в течении 10 секунд количество входных импульсов, и потом выводите на индикатор.
зы.. "моя любимая схема формирователя"- вот такая:

Слева внизу- на LM393..
Про частотомер есть ветки:
http://radiokot.ru/forum/viewtopic.php? ... 87&start=0
и
http://radiokot.ru/forum/viewtopic.php?f=57&t=117804
В исходной схеме сама программа написана на Бейсике, и где- то по ссылкам- выложена в открытом виде.
Правда, частотомер не на ПИК-е, а на Тини2313..
Синусоидальный сигнал при помощи формирователя превращаете в прямоугольный, если время счета 10 секунд вас устраивает- то тупо считаете в течении 10 секунд количество входных импульсов, и потом выводите на индикатор.
зы.. "моя любимая схема формирователя"- вот такая:
Слева внизу- на LM393..
Про частотомер есть ветки:
http://radiokot.ru/forum/viewtopic.php? ... 87&start=0
и
http://radiokot.ru/forum/viewtopic.php?f=57&t=117804
В исходной схеме сама программа написана на Бейсике, и где- то по ссылкам- выложена в открытом виде.
Правда, частотомер не на ПИК-е, а на Тини2313..
Re: 3хразряндный семисегментник, работающий как частотомер
может так и можно, проблема в том , что я не знаю сколько импульсов подавать нужно, и плюс если добавлять преобразователь как его на PIC закодировать
- АлександрЛ
- Друг Кота
- Сообщения: 43896
- Зарегистрирован: Пн ноя 30, 2009 03:00:01
- Откуда: Нерезиновая
Re: 3хразряндный семисегментник, работающий как частотомер
Импульсы нужно не подавать, а СЧИТАТЬ..akaGunner писал(а): проблема в том , что я не знаю сколько импульсов подавать нужно, и плюс если добавлять преобразователь как его на PIC закодировать
В простейшем варианте- в течении 10 секунд считаете количество входящих импульсов, и это число выводите на индикатор... Потом, сохраняя это число на индикаторе- опять 10 секунд считаете импульсы, и обновляете информацию на индикаторе.. Чего тут сложного- то?
Или вы просто "прошли мимо" всю тему, и хотите, чтобы до очередной сессии за вас кто- то это задание сделал?
Тогда вам в тему: http://radiokot.ru/forum/viewtopic.php? ... &start=560
- Дмитрий М
- Друг Кота
- Сообщения: 6622
- Зарегистрирован: Чт дек 29, 2005 00:18:30
- Откуда: Москва
- Контактная информация:
Re: 3хразряндный семисегментник, работающий как частотомер
Если говорить формально то алгоритмы вычисления низких частот гораздо сложнее, поэтому это и тема курсового у ТС (как я подозреваю
). Там используются методы интерполяции и ряд чисто программных методов для повышения точности. Вычислить за обозримо короткое время частоту НЧ с точностью до долей герца не так просто, как кажется.
Ничто так не укрепляет взаимное доверие, как 100% предоплата! Дмитрий, ex-RK3AOR.
- Реклама
- АлександрЛ
- Друг Кота
- Сообщения: 43896
- Зарегистрирован: Пн ноя 30, 2009 03:00:01
- Откуда: Нерезиновая
Re: 3хразряндный семисегментник, работающий как частотомер
Ну, не знаю, я не сильно "теоретик".. Когда мне понадобилось вычислять количество оборотов в минуту - от 1 до 500-т, то я воспользовался методом измерения периода сигнала.Дмитрий М писал(а):Если говорить формально то алгоритмы вычисления низких частот гораздо сложнее, поэтому это и тема курсового у ТС (как я подозреваю). . Вычислить за обозримо короткое время частоту НЧ с точностью до долей герца не так просто, как кажется.
Re: 3хразряндный семисегментник, работающий как частотомер
Я не прошу за меня задание делать, просто помочь составить алгоритм решения данной задачи и всеАлександрЛ писал(а):Импульсы нужно не подавать, а СЧИТАТЬ..akaGunner писал(а): проблема в том , что я не знаю сколько импульсов подавать нужно, и плюс если добавлять преобразователь как его на PIC закодировать
В простейшем варианте- в течении 10 секунд считаете количество входящих импульсов, и это число выводите на индикатор... Потом, сохраняя это число на индикаторе- опять 10 секунд считаете импульсы, и обновляете информацию на индикаторе.. Чего тут сложного- то?
Или вы просто "прошли мимо" всю тему, и хотите, чтобы до очередной сессии за вас кто- то это задание сделал?
Тогда вам в тему: http://radiokot.ru/forum/viewtopic.php? ... &start=560
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: 3хразряндный семисегментник, работающий как частотомер
Измеряйте период между двумя фронтами и вычисляйте частоту. Вот и весь алгоритм
На таких низких частотах, разрешение в 0.1 Гц - как два пальца обосфальт ...
Ну а синус у вас там, или косинус - пофиг. Заводим сигнал на вход МК, а внутри он сам преобразуется в логический уровень.
На таких низких частотах, разрешение в 0.1 Гц - как два пальца обосфальт ...
Ну а синус у вас там, или косинус - пофиг. Заводим сигнал на вход МК, а внутри он сам преобразуется в логический уровень.
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: 3хразряндный семисегментник, работающий как частотомер
Alex, а МК с такими делениями справится? Там даже при дискретности таймера в 8 мкс (при бОльшей может с точностью грешить) получатся 4-значные числа.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: 3хразряндный семисегментник, работающий как частотомер
Запросто.Zhuk72 писал(а):Alex, а МК с такими делениями справится?
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: 3хразряндный семисегментник, работающий как частотомер
А вообще в данном задании можно и без деления обойтись. При таком диапазоне и разрешении получается около двух сотен 3-значных чисел. Памяти тоже много. Забить их в 2-мерный массив и по близкому значению таймера из одного столбца выбирать частоту из второго 
Не знаю только, какой вариант будет оптимальнее. Но для студента будет плюс, если он сможет предложить 2 решения одной задачи. Ну и еще одно решение методом подсчета импульсов за 10 с. Метод условной компиляции - хорошая штука.
Не знаю только, какой вариант будет оптимальнее. Но для студента будет плюс, если он сможет предложить 2 решения одной задачи. Ну и еще одно решение методом подсчета импульсов за 10 с. Метод условной компиляции - хорошая штука.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


