Страница 1 из 1

Измерение частоты на pin D8

Добавлено: 04 июн 2017, 14:27
Dryundel
Господа знатоки, может кто нибудь сделать пользовательский блок для точного измерения частоты на pin D8 ? Вот по такому принципу, к примеру:
http://arduino.ru/forum....-145784

Или вот:
https://geektimes.ru/post/286410/ (см. Способ 2)

Очень надо, а в программировании я пока не силен.

Измерение частоты на pin D8

Добавлено: 04 июн 2017, 14:43
pan
а какая примерно там частота будет?

Измерение частоты на pin D8

Добавлено: 04 июн 2017, 14:52
Dryundel
До 2000 Гц максимум планируется.

Измерение частоты на pin D8

Добавлено: 04 июн 2017, 15:05
pan
посадить на другой пин и использовать счетчик не получится?

Измерение частоты на pin D8

Добавлено: 04 июн 2017, 15:17
Dryundel
Если озадачиться только счетчиком, то может и получится, а при активации других процессов счет уйдет в тартарары. Нужет скоростной качественный счетчик.
На сколько я понял (из разных источников) только D8 с задействованием Timer1 может работать корректно и наименьшими ошибками.
Да и D2 D3 уже заняты работой по прерыванию.

Измерение частоты на pin D8

Добавлено: 04 июн 2017, 21:13
Dev1
Проверьте

Измерение частоты на pin D8

Добавлено: 04 июн 2017, 21:41
Dryundel
Спасибо огромное.
Буду пробовать.
Скажите пожалуйста, для того что бы получать время между импульсами,
надо добавить в блоке выход ttime (float)?

И еще вопрос, в SetupSection   delay(1000) это что?

Измерение частоты на pin D8

Добавлено: 04 июн 2017, 22:03
Dev1
Dryundel писал(а):Скажите пожалуйста, для того что бы получать время между импульсами,надо добавить в блоке выход ttime (float)?
Вроде да, если что разделите на 2
Dryundel писал(а):И еще вопрос, в SetupSection   delay(1000) это что?
Это задержка как в примере, для устаканивания, она 1 раз вызывается, потом в цикле не участвует.

Измерение частоты на pin D8

Добавлено: 19 июн 2017, 21:02
Dryundel
Dev1 писал(а):ПроверьтеПрикрепления: freg.flp(74Kb)
Все вроде работает до момента отключения подачи сигнала.
Если частотный сигнал снять то  переменная freg фиксируется на последнем значении, а хотелось бы иметь 0 на выходе при отсутствии сигнала.

Как поправить код?