| Ваш IP: 54.80.219.236 | Online(44) - гости: 35, боты: 9 | Загрузка сервера: 3.72 ::::::::::::

Частотомер 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);
  }
}

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

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

  • УМЗЧ 2*14Вт на TDA7269A

    УМЗЧ 2*14Вт на TDA7269A

    УМЗЧ на базе TDA7269A относится к классу АВ и предназначен для использования в усилителях Hi-Fi класса. Микросхема имеет тепловую защиту, защиту от КЗ выходов на корпус и шину питания. В микросхеме встроены функции MUTE и STAND-BY. Усилитель на базе TDA7269A имеет следующие технические характеристики: Номинальное напряжение питания +/-16В Напряжение питания …Подробнее...
  • Простой усилитель на 2-х транзисторах

    Простой усилитель на 2-х транзисторах

    На рисунке показана схема простого усилителя мощности звуковой частоты работающего в режиме АВ, выходная мощность усилителя 2Вт и пиковая 5 Вт на нагрузке 8 Ом. Усилитель питается от стабилизированного источника питания с выходным напряжением 9 В. Источник — http://wiringdiagramcircuit.com/simple-amplifier-by-transistor-ac128/Подробнее...
  • Новогодние мигалки (на четыре гирлянды)

    Новогоднюю мигалку на 4-е гирлянды можно сделать на основе К176ИЕ12, эта микросхема содержит мультивибратор и счетчик делитель на 256 с дешифратором на 4-е выхода. В итоге благодаря применению данной микросхемы можно получить эффект бегущего огня. Частота мультивибратора в 256 раз больше частоты переключений, она задается RC-цепью R1+R2 и С1. Скорость …Подробнее...
  • Псевдостерео-приставка

    Псевдостерео-приставка

    Данная приставка может найти свое применение в ТВ приемниках в которых как правило простые монофонические звуковые тракты. В основе уст-ва лежит фильтр из двойных Т-мостов, вносящим в частотную характеристику правого канала затухания на частотах 200 и 2000Гц. А в левый канал поступает разность между полным входным сигналом и сигналом правого …Подробнее...
  • Стерео усилитель 2*12Вт на TDA7263М

    Стерео усилитель 2*12Вт на TDA7263М

    Стерео усилитель на базе микросхемы TDA7263М  относится к классу АВ и используется в основном в бытовой HI-FI технике. Микросхема имеет защиту от КЗ по переменному току, снабжена тепловой защитой: температура срабатывания тепловой защиты 145°С. TDA7263M имеет в своем составе систему MUTE которая позволяет избежать шумов и щелчков громкоговорителей в момент …Подробнее...