„Arduino“ dažnio matuoklis, naudojant 16 × 2 ekraną

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame straipsnyje mes sukursime skaitmeninį dažnio matuoklį naudodami „Arduino“, kurio rodmenys bus rodomi 16x2 LCD ekrane ir jo matavimo diapazonas bus nuo 35 Hz iki 1 MHz.

Įvadas

Būdami elektronikos entuziastai, mes visi būtume patyrę tašką, kuriame turime matuoti dažnį savo projektuose.



Tuo metu mes būtume supratę, kad osciloskopas yra toks naudingas įrankis dažniui matuoti. Bet mes visi žinome, kad osciloskopas yra brangi priemonė, kurią gali įsigyti ne visi mėgėjai, o osciloskopas gali būti per didelis įrankis pradedantiesiems.

Norint įveikti dažnio matavimo klausimą, mėgėjams nereikia brangaus osciloskopo, mums reikia tik dažnio matuoklio, kuris galėtų pamatuoti dažnį pakankamai tiksliai.



Šiame straipsnyje mes padarysime dažnio matuoklį, kuris yra lengvai sukonstruojamas ir patogus pradedantiesiems, net „Arduino“ „noob“ gali lengvai pasiekti.

Prieš pradėdami nagrinėti konstrukcines detales, panagrinėkime, kas yra dažnis ir kaip jį galima išmatuoti.

Kas yra dažnis? (Nėra)

Mes esame susipažinę su dažnio terminu, bet ką jis iš tikrųjų reiškia?

Na, dažnis apibrėžiamas kaip virpesių ar ciklų per sekundę skaičius. Ką reiškia šis apibrėžimas?

Tai reiškia, kiek kartų „kažkas“ amplitudė pakyla aukštyn ir žemyn per vieną sekundę. Pavyzdžiui, kintamosios srovės dažnis mūsų gyvenamojoje vietoje: „įtampos“ amplitudė („kažkas“ pakeičiama „įtampa“) per vieną sekundę padidėja (+) ir žemyn (-), o tai daugumoje šalių yra 50 kartų.

Vieną ciklą arba vieną svyravimą sudaro aukštyn ir žemyn. Taigi vienas ciklas / svyravimas yra amplitudė nuo nulio iki teigiamos smailės ir grįžta į nulį, eina neigiamą smailę ir grįžta į nulį.

„Laikotarpis“ taip pat yra terminas, vartojamas kalbant apie dažnį. Laikotarpis yra laikas, per kurį reikia atlikti „vieną ciklą“. Tai taip pat yra atvirkštinė dažnio vertė. Pvz., 50 Hz dažnis yra 20 ms.

1/50 = 0,02 sekundės arba 20 milisekundžių

Dabar jau turėtumėte idėją apie dažnį ir su juo susijusius terminus.

Kaip matuojamas dažnis?

Mes žinome, kad vienas ciklas yra aukšto ir žemo signalo derinys. Norėdami išmatuoti aukštų ir žemų signalų trukmę, arduino kalboje naudojame „pulseIn“. pulseIn (pin, HIGH) matuoja aukštų signalų trukmę, o pulseIn (pin, LOW) - žemų signalų trukmę. Pridedama abiejų impulsų trukmė, suteikianti vieno ciklo laikotarpį.

Nustatytas laikotarpis paskaičiuojamas vienai sekundei. Tai daroma pagal šią formulę:

Dažnis = 1000000 / laikotarpis mikrosekundėmis

Laikotarpis nuo „arduino“ gaunamas mikrosekundėmis. „Arduino“ visą sekundę neatrodo įvesties dažnio, tačiau tiksliai numato dažnį, analizuodamas tik vieno ciklo laikotarpį.

Dabar jūs žinote, kaip „arduino“ matuoja ir apskaičiuoja dažnį.

Grandinė:

Kontūrą sudaro „arduino“, kuris yra projekto smegenys, 16x2 LCD ekranas, „IC 7404“ keitiklis ir vienas potenciometras, skirtas reguliuoti LCD ekranas .

Siūloma sąranka gali matuoti nuo 35Hz iki 1 MHz.

„Arduino“ ekrano jungtis:

Aukščiau pateikta diagrama yra savaime suprantama, laidų jungtis tarp „Arduino“ ir ekrano yra standartinė, o panašių jungčių galime rasti ir kituose „Arduino“ ir LCD projektuose.

„Arduino“ dažnio matuoklis, naudojant 16x2 ekraną

Pirmiau pateiktą schemą sudaro keitiklis IC 7404. IC 7404 vaidmuo yra pašalinti triukšmą iš įvesties, kad triukšmas neplistų į „Arduino“, kuris gali parodyti klaidingus rodmenis, o „IC 7404“ gali toleruoti trumpą smaigalio įtampą, kuri neperduos arduino smeigtukai. IC 7404 išleidžia tik stačiakampes bangas, kuriose „arduino“ gali lengvai išmatuoti, palyginti su analoginėmis bangomis.

PASTABA: maksimali įėjimo į smailę piko vertė neturi viršyti 5 V.

Programa:

//-----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-----//

Dažnių matuoklio testavimas:

Kai sėkmingai sukursite projektą, būtina patikrinti, ar viskas veikia gerai. Norėdami patvirtinti rodmenis, turime naudoti žinomą dažnį. Norėdami tai pasiekti, naudojame „Arduino“ integruotą PWM funkciją, kurios dažnis yra 490Hz.

Programos kaiščiu Nr. 9 galima suteikti 490Hz esant 50% darbo ciklui, vartotojas gali paimti dažnio matuoklio įvesties laidą ir įterpti į „arduino“ kaištį Nr. 9, kaip parodyta paveikslėlyje, LCD ekrane galime pamatyti 490 Hz (su tam tikra tolerancija), jei minėta procedūra buvo sėkminga, dažnio matuoklis yra pasirengęs jums atlikti eksperimentus.

Autoriaus prototipas:

„Arduino“ dažnio matuoklio prototipo vaizdas

Vartotojas taip pat gali išbandyti šį „Arduino“ dažnio matuoklio grandinės prototipą naudodamas išorinį dažnio generatorių, kuris parodytas aukščiau esančiame paveikslėlyje.




Pora: „Arduino Pure Sine Wave Inverter“ grandinė su visu programos kodu Kitas: Vieno kanalo osciloskopo gaminimas naudojant „Arduino“