FreqCount измеряет частоту сигнала путем подсчета числа импульсов в течение фиксированного времени. Описание библиотеки находится ниже.

скачать библиотеку можно здесь

Если входной сигнал меньше 5В то обязательно потребуется буфер для устройства на базе усилителя 74HC14

В схеме используется модуль aruino Teensy

Основные команды

FreqCount.begin(GateInterval);

Начинаем подсчет частоты. GateInterval это время в миллисекундах для каждого измерения. Через 1000 обеспечивает прямой выход частоты без mulitplying или делением на коэффициент масштабирования.

FreqCount.available();

Функция возвращает True, если новое значение доступно. Только одно значение заносится в буфер, поэтому данные должны быть прочитаны перед началом следующего интервала считывания.

FreqCount.read();

Возвращает значение в виде целого числа. Если получено число 1000.5 то оно округлится к целому в пределах от 1000 до 1001. 

FreqCount.end();

Останавливает подсчет. ШИМ контролер (analogWrite) может быть использован снова.

 

Пример скетча

Open from the menu : 

#include <FreqCount.h>

void setup() {
  Serial.begin(57600);
  FreqCount.begin(1000);
}

void loop() {
  if (FreqCount.available()) {
    unsigned long count = FreqCount.read();
    Serial.println(count);
  }
}

 

Результат мониторинга порта