цифровая электроника
вычислительная техника
встраиваемые системы

 

Простой измеритель частоты на Arduino своими руками

Автор: Mike(admin) от 5-10-2020, 05:55

Устройство для измерения частоты или частотомер является очень важным инструментом при разработке средне- и высокочастотных приборов, у которых частота является одним из главных рабочих параметров.


Простой измеритель частоты на Arduino своими руками

Измеритель частоты можно приобрести в магазине, а можно сделать самостоятельно для приложений с не очень высокой рабочей частотой, что обойдется значительно дешевле по сравнению с покупкой заводского частотомера. В этом проекте мы рассмотрим, как сделать такое устройство на основе Arduino своими руками.


Диапазон измерений нашего частотомера составляет от нескольких герц до 6,5 мегагерц. Также доступны три временных интервала измерения – 0,1, 1 и 10 секунд. Если мы измеряем только прямоугольные сигналы, тогда нет необходимости в усилителе-формирователе, и сигнал подается непосредственно на цифровой вывод 5 от Arduino. Схема подключения компонентов для создания измерителя частоты на основе Arduino выглядит следующим образом.


Простой измеритель частоты на Arduino своими руками

Всю эту схемотехнику вы можете расположить в каком нибудь корпусе из пенопласта, дерева или пластика для удобства пользования и эстетичности внешнего вида. Например, так:


Простой измеритель частоты на Arduino своими руками

Код программы для Arduino очень простой благодаря библиотеке FreqCount. Она позволяет измерять частоту сигнала, подсчитывая количество импульсов в течение фиксированного времени.



#include <FreqCount.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 6, 4, 3, 2);// RS,E,D4,D5,D6,D7
void setup() {
  lcd.begin(16, 2);// LCD 16X2
  pinMode(7,INPUT);
  FreqCount.begin(1000);
}
unsigned long f;float f0;
int x,n=3,r;

void loop() {
  
  if(digitalRead(7)==HIGH){n++;x=0;delay(100);}
    lcd.setCursor(0,1);
  if(n==1){x++;if(x==1){FreqCount.begin(100);}r=-1;lcd.print("T = 0.1 s ");}
  if(n==2){x++;if(x==1){FreqCount.begin(10000);}r=1;lcd.print("T = 10 s ");}
  if(n==3){x++;if(x==1){FreqCount.begin(1000);}r=0;lcd.print("T = 1 s  ");}
  if(n>3){n=1;} 
    lcd.setCursor(0,0);
    lcd.print("F = ");
  if(f>=1000000 && n==3){f0=f/1000000.0;lcd.print(f0,6+r);lcd.print(" MHz");}
  if(f<1000000 && n==3){f0=f/1000.0;lcd.print(f0,3+r);lcd.print(" kHz");}
  if(f>=100000 && n==1){f0=f/100000.0;lcd.print(f0,6+r);lcd.print(" MHz");}
  if(f<100000 && n==1){f0=f/100.0;lcd.print(f0,3+r);lcd.print(" kHz");}
  if(f>=10000000 && n==2){f0=f/10000000.0;lcd.print(f0,6+r);lcd.print("MHz");}
  if(f<10000000 && n==2){f0=f/10000.0;lcd.print(f0,3+r);lcd.print(" kHz");}

  if (FreqCount.available()) { 
   
    f = FreqCount.read(); 
    
   lcd.setCursor(10,1);lcd.print("***");
  }
   delay(200);
   lcd.clear();
}

Этот частотомер будет полезным инструментом в электронной лаборатории.




© digitrode.ru


Теги: Arduino




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий