Měřič frekvence Arduino využívající displej 16 × 2

Měřič frekvence Arduino využívající displej 16 × 2

V tomto článku se chystáme zkonstruovat digitální měřič frekvence pomocí Arduina, jehož naměřené hodnoty budou zobrazeny na 16x2 LCD displeji a budou mít měřicí rozsah od 35 Hz do 1MHz.

Úvod

Jako nadšenci elektroniky bychom všichni narazili na bod, kdy v našich projektech musíme měřit frekvenci.



V tom okamžiku bychom si uvědomili, že osciloskop je tak užitečným nástrojem pro měření frekvence. Ale všichni víme, že osciloskop je drahý nástroj, ne všichni fanoušci si ho mohou dovolit a osciloskop může být nástrojem pro začátečníky.



K překonání problému měření frekvence nepotřebují fanoušci drahý osciloskop, stačí nám měřič frekvence, který dokáže měřit frekvenci s přiměřenou přesností.

V tomto článku se chystáme vytvořit měřič frekvence, který je jednoduchý na konstrukci a je vhodný pro začátečníky, dokonce i noob v Arduinu to zvládne s lehkostí.



Než se pustíme do konstrukčních detailů, prozkoumejme, co je frekvence a jak ji lze měřit.

Co je frekvence? (Pro noobs)

Známe pojem frekvence, ale co to ve skutečnosti znamená?

Frekvence je definována jako počet oscilací nebo cyklů za sekundu. Co tato definice znamená?



To znamená, kolikrát amplituda „něčeho“ stoupá a klesá za JEDOU sekundu. Například frekvence střídavého proudu v našem sídle: Amplituda „napětí“ („něco“ je nahrazeno „napětím“) stoupá (+) a klesá (-) za jednu sekundu, což je ve většině zemí 50krát.

Jeden cyklus nebo jedna oscilace se skládá nahoru a dolů. Takže jeden cyklus / oscilace je amplituda, která se pohybuje od nuly k pozitivnímu vrcholu a vrací se k nule, jde k negativnímu vrcholu a vrátí se k nule.

„Časové období“ je také termín používaný při řešení frekvence. Časové období je doba potřebná k dokončení „jednoho cyklu“. Je to také inverzní hodnota frekvence. Například 50 Hz má časové období 20 ms.

1/50 = 0,02 sekundy nebo 20 milisekund

Nyní byste měli určitou představu o frekvenci a souvisejících pojmech.

Jak se měří frekvence?

Víme, že jeden cyklus je kombinací vysokého a nízkého signálu. K měření doby trvání vysokých a nízkých signálů používáme v arduinu „pulseIn“. pulseIn (pin, HIGH) měří dobu trvání vysokých signálů a pulseIn (pin, LOW) měří dobu trvání nízkých signálů. Přidá se doba trvání pulzu obou, což dává časové období jednoho cyklu.

Stanovené časové období se poté vypočítá na jednu sekundu. To se provádí podle následujícího vzorce:

Freq = 10 000 000 / časové období v mikrosekundách

Časové období od arduina se získá v mikrosekundách. Arduino nezkoumá vstupní frekvenci po celou sekundu, ale přesně předpovídá frekvenci analýzou časového období pouze jednoho cyklu.

Nyní víte, jak arduino měří a vypočítává frekvenci.

Obvod:

Obvod se skládá z arduina, což je mozek projektu, 16x2 LCD displej, invertor IC 7404 a jeden potenciometr pro nastavení kontrastu LCD displej .

Navrhované nastavení může měřit v rozsahu od 35 Hz do 1 MHz.

Připojení displeje Arduino:

Výše uvedený diagram je vysvětlující, kabelové připojení mezi arduino a displejem je standardní a podobné připojení najdeme i na dalších projektech založených na arduino a LCD.

Frekvenční měřič Arduino využívající displej 16x2

Výše uvedený diagram se skládá z invertoru IC 7404. Úkolem IC 7404 je eliminovat šum ze vstupu, aby se hluk nepřenášel na arduino, které by mohlo poskytovat nesprávné hodnoty, a IC 7404 může tolerovat krátké špičkové napětí, které neprochází Arduino kolíky. IC 7404 vydává pouze obdélníkové vlny, kde arduino může snadno měřit v porovnání s analogovými vlnami.

POZNÁMKA: Maximální špičkový vstup by neměl překročit 5V.

Program:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time
float frequency
const int input = A0
const int test = 9
void setup()
{
pinMode(input,INPUT)
pinMode(test, OUTPUT)
lcd.begin(16, 2)
analogWrite(test,127)
}
void loop()
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
X=pulseIn(input,HIGH)
Y=pulseIn(input,LOW)
Time = X+Y
frequency=1000000/Time
if(frequency<=0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Frequency Meter')
lcd.setCursor(0,1)
lcd.print('0.00 Hz')
}
else
{
lcd.setCursor(0,1)
lcd.print(frequency)
lcd.print(' Hz')
}
delay(1000)
}
//-----Program Developed by R.Girish-----//

Testování měřiče frekvence:

Po úspěšném vytvoření projektu je nutné zkontrolovat, zda vše funguje dobře. K potvrzení naměřených hodnot musíme použít známou frekvenci. Abychom toho dosáhli, používáme vestavěné funkce PWM od Arduina, které mají frekvenci 490 Hz.

V programu je pin # 9 povolen, aby poskytoval 490Hz při 50% pracovním cyklu, uživatel může uchopit vstupní vodič měřiče frekvence a vložit do pin # 9 arduino, jak je znázorněno na obrázku, na LCD displeji vidíme 490 Hz (s určitou tolerancí), pokud byl uvedený postup úspěšný, je váš měřič frekvence připraven vám poskytnout experimenty.

Autorův prototyp:

Prototypový obrázek měřiče frekvence Arduino

Uživatel může také otestovat tento prototyp obvodu Arduino měřiče frekvence pomocí externího generátoru frekvence, který je zobrazen na obrázku výše.




Předchozí: Arduino Pure Sine Wave Inverter Circuit s úplným programovým kódem Další: Výroba jednokanálového osciloskopu pomocí Arduina