Medidor de frequência simples DIY de até 6,5 MHz
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Ferramentas e máquinas necessárias
|
Aplicativos e serviços online
|
Sobre este projeto
O dispositivo apresentado no vídeo é um frequencímetro feito com um microcontrolador Arduino Nano. Ele pode medir a frequência de sinais com formas retangulares, sinusoidais e triangulares.
Sua faixa de medição é de alguns hertz a 6,5 Megahertz. Três intervalos de tempo de medição também estão disponíveis - 0,1, 1 e 10 segundos. Se medirmos apenas sinais retangulares, não haverá necessidade de um amplificador de modelagem e o sinal será alimentado diretamente para o pino digital 5 do Arduino.
O código é muito simples graças à biblioteca "FreqCount" que você também pode baixar abaixo.
O dispositivo é muito simples e consiste em vários componentes:
- Microcontrolador Arduino Nano
- Moldar placa amplificadora
- Tela de LCD
- Seletor de forma de sinal de entrada
- Entrada JACK
- e interruptor de intervalo de tempo:podemos escolher três intervalos 0,1 -1 e 10 segundos.
Como você pode ver no vídeo, o instrumento é muito preciso em toda a faixa, e também podemos calibrar o frequencímetro com o procedimento simples descrito abaixo:
Na pasta de bibliotecas do Arduino, encontre a biblioteca FreqCount,
no arquivo FreqCount.cpp encontre as linhas:
#if definido (TIMER_USE_TIMER2) &&F_CPU ==12000000L
float correto =count_output * 0.996155;
e substituí-los por:
#if definido (TIMER_USE_TIMER2) &&F_CPU ==16000000L
float correto =count_output * 1.000000;
onde 1.000000 é o seu fator de correção, o
a correção deve ser realizada aplicando 1 MHz à entrada do frequencímetro.
Depois de alterar o arquivo, carregue um novo esboço para a placa Arduino.
Finalmente, o frequencímetro é embutido em uma caixa de plástico adequada e é outro instrumento útil no laboratório eletrônico.
Código
- Código
- FreqCount-master
Código C / C ++
#include//https://github.com/PaulStoffregen/FreqCount/archive/master.zip#include LiquidCrystal lcd (12, 11, 6, 4, 3, 2 ); // RS, E, D4, D5, D6, D7void setup () {lcd.begin (16, 2); // LCD 16X2 pinMode (7, INPUT); FreqCount.begin (1000);} long f sem sinal; float f0; int x, n =3, r; loop vazio () {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. imprimir (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. ler(); lcd.setCursor (10,1); lcd.print ("***"); } atraso (200); lcd.clear ();}
FreqCount-master C / C ++
Sem visualização (somente download).
Esquemas
Processo de manufatura
- Bloqueio de combinação simples
- Multímetros
- Medição de frequência e fase
- DIY mais simples relógio IV9 Numitron com Arduino
- DIY Simple 20 kHz Arduino Oscilloscope no Nokia 5110 LCD
- DIY 37 LED Roulette Game
- Detector de terremotos ADXL335 sensível a DIY
- Controle de ferro de solda DIY para 862D +
- Jogo Arduino Nano Tetris em Matriz 16x8 caseira
- Nunca ande sozinho