Измерение длительности импульса

Измерение длительности импульса от 1гц до 250кгц с выводом данной измерения.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#1

Сообщение injener » 03.07.2018{, 09:45}

Может есть решения, ткните.
Не могу сообразить как организовать...
Есть изменяемая частота (к примеру как с датчика АБС(по уровню похожее), от 1гц до 250кгц) . Чем выше частота, тем короче импульс. Надо замерить интервал импульса от 1 до 0 и вывести данные в формате времени. Может код какой попробовать встроить в блок? Точнось не сильно важна, но отклонения должны быть приемлемые... Все что я пробовал или буфер переполняется и не успевает сбрасываться или низкие частоты не видит, или высокие не видит...
Это для мотора 9000об/мин. Стоит датчик и по метке на валу считывает оборот...

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#2

Сообщение Sancho » 03.07.2018{, 10:14}

injener,
Скоростной счётчик, режим измерения длительности импульса.
СпойлерПоказать
screenshot_18-07-03_10-12-06.png
screenshot_18-07-03_10-12-30.png
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#3

Сообщение injener » 03.07.2018{, 10:26}

Sancho писал(а):
03.07.2018{, 10:14}
injener,
Скоростной счётчик, режим измерения длительности импульса.
СпойлерПоказать
screenshot_18-07-03_10-12-06.pngscreenshot_18-07-03_10-12-30.png
Что то он у меня срывается после примерно 7-10сек работы... Начинаются прерывания в выводе данных. На скрине все настройки что нужны? Может еще что то надо?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#4

Сообщение Sancho » 03.07.2018{, 10:32}

Установите галочку "вход разрешения замера" - на появившийся вход подавайте 0 во время вывода данных.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#5

Сообщение injener » 03.07.2018{, 10:38}

Вечером опробую. Спасибо.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#6

Сообщение injener » 04.07.2018{, 10:53}

Станно. Делал так до этого, не получалось. А тут прям раз и все заработало.
Sancho, а не подскажешь как один импуль умножать? Посмотрел тут, умножителей что то ни кто не собирал еще...

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#7

Сообщение Sancho » 04.07.2018{, 15:53}

injener писал(а):
04.07.2018{, 10:53}
а не подскажешь как один импуль умножать?
Более подробнее, что надо получить, а то не улавливаю сути вопроса...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#8

Сообщение injener » 04.07.2018{, 20:45}

Sancho, есть частота на входе 10гц, на выходе должно быть 30гц

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#9

Сообщение Sancho » 04.07.2018{, 20:55}

injener писал(а):
04.07.2018{, 20:45}
есть частота на входе 10гц, на выходе должно быть 30гц
Получил время импульса и паузы, раздели на нужное, подай на генератор.
Только с измерением по прерыванию будет проблематично запустить генератор. Возможно не прав, если использовать аппаратный таймер.

Отправлено спустя 7 минут 10 секунд:
Ещё зависит от диапазона частот и времени/периода перестройки (как часто).
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

fsergei70
Капитан
Сообщения: 786
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 54
Имя: Сергей

Измерение длительности импульса

#10

Сообщение fsergei70 » 04.07.2018{, 21:08}

Sancho писал(а):
04.07.2018{, 20:55}
подай на генератор
Саш, как запустить генератор с длительностью импульса и паузы меньше 1 микросекунды. А то получается что минимальное значение в сумме 2 микросекунды или около 500 килогерц, Если конечно я правильно перевел. Просто стало интересно какую максимальную частоту можно с ESP выжать.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#11

Сообщение Sancho » 04.07.2018{, 21:18}

fsergei70 писал(а):
04.07.2018{, 21:08}
Саш, как запустить генератор с длительностью импульса и паузы меньше 1 микросекунды. А то получается что минимальное значение в сумме 2 микросекунды или около 500 килогерц, Если конечно я правильно перевел. Просто стало интересно какую максимальную частоту можно с ESP выжать.
Написать свой генератор. :)
Попробую попозже, работы основной подвалило...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#12

Сообщение injener » 05.07.2018{, 15:59}

Sancho, ну ведь точно! Если задействовать аппаратный таймер то он будет равен для всех!
Диапазон частот не высок. 6имп/метр. До 700кгц думаю потянет.
У меня два выхода. Первый найти датчик скорости от другой машины, но потом в приборке делитель городить. Второй собрать множитель и от него все доп устройство будет работать... Второе предпочтительнее. Сегодня буду пробовать собирать и поженить множитель с другими платами...

Отправлено спустя 10 минут 37 секунд:
Sancho писал(а):
04.07.2018{, 21:18}
Написать свой генератор. :)
Попробую попозже, работы основной подвалило...
А вот тут интрига! Подробнее можно? Может я сумею код собрать? Желательно на что опираться в поиске...
И еще вопрос. Если записать данные в первую память, потом перезаписать их во вторую память и считывать уже оттуда, будет быстрее считывание? По идее пока на первую записывается, я спокойно считываю со второй...

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#13

Сообщение Sancho » 05.07.2018{, 16:23}

injener писал(а):
05.07.2018{, 15:59}
Sancho, ну ведь точно! Если задействовать аппаратный таймер то он будет равен для всех!
Диапазон частот не высок. 6имп/метр. До 700кгц думаю потянет.
У меня два выхода. Первый найти датчик скорости от другой машины, но потом в приборке делитель городить. Второй собрать множитель и от него все доп устройство будет работать... Второе предпочтительнее. Сегодня буду пробовать собирать и поженить множитель с другими платами...
Подумайте немного:
Любой генератор в мк привязан к кварцу,
Частота тем или иным образом будет привязана к производным от деления, даже если делать импульс и паузу разной длинны.
Плавного изменения в области больших частот ожидать не стоит при всём желании - скорость пина, да и программы в общем, не велика. Надо смотреть в сторону более быстрых мк.
injener писал(а):
05.07.2018{, 16:09}
И еще вопрос. Если записать данные в первую память, потом перезаписать их во вторую память и считывать уже оттуда, будет быстрее считывание? По идее пока на первую записывается, я спокойно считываю со второй...
Не понял, о какой памяти идёт речь.

Отправлено спустя 33 минуты 46 секунд:
injener писал(а):
05.07.2018{, 16:09}
А вот тут интрига! Подробнее можно? Может я сумею код собрать? Желательно на что опираться в поиске...
Как я вижу, эскиз, так сказать:
Эскиз кодаПоказать

Код: Выделить всё

volatile long unsigned int time_gen, time =0;
volatile bool work = false;
volatile byte step =2;
	По прерыванию rising обработчик 
	{
	step--;
	if(step)запускаем функцию abcd(step);
	else{time_gen=time/3; time=0; work=1;}
	
	}
   void abcd(step)
   {
   while(1){time++}	// считаем такты между фронтами в бесконечном цикле,
   // узнаём косвенно время периода
   }
   
   loop(){
   if(work)
   {
	   noInterrupts(); // хватит прерываний
	   //генерируем сигнал, используя полученное time_gen
	   // время генерации должно зависеть от полученного значения, я так думаю...
	   // Когда надоело генерить: {  work = 0; step =2; interrupts();}
	   // и идём за новыми данными
   }
   }
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#14

Сообщение injener » 05.07.2018{, 19:33}

Sancho писал(а):
05.07.2018{, 16:57}
Не понял, о какой памяти идёт речь.
О массивах.
Sancho писал(а):
05.07.2018{, 16:57}
Как я вижу, эскиз, так сказать:
:shok: Я себе это немного по другому представлял... Тогда уж лучше пристрелите меня.
Я представлял что у генератора будет выход не булеаноский...
Sancho писал(а):
05.07.2018{, 16:57}
Подумайте немного:
Любой генератор в мк привязан к кварцу,
Частота тем или иным образом будет привязана к производным от деления, даже если делать импульс и паузу разной длинны.
Плавного изменения в области больших частот ожидать не стоит при всём желании - скорость пина, да и программы в общем, не велика. Надо смотреть в сторону более быстрых мк.
Например?

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#15

Сообщение Sancho » 05.07.2018{, 19:42}

Есть осциллограф?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#16

Сообщение injener » 05.07.2018{, 19:53}

Sancho писал(а):
05.07.2018{, 19:42}
Есть осциллограф?
Да, комнатный остался.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#17

Сообщение Sancho » 05.07.2018{, 20:19}

2Мгц потянет?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#18

Сообщение injener » 05.07.2018{, 21:10}

Sancho писал(а):
05.07.2018{, 20:19}
2Мгц потянет?
Не. Не потянет. могу через 2 недели на работе замеры сделать...

Отправлено спустя 4 минуты 57 секунд:
После 5кгц падает в обморок. Ну думаю что достаточно этого множителя.

injener
Сержант
Сообщения: 105
Зарегистрирован: 23.10.2016{, 09:42}
Репутация: 2

Измерение длительности импульса

#19

Сообщение injener » 22.07.2018{, 10:21}

Вот что получилось. На 5кгц еще норм, дальше заваливается в обморок. :smile113:

Отправлено спустя 5 часов 23 минуты 14 секунд:
Может кто сможет ее раскочегорить на частоту по выше? Надо хотя бы 300кгц...
Перепробовал кучу вариантов. Или зависает или падает в обморок при попытке достать до нужной частоты.

Повторюсь: это умножитель. К примеру входное 100гц, на выходе 300гц.
Вложения
нов4.flp
Вот
(166.87 КБ) 74 скачивания

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Измерение длительности импульса

#20

Сообщение Sancho » 22.07.2018{, 16:08}

injener писал(а):
22.07.2018{, 15:45}
Повторюсь: это умножитель. К примеру входное 100гц, на выходе 300гц.
Только одна мысль - по фронту дёргаем выход нужное кол-во раз. умножитель за 100 руб. не более. недорого.

Отправлено спустя 50 секунд:
без гарантированной скважности.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Ответить

Вернуться в «Помогите, а то я "нимагу"»