Merilnik frekvence Arduino z uporabo zaslona 16 × 2

Preizkusite Naš Instrument Za Odpravo Težav





V tem članku bomo izdelali digitalni merilnik frekvence z uporabo Arduina, katerega odčitki bodo prikazani na 16x2 LCD zaslonu in bodo imeli merilno območje od 35 Hz do 1MHz.

Uvod

Ker smo navdušeni nad elektroniko, bi vsi naleteli na točko, kjer moramo v svojih projektih meriti frekvenco.



Takrat bi spoznali, da je osciloskop tako uporabno orodje za merjenje frekvence. Vsi pa vemo, da je osciloskop drago orodje, ki si ga vsi hobiji ne morejo privoščiti, osciloskop pa je lahko preveč orodje za začetnike.

Da bi rešili težavo z merjenjem frekvence, hobi ne potrebuje dragega osciloskopa, potrebujemo le frekvenčni merilnik, ki lahko meri frekvenco z razumno natančnostjo.



V tem članku bomo izdelali merilnik frekvence, ki je enostaven za izdelavo in prijazen do začetnikov, tudi noob v Arduinu z lahkoto doseže.

Preden gremo v konstrukcijske podrobnosti, raziščimo, kaj je frekvenca in kako jo je mogoče izmeriti.

Kaj je frekvenca? (Za noobs)

Izraz frekvenca nam je znan, kaj pa v resnici pomeni?

No, frekvenca je definirana kot število nihanj ali ciklov na sekundo. Kaj pomeni ta definicija?

Pomeni, kolikokrat se amplituda 'nečesa' v ENI sekundi dvigne in spusti. Na primer frekvenca izmeničnega toka v našem bivališču: amplituda 'napetosti' ('nekaj' se nadomesti z 'napetost') se v eni sekundi poveča (+) in spusti (-), kar je v večini držav 50-krat.

En cikel ali eno nihanje obsega gor in dol. Torej en cikel / nihanje je amplituda gre od nič do pozitivnega vrha in se vrne na nič in gre negativni vrh in se vrne na nič.

'Časovno obdobje' je tudi izraz, ki se uporablja pri obravnavanju pogostosti. Časovno obdobje je čas, potreben za dokončanje 'enega cikla'. To je tudi inverzna vrednost frekvence. Na primer 50 Hz ima 20 ms časovno obdobje.

1/50 = 0,02 sekunde ali 20 milisekund

Do zdaj bi že imeli kakšno predstavo o frekvenci in z njo povezanih izrazih.

Kako se meri frekvenca?

Vemo, da je en cikel kombinacija visokega in nizkega signala. Za merjenje trajanja visokih in nizkih signalov v arduinu uporabljamo “pulseIn”. pulseIn (pin, HIGH) meri trajanje visokih signalov, pulseIn (pin, LOW) pa trajanje nizkih signalov. Doda se trajanje pulza obeh, ki da časovno obdobje enega cikla.

Nato se določeno časovno obdobje izračuna za eno sekundo. To se naredi po naslednji formuli:

Freq = 1000000 / časovno obdobje v mikrosekundah

Časovno obdobje iz arduina dobimo v mikrosekundah. Arduino ne vzorči vhodne frekvence za celo sekundo, vendar natančno napove frekvenco z analizo samo obdobja enega cikla.

Zdaj veste, kako arduino meri in izračuna frekvenco.

Vezje:

Vezje je sestavljeno iz arduina, ki je možganov projekta, LCD zaslona 16x2, pretvornika IC 7404 in enega potenciometra za nastavitev kontrasta LCD zaslon .

Predlagana nastavitev lahko meri od 35 Hz do 1 MHz.

Povezava zaslona Arduino:

Zgornji diagram je sam po sebi razumljiv, kabelska povezava med arduinom in zaslonom je standardna in podobne povezave lahko najdemo pri drugih projektih, ki temeljijo na arduinu in LCD.

Merilnik frekvence Arduino z zaslonom 16x2

Zgornji diagram je sestavljen iz pretvornika IC 7404. Vloga IC 7404 je odpraviti hrup z vhoda, tako da se hrup ne bo razširil na arduino, kar bi lahko povzročilo napačne odčitke, IC 7404 pa lahko prenaša kratkostično napetost, ki ne bo prešla na zatiči arduino. IC 7404 oddaja samo pravokotne valove, pri katerih lahko arduino enostavno izmeri v primerjavi z analognimi valovi.

OPOMBA: Najvišji vhodni vrh ne sme presegati 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-----//

Preskušanje frekvenčnega merilnika:

Ko ste uspešno izdelali projekt, morate preveriti, ali vse deluje v redu. Za potrditev odčitkov moramo uporabiti znano frekvenco. Da bi to dosegli, uporabljamo vgrajeno funkcionalnost PWM arduino s frekvenco 490Hz.

V programu pin št. 9 je omogočeno 490Hz pri 50% obratovalnem ciklu, uporabnik lahko zgrabi vhodno žico frekvenčnega merilnika in vstavi v pin št.9 arduina, kot je prikazano na sliki, na LCD zaslonu vidimo 490 Hz (z določeno toleranco), če je bil omenjeni postopek uspešen, je vaš merilnik frekvence pripravljen za poskuse.

Avtorjev prototip:

Prototipna slika merilnika frekvence Arduino

Uporabnik lahko preizkusi tudi ta prototip vezja frekvenčnega merilnika Arduino z uporabo zunanjega frekvenčnega generatorja, ki je prikazan na zgornji sliki.




Prejšnja: Arduino čisti sinusni pretvornik s polno programsko kodo Naprej: Izdelava enokanalnega osciloskopa z uporabo Arduina