Arduino merač frekvencie využívajúci displej 16 × 2

Arduino merač frekvencie využívajúci displej 16 × 2

V tomto článku sa chystáme skonštruovať digitálny frekvenčný merač využívajúci Arduino, ktorého namerané hodnoty sa zobrazia na 16x2 LCD displeji a budú mať rozsah merania od 35 Hz do 1 MHz.



Úvod

Keďže sme nadšencami elektroniky, všetci by sme narazili na bod, v ktorom musíme v našich projektoch merať frekvenciu.

V tom okamihu by sme si uvedomili, že osciloskop je taký užitočný nástroj na meranie frekvencie. Všetci však vieme, že osciloskop je drahý nástroj, nie všetci fanúšikovia si ho môžu dovoliť a osciloskop môže byť pre začiatočníkov nadmerným nástrojom.





Na prekonanie problému merania frekvencie nepotrebujú fanúšikovia drahý osciloskop, stačí iba merač frekvencie, ktorý dokáže merať frekvenciu s primeranou presnosťou.

V tomto článku pripravíme merač frekvencie, ktorý je ľahko zostaviteľný a vhodný pre začiatočníkov, dokonca aj noob v Arduine ho dokáže ľahko.



Pred podrobnosťami o konštrukcii sa pozrime, čo je frekvencia a ako ju možno merať.

Čo je to frekvencia? (Pre noobs)

Pojem frekvencia poznáme, ale čo to v skutočnosti znamená?

Frekvencia je definovaná ako počet kmitov alebo cyklov za sekundu. Čo znamená táto definícia?

Znamená to, koľkokrát amplitúda „niečoho“ stúpa a klesá za JEDNU sekundu. Napríklad frekvencia striedavého prúdu v našom sídle: Amplitúda „napätia“ („niečo“ sa nahradí „napätím“) stúpa (+) a klesá (-) za jednu sekundu, čo je vo väčšine krajín 50-násobok.

Jeden cyklus alebo jedna oscilácia pozostáva z pohybu hore a dole. Takže jeden cyklus / oscilácia je amplitúda, ktorá sa pohybuje od nuly k pozitívnemu vrcholu a vráti sa k nule, záporný vrchol a návrat k nule.

„Časové obdobie“ je tiež termín používaný pri narábaní s frekvenciou. Časové obdobie je čas potrebný na dokončenie „jedného cyklu“. Je to tiež inverzná hodnota frekvencie. Napríklad 50 Hz má časové obdobie 20 ms.

1/50 = 0,02 sekundy alebo 20 milisekúnd

Doteraz by ste mali predstavu o frekvencii a súvisiacich výrazoch.

Ako sa meria frekvencia?

Vieme, že jeden cyklus je kombináciou vysokého a nízkeho signálu. Na meranie trvania vysokých a nízkych signálov používame v arduine „pulseIn“. pulseIn (pin, HIGH) meria trvanie vysokých signálov a pulseIn (pin, LOW) meria trvanie nízkych signálov. Pridá sa trvanie impulzu oboch, ktoré poskytujú časové obdobie jedného cyklu.

Stanovené časové obdobie sa potom počíta na jednu sekundu. To sa deje podľa nasledujúceho vzorca:

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

Časové obdobie od arduina sa získa v mikrosekundách. Arduino nesníma vstupnú frekvenciu celú sekundu, ale frekvenciu predpovedá presne analýzou iba časového obdobia jedného cyklu.

Teraz viete, ako arduino meria a počíta frekvenciu.

Obvod:

Obvod sa skladá z arduina, ktoré je mozgom projektu, 16x2 LCD displeja, invertora IC 7404 a jedného potenciometra na nastavenie kontrastu displej LCD .

Navrhované nastavenie môže merať v rozmedzí od 35 Hz do 1 MHz.

Pripojenie displeja Arduino:

Vyššie uvedený diagram je samozrejmý, káblové prepojenie medzi arduino a displejom je štandardné a podobné spojenia nájdeme aj na iných projektoch založených na arduino a LCD.

Arduino merač frekvencie využívajúci displej 16x2

Vyššie uvedený diagram pozostáva z invertora IC 7404. Úlohou IC 7404 je eliminovať šum zo vstupu, aby sa hluk nerozšíril na arduino, ktoré by mohlo poskytovať nesprávne hodnoty, a IC 7404 toleruje krátke špičkové napätie, ktoré neprechádza na arduino piny. IC 7404 vydáva iba obdĺžnikové vlny, kde arduino dokáže ľahko merať v porovnaní s analógovými vlnami.

POZNÁMKA: Maximálny vstup medzi špičkami by nemal presiahnuť 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-----//

Testovanie merača frekvencie:

Po úspešnom zostavení projektu je potrebné skontrolovať, či všetko funguje dobre. Na potvrdenie nameraných hodnôt musíme použiť známu frekvenciu. Aby sme to dosiahli, používame vstavanú funkciu PWM spoločnosti Arduino, ktorá má frekvenciu 490 Hz.

V programe je pin # 9 povolený tak, aby dával 490Hz pri 50% pracovnom cykle, užívateľ môže chytiť vstupný vodič merača frekvencie a vložiť do pinu # 9 arduina, ako je znázornené na obrázku, na LCD displeji vidíme 490 Hz (s určitou toleranciou), ak bol uvedený postup úspešný, je váš frekvenčný merač pripravený slúžiť vám pri pokusoch.

Autorský prototyp:

Prototypový obrázok merača frekvencie Arduino

Užívateľ môže tiež otestovať tento prototyp obvodu Arduino frekvenčného merača pomocou externého generátora frekvencie, ktorý je zobrazený na obrázku vyššie.




Dvojica: Arduino Pure Sine Wave Inverter Circuit s úplným programovým kódom Ďalej: Výroba jednokanálového osciloskopu pomocou Arduina