Как очень просто удвоить частоту импульсов

| Текущее время: Вс фев 04, 2024 19:49:56 |
Часовой пояс: UTC + 3 часа
Запрошенной темы не существует.
Часовой пояс: UTC + 3 часа

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y
Работоспособность сайта проверена в браузерах:
IE8.0, Opera 9.0, Netscape Navigator 7.0, Mozilla Firefox 5.0
Адаптирован для работы при разрешениях экрана от 1280х1024 и выше.
При меньших разрешениях возможно появление горизонтальной прокрутки.
По всем вопросам обращайтесь к Коту: kot@radiokot.ru
©2005-2024
Тема: Проблемы с формой входного импульса
Проблемы с формой входного импульса
Приобрели СИ8 на замену вышедшему из строя регистратору (счетчик импульсов расходомера топлива, собранный в 80-х прошлого века на м-мах серии К155). Возникла проблема: не согласуется выход датчика со входом СИ8. Оказалось, что длительность импульса датчика всего около 30 микросекунд (отрицательный импульс ТТЛ). При том что частота следования импульсов невысока, порядка 0,5-3,5Гц. Короче, СИ8 не считает импульсы с этого датчика.
К сожалению я сам не являюсь специалистом в электронике, но так уж оно получилось, что я вынужден был заняться переделкой стенда, так как ремонтировать его было некому. СИ8 (замечательная вещь!) мне показался практически готовым решением, но вот на согласовании счетчика с датчиком я капитально застрял.
Может быть подскажете простейший способ выкрутиться из этой ситуации? Может какой-то несложный формирователь импульса или типа того? Может какие-то настройки самого СИ8?
Заранее благодарен за любой совет.
25.06.2008, 09:54 #2
- Просмотр профиля
- Сообщения форума
- Личное сообщение
- Просмотр статей
![]()
Пользователь Регистрация 06.08.2007 Сообщений 284
В меню программирования прибора есть параметр
«входной фильтр» — tc , который защищает входы прибора от помех, путем увеличения минимальной длительности воспринимаемых прибором импульсов.
Вообще минимальная длительность входных импульсов, которые сможет посчитать СИ8 равна =0,1 мс при знчении tc=0.0
Попробуйте выставить tc=0.0, если не получится то необходим другой датчик.
25.06.2008, 15:31 #3
незарегистрированный

Спасибо за совет с tc, сегодня же попробую. Что касается датчика, то его мне пока нельзя никак поменять, ибо он часть специального оборудования, поверяемого, сертифицированного, опломбированного и тд и тп. У него есть свой регистратор, но он не годится для работы со стендом: мелкий и расположен в неудобном для считывания показаний месте, короче чиста контрольный он, как я понимаю. СИ8 — то что нужно, только вот короткий импульс с того датчика ему не нравится. Пытался поискать в Интернет какую-нибудь несложную схемку для увеличения длительности импульса, но видимо из-за того, что не верно сформулировал задание (тип схемы), все что нашел — совсем не то, обычно это наоборот схемы формирователей коротких импульсов.
Жаль, не хватает знаний по электронике
25.06.2008, 18:28 #4
![]()
Пользователь Регистрация 29.10.2007 Сообщений 1,227
Попробуйте убрать фильтр как вам рекомендовали. Если не получится я попробую нарисовать небольшую схемку. Думаю можно будет сделать или на 555 таймере, или просто защелку на транзисторах со сбросом.
Я знаю то, что я ничего не знаю. Но другие не знают и этого. (Сократ).
27.06.2008, 01:24 #5
незарегистрированный
Попробовал tc=0.0. Счетчик-таки начал считать, но к сожалению в этом режиме он работает очень неустойчиво, пропускает существенную часть импульсов, что недопустимо.
Буду очень признателен, если приведете схемы формирования нормального импульса.
Кстати, случайно у датчика обнаружился и другой выход, незадействованный, форма импульса которого в норме (меандр), но вот частота импульсов почему-то в два раза ниже реальной. Может проще как-то удвоить частоту импульсов с этого выхода. Правда, я тож не знаю, как это можно сотворить.
27.06.2008, 15:51 #6
![]()
Пользователь Регистрация 29.10.2007 Сообщений 1,227
Итак схема. Схему предлагаю собрать на микросхеме-таймере NE555 (аналог КР1006ВИ1).
Описание работы самой микросхемы. «При подаче сигнала на вход ТРИГГЕР (ножка 2) выходной сигнал (ножка 3) переключается на ВЫСОКИЙ уровень (около Ukk) и остается в этом состоянии до тех пор, пока не произойдет переключения входа ПОРОГ (ножка 6); в этот момент выходной сигнал падает до НИЗКОГО уровня (около потенциала «земли») и тогда включается транзистор РАЗРЯД (ножка 7). Вход ТРИГГЕР включается при уровне входного сигнала меньше 1/3Ukk, а ПОРОГ – при уровне входного сигнала больше 2/3 Ukk.» (П.Хоровиц, У. Хилл «Искусство схемотехники»). Ножка 1 микросхемы – «земля», ножка 8 +питания, 4 – сброс, на ножке 5 значения напряжения при котором срабатывает компаратор ПОРОГ.
Описание самой схемы. Поскольку встроенный источник напряжения в приборах ОВЕН равен 24 вольта, что для питания микросхемы NE555 неприемлемо, то в схеме установлен линейный стабилизатор напряжения на 12 вольт 78L12. Положительный фронт сигнала с датчика поступает на ВХОД далее через резистор R1 поступает на транзистор VT1, происходит открывание транзистора и он «подсаживает» напряжение на ножке 2 микросхемы (ТРИГГЕР), до уровня примерно 0.6 вольт. На ножке 3 (ВЫХОД) устанавливается высокий уровень, который открывает транзистор VT2, а он в свою очередь подсаживает уровень на входе прибора СИ8. Одновременно с ножки 3 через диод VD1 и через резистор R3 ток поступает на конденсатор C1. Конденсатор начинает заряжаться. Как только напряжение на конденсаторе достигнет значения ~8 вольт, уровень на ножке 3 упадет, откроется внутренний транзистор на ножке 7 (РАЗРЯД), все время пока будет заряжаться конденсатор, на выходе будет присутствовать высокий уровень, а транзистор VT2 будет открыт.
Номиналы резистора R3 и C1 я не указал. Их надо подобрать. Эти элементы являются задерживающей цепочкой, произведение емкости конденсатора (в фарадах) на сопротивление резистора (в Омах) равно времени задержки. Допустим, имеется конденсатор 100 nF (0.0000001 F) время задержки нужно 20 мс (0.02 с). Тогда R=t/F=0.02/0.0000001=200000 или 200 килоом.
Ну вот в принципе и все. По идее схема должна заработать, но поскольку сведений о датчике мало, то возможно придется ее как то подстраивать. Транзисторы можно использовать любые NPN например КТ315, КТ3102 или импортные. Конденсатор C2 на напряжение 16 вольт или больше.

Миниатюры
Я знаю то, что я ничего не знаю. Но другие не знают и этого. (Сократ).
28.06.2008, 03:08 #7
незарегистрированный
Спасибо большое за схему. Как только приобрету такую микросхемку испробую.
Хочу уточнить один момент. Дело в том что, как я уже говорил, импульс с датчика _отрицательный_. Я имею ввиду, что на выходе датчика (по схеме датчика там стоит К155ЛА3) большую часть времени лог1 и только на 30 мксек оно становится равным логическому нулю. Я это спрашиваю к тому, что не нужно ли произвести в связи с этим фактом какие-то измения в схему формирователя импульса? Ведь в моем случае задержка по _положительному_ фронту (как в описании работы схемы) не нужна. Я даже осмелюсь предположить, что ключ на VT1 в моем случае не нужен, ведь он же инвертирует входной сигнал. Только не знаю, согласуется по уровню выход К155ЛА3 и вход микросхемы таймера 555, напряжение питания ведь у них разные. Что скажете?
28.06.2008, 10:45 #8
![]()
Пользователь Регистрация 29.10.2007 Сообщений 1,227
Вообще микросхема работает при напряжении от 2.5 до 18 вольт. Поэтому можно действительно попробовать так. Стабизатор 78L12 заменить на 78L05 (5 вольтовый), резистор R2 тоже скорее всего не потребуется. Транзистор VT1 и резистор R1 убираем.
Если не прокатит, и если есть возможность снять 5 вольт с ЛА3 (Она вроде 5 вольтовая?), то можно сделать вот так.
Транзистор VT3 — любовой PNP, КТ361, КТ3107.

Миниатюры
Я знаю то, что я ничего не знаю. Но другие не знают и этого. (Сократ).
11.07.2008, 15:06 #9
незарегистрированный
Спасибо за помощь! Пришлось, правда, немного пошаманить с номиналами и напряжением питания, но все же первый вариант схемы (без входного ключа) удалось запустить. Теперь счет импульсов идет без пропусков.
Еще раз спасибо за столь полезную консультацию!
11.07.2008, 15:47 #10
![]()
Пользователь Регистрация 29.10.2007 Сообщений 1,227
Напишите, что именно вы сделали. Какое напряжение питания вы выбрали, какие поставили номиналы компонентов. Хотя и маловероятно, но подобная схема может пригодится другим участникам форума. Жизнь коротка, чтобы переводить на изобретание велосипедов.
Я знаю то, что я ничего не знаю. Но другие не знают и этого. (Сократ).
- Навигация
- Кабинет
- Личные сообщения
- Подписки
- Кто на сайте
- Поиск по форуму
- Главная страница форума
- Форум
- НОВИНКИ ОВЕН
- В продаже
- В разработке
- Оборудование
- Подбор Оборудования
- Эксплуатация
- Разработки
- Программируемые устройства ОВЕН
- ПЛК (среда CODESYS V3.5)
- ПЛК2хх
- СПК1хх [М01]
- СПК1хх
- СПК2хх
- ПЛК3хх
- Библиотеки CODESYS
- ПЛК (среда CoDeSys V2.3)
- ПЛК1хх [М02]
- ПЛК1хх
- ПЛК63/73
- ПЛК (среда MasterSCADA 4D)
- Программируемые реле
- Модули ввода/вывода
- Мх110
- Мх210
- Панели оператора (HMI)
- Среда программирования OWEN Logic
- Архив продукции
- Модульные контроллеры Модус
- Модус 5684-0
- Модус 5680
- Модули ввода-вывода
- Интерфейсные модули
- Модульные контроллеры Модус
- ПЛК (среда CODESYS V3.5)
- Датчики ОВЕН
- Новинки
- В помощь инженеру
- Подбор датчиков
- Вопросы по эксплуатации датчиков
- Программное обеспечение
- Облачный сервис OwenCloud
- Облачный сервис OwenCloud
- ПМ210
- ПЕ210
- ПВ210
- SCADA
- OWEN Proces Manager
- Master SCADA 3
- Master SCADA 4D
- Другие SCADA системы
- Телемеханика ЛАЙТ
- Сервисное ПО
- Помощь Разработчикам
- Сетевые технологии
- OPC Серверы
- Облачный сервис OwenCloud
- Электротехническое оборудование MEYERTEC
- Приводная техника
- Приводная техника ОВЕН
- Блоки питания
- Контроллеры для ЖКХ
- Контроллеры для систем отопления и ГВС
- Контроллеры для систем вентиляции и кондиционирования
- Контроллеры для управления насосами
- Разное
- Трёп (Курилка)
- Метрология сертификация
- Сервисное обслуживание приборов ОВЕН
- Наши проекты
- Твердотельное реле
- В помощь специалистам
« Предыдущая тема | Следующая тема »
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
Arduino.ru
Очень быстрый умножитель импульсов (умножитель частоты)
- Войдите на сайт для отправки комментариев
15 ответов [Последнее сообщение]
Чт, 05/06/2014 — 21:32
Зарегистрирован: 19.05.2014
Коллеги — требуется очень быстро (вход макс частота ~10кГц, ширина имульса ~5мкс) увеличить частоту импульсов на выходе, и посколько это импульсы шагов для ШД, то требуется произвести умножение очень пропорционально, при этом частота входящих импульсов категорически нелинейна.
Получившийся у меня код выполняется не очень быстро и может пропустить импульс, кроме того на длинных разгонах склонен к переполнению.
Прошу помощи зала в ускорении кода и поиске ошибок, я как мог подробно прокомментировал код, но если что непонятно — постараюсь объяснить в комментариях.
#define LED 17 #define DIV 4 // Кол-во микроимпульсов #define INP PINC // Порт входящих импульсов #define OUT PORTF // Порт исходящих импульсов #define MAX 12000 // Максимальное время ожидания импульса void setup() < /* Инициализация портов */ DDRF = B11111111; PORTF = B11111111; DDRC = B10111111; /* Таймер1 для подсчета временных интервалов между входящими импульсами */ TCCR1A = 0; TCCR1B = 0; TCNT1 = 0; TCCR1B |= (1 void loop()< uint8_t inpValPre = 0b11111111; // Для хранения текущего состояние порта uint8_t inpValCur = 0b11111111; // Для хранения предыдущего состояние порта uint8_t inpRun = false; // Индикатор состояния серии импульсов uint8_t inpBufCnt = 0; // Входящий индекс буфера uint16_t inpBuf[256] = ; // Буфер для хранения временни импульсов uint8_t outRun = 0; // Индикатор состояния выхода uint8_t outDiv = 0; // Счетчик выполненных дроблений uint8_t outCnt = 0; // Исходящий индекс буфера uint8_t ovrCnt = 0; // Счетчик переполнения буфера /* Для ровного хода импульсов прерывания лучше выключить, однако теперь плата будет доступна только в момент загрузчика, сразу после загрузчика контроллер уйдетт в автономку и в этом состояниии его по юсб не прошить, т.е. придется ловить загрузчик */ //noInterrupts(); /* Лучше из loop не выходить, большие накладные расходы */ run: //PORTD = 0b00000000; // Для оценки времени исполнения по осцилу /* Считываем состояние входа, если пришел первый импульс - обнуляем таймер1 и продолжаем, если пришел следующий импульс - делим полученное время таймера1 и сохраняем значение в буфер Я пробовал реализовать этот кусок на прерываниях но это ничего по времени не дает */ inpValCur = INP; if(inpValCur == 0b00000000 && inpValPre == 0b01000000)< if(inpRun)< inpBuf[inpBufCnt++] = TCNT1 / DIV; // Используем переполнения для организации циклического буфера TCNT1 = 0; if(ovrCnt++ == 255) goto dbg; // Увеличим счетчик переполнения и если перепонение достигнуто - выпадем в дебаг // if(ovrCnt++ == 255) goto rst; // или сбросим счетчики и продолжим >else < TCNT1 = 0; inpRun = true; >> inpValPre = inpValCur; /* Проверяем закончилась ли серия импульсов, если время импульса превышено - записываем значение в буфер, если нет - продолжаем */ if(inpRun)< if(TCNT1 >= MAX) < inpBuf[inpBufCnt++] = MAX / DIV; if(ovrCnt++ == 255) goto dbg; // goto rst; inpBuf[inpBufCnt] = 0; // Обнуляем значение следующего элемента inpRun = false; >> /* Формируем начало импульса, если в буфере не нулевое значение - устанаваливаем уровень на выходе, обнуляем таймер и устанаваливаем признак импульса */ if(inpBuf[outCnt])< /* Если имеется признак импульса - устанавливаем уровень на выходе, и если время импульса истекло - формируем окончание импульса */ if(outRun)< //if(TCNT3 >= 2) OUT = 0b11111111; // Pulse width ~10us OUT = 0b11111111; if(TCNT3 >= inpBuf[outCnt])< if(outDiv == DIV)< outDiv = 0; outCnt++; ovrCnt--; // Уменьшаем счетчик переполнения >else < outDiv++; >outRun = false; > >else < OUT = 0b00000000; TCNT3 = 0; outRun = true; >> //PORTD = 0b11111111; goto run; rst: outCnt = inpBufCnt; outDiv = 0; goto run; dbg: Serial.println("DBG"); Serial.print("Inp count: "); Serial.println(inpBufCnt, DEC); Serial.print("Out count: "); Serial.println(outCnt, DEC); Serial.print("Ovr count: "); Serial.println(ovrCnt, DEC); for(byte b = 0; b < 255; b++)< Serial.print(b, DEC); Serial.print("\t"); Serial.println(inpBuf[b], DEC); >while(1)< digitalWrite(LED, HIGH); delay(250); digitalWrite(LED, LOW); delay(250); >; >
- Войдите на сайт для отправки комментариев
Частота металлоискателя — просто о сложном
Если по-простому попытаться объяснить, что же такое «частота», то звучать это будет примерно так: Количество волн за единицу времени измеряется в кГц (килогерцах). В металлоискателе частота — это количество волн, посылаемых в почву для определения металлических объектов.
Пример: Рабочая частота 10 кГц обозначает, что ваш детектор посылает и получает 10000 волн в секунду.
Почему важно правильно подобрать рабочую частоту?
- Оба типа металлодетекторов — импульсные и одночастотные (VLF) используют принцип рабочей частоты – частоты импульсов или частоты электромагнитных полей;
- При поиске низкие и высокие частоты имеют как преимущества, так и недостатки, исходя из условий конкретного места;
- Стандартный диапозон частот, используемый в большинстве металлодетекторов — от 3 до 100 кГц.
- Большая длина волны;
- Увеличивается глубина обнаружения, так как волна большей длины легче проникает в грунт;
- Хорошо справляется при поиске целей с высокой проводимостью, например, серебра;
- Не очень хорошо подходит для поиска мелких объектов;
- Не очень хорошо подходит для поиска целей с низкой проводимостью, например, железа или золота.
- Меньшая длина волны (по сравнению с низкой частотой);
- Показывает отличные результаты при поиске мелких объектов, например, золотых самородков или чешуек;
- Больше подходит для поиска целей с низкой проводимостью — золота или железа;
- Глубина обнаружения меньше (по сравнению с низкой частотой);
- Более высокая точность, особенно при обнаружении целей, расположенных близко к поверхности;
- Чувствительнее к помехам, создаваемым высокоминерализованным грунтом.
Почти все детекторы для новичков обладают стандартной средней частотой — 6-8 кГц. Используя металлоискатель с такой частотой, вы сможете получить преимущества как от низких частот, так и от высоких — оптимальный баланс чувствительности и глубины обнаружения, получается некая «золотая середина». Некоторые приборы из полупрофессиональной линейки металлодетекторов обладают возможностью переключения частот. Есть даже мультичастотные.
Различают следующие типы частот:
Одночастотные металлоискатели: Приборы, работающие, как понятно из их названия, на одной частоте. Не имеют возможности переключения частот или мультичастотности. Как правило, это детекторы начального уровня. Например, Garrett Ace 250 или White’s Coinmaster.
Двухчастотные или мультичастотные металлоискатели: Некоторые приборы полупрофессиональных или профессиональных серий работают одновременно на нескольких частотах. Такими приборами, например, являются: Minelab Excalibur II, Etrac и CTX 3030. Это называется «Полнодиапазонный спектр» — детектор одновременно передает, получает и анализирует полный диапазон множественных частот, что позволяет достичь оптимальных показателей чувствительности и глубины обнаружения, ничем не жертвуя.
В следующей части мы рассмотрим существующие типы технологий, а также приборы в которых они используются.