| Ваш IP: 54.91.203.233 | Online(31) - гости: 18, боты: 13 | Загрузка сервера: 3.67 ::::::::::::

Частотомер 6.5 МГц (Arduino)

Библиотека FreqCount, позволяет на своей основе создать довольно точный частотомер, с разными интервалами времени измерения. Так же небольшая коррекция файла библиотеки позволяет откалибровать частотомер.

На рисунке показана схема частотомера, помимо платы Arduino и одной кнопки, частотомер содержит усилитель-формирователь, который позволяет измерять частоту как импульсного, так и синусоидального сигнала. Максимальная частота которую может измерять частотомер 6,5 МГц, так же доступно три интервала времени измерения — 0.1, 1 и 10  секунд.

#include <FreqCount.h>//https://github.com/PaulStoffregen/FreqCount/archive/master.zip
#include <LiquidCrystal.h>
// вход частотомера 5 
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
void setup() {
  lcd.begin(16, 2);// LCD 16X2
  pinMode(3,INPUT);
  FreqCount.begin(1000);
}
unsigned long f;float f0;
int x,n=3,r;

void loop() {
  
  if(digitalRead(3)==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();
}

/*
Корректировка частотомера 
***************************************************************
В папке библиотек Arduino найти библиотеку FreqCount, 
в файле FreqCount.cpp найдите строки:
#if defined(TIMER_USE_TIMER2) && F_CPU == 12000000L
    float correct = count_output * 0.996155;
и заменить их на:
#if defined(TIMER_USE_TIMER2) && F_CPU == 16000000L
    float correct = count_output * 1.000000; 
где 1.000000 - Ваш поправочный коэффициент
корректировку нужно проводить подав на вход частотомера 1 МГц
После изминений файла загрузите по новой скетч в плату Arduino
***************************************************************
*/

 

Во второй версии частотомера используется восьми разрядный семисегментный индикатор на базе драйвера MAX7219.

#include <LedControl.h>//https://github.com/wayoda/LedControl/archive/master.zip
#include <FreqCount.h>//https://github.com/PaulStoffregen/FreqCount/archive/master.zip
LedControl lc = LedControl(12,11,10,1);// DIN(12), CLK(11), CS(10)
 
void setup() {
  lc.shutdown(0, false);
  FreqCount.begin(1000);
  lc.clearDisplay(0); 
  lc.setIntensity(0,8); // яркость 0-15
 
unsigned long f;
byte fq[8],pd=false;
 
void loop() {
 
  if (FreqCount.available()) {f = FreqCount.read(); }
  lc.setRow(0,7,0x47);
  fq[6]= f/1000000%10;
  fq[5]= f/100000%10;
  fq[4]= f/10000%10;
  fq[3]= f/1000%10;
  fq[2]= f/100%10;
  fq[1]= f/10%10;
  fq[0]= f%10%10;
  for(int i = 0;i < 7;i++){
  lc.setDigit(0,i,fq[i],pd);
  }
}

Добавить комментарий

Случайные статьи

  • УМЗЧ 12ВТ на MOSFET транзисторах

    УМЗЧ 12ВТ на MOSFET транзисторах

    На рисунке показана схема простого но высококачественного усилителя выходной каскад которого выполнен на MOSFET транзисторах  2SK135 и  2SJ50. Усилитель напряжения выполнен на ОУ NE5534. NE5534 — высокопроизводительный операционный усилитель, сочетающий превосходные характеристики постоянного и переменного тока. Обладает очень низким уровень шума, имеет высокую производительность, высокое единичное усиление, низкий уровень искажений и высокий …Подробнее...
  • Частотомер 1МГц на PIC16F628A

    Частотомер 1МГц на PIC16F628A

    На рисунке показана схема простого частотомера, который состоит из микроконтроллера PIC16F628A и трех семисегментных индикаторов. Частотомер способен отображать частоту в кГц от 1 до 999. Время счета 4 мс, время повторения счета 1 секунда. Все транзисторы в схеме BC337 или их аналог. Ток потребления схемы 45мА при напряжении 5В. Все резисторы подключенные …Подробнее...
  • Параметры, типовой режим и цоколевки электровакуумных приборов (преобразовательные лампы и электронно-лучевые индикаторы настройки)

    Литература РА1998_08Подробнее...
  • Усилитель для наушников

    Усилитель для наушников

    На рисунке показана простая, но высококачественная схема усилителя для наушников.  Выходная мощность усилителя 0,5 Вт на нагрузке 32 Ом. Усилитель обладает очень низким КНИ, ток потребления схемы не превышает 100 мА. Выходные транзисторы должны быть установлены на небольшие теплоотводы. Источник — http://www.redcircuits.com/Page185.htmПодробнее...
  • Усилитель мощности 50 Вт (K1058 + J162)

    Усилитель мощности 50 Вт (K1058 + J162)

    50W Усилитель мощности с выходным каскадом на полевых транзисторах K1058 + J162 достаточно прост. В усилителе используется двух полярное питания +/-35В на 2А. Полевые транзисторы K1058 и J162 должны быть установлены на радиаторе.     Характеристики усилителя мощности:   Выходная мощность на частоте 1 кГц 50Вт на 8 Ом нагрузке и 88Вт …Подробнее...