Arduino sagedusmõõtur 16 × 2 ekraani abil

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles artiklis ehitame Arduino abil digitaalse sagedusmõõturi, mille näidud kuvatakse 16x2 LCD-ekraanil ja mille mõõtepiirkond on 35 Hz kuni 1 MHz.

Sissejuhatus

Olles elektroonikahuviline, oleksime kõik kohanud punkti, kus peame oma projektides sagedust mõõtma.



Sel hetkel oleksime mõistnud, et ostsilloskoop on nii kasulik vahend sageduse mõõtmiseks. Kuid me kõik teame, et ostsilloskoop on kallis tööriist, mida kõik harrastajad endale lubada ei saa ja ostsilloskoop võib olla algajatele ülitugev tööriist.

Sageduse mõõtmise küsimuse ületamiseks ei vaja harrastaja kallist ostsilloskoobi, vajame lihtsalt sagedusemõõturit, mis suudaks sagedust mõõta mõistliku täpsusega.



Selles artiklis teeme sagedusmõõturi, mida on lihtne ehitada ja algajale sõbralik, isegi Arduino noob saab hõlpsasti hakkama.

Enne konstruktsiooniliste detailide uurimist uurime, mis on sagedus ja kuidas seda saab mõõta.

Mis on sagedus? (Noobide jaoks)

Mõiste sagedus on meile tuttav, kuid mida see tegelikult tähendab?

Noh, sagedus on määratletud võnkumiste või tsüklite arvuna sekundis. Mida see määratlus tähendab?

See tähendab seda, kui mitu korda “millegi” amplituud ÜHE sekundi jooksul üles ja alla läheb. Näiteks vahelduvvoolu sagedus meie elukohas: „Pinge” amplituud (‘midagi’ asendatakse ’pingega’) tõuseb sekundis üles (+) ja alla (-), mis on enamikus riikides 50 korda.

Üks tsükkel või üks võnkumine hõlmab üles ja alla. Niisiis on üks tsükkel / võnkumine see, et amplituud läheb nullist positiivsesse tippu ja tuleb tagasi nulli ning läheb negatiivseks ja naaseb nulli.

'Ajavahemik' on ka termin, mida kasutatakse sageduse käsitlemisel. Ajavahemik on aeg, mis kulub ühe tsükli lõpuleviimiseks. See on ka sageduse pöördväärtus. Näiteks 50 Hz on 20 ms ajaperiood.

1/50 = 0,02 sekundit ehk 20 millisekundit

Nüüdseks on teil mingi ettekujutus sagedusest ja sellega seotud terminitest.

Kuidas sagedust mõõdetakse?

Me teame, et üks tsükkel on kõrge ja madala signaali kombinatsioon. Kõrgete ja madalate signaalide kestuse mõõtmiseks kasutame arduinos „pulseIn“. pulseIn (pin, HIGH) mõõdab kõrgete signaalide kestust ja pulseIn (pin, LOW) madalate signaalide kestust. Lisatakse mõlema impulsi kestus, mis annab ühe tsükli ajaperioodi.

Seejärel arvutatakse määratud ajavahemik ühe sekundi jooksul. Seda tehakse järgmise valemi abil:

Freq = 1000000 / ajavahemik mikrosekundites

Arduino ajavahemik saadakse mikrosekundites. Arduino ei proovi sisendsagedust terve sekundi vältel, kuid ennustab sagedust täpselt, analüüsides vaid ühe tsükli ajaperioodi.

Nüüd teate, kuidas arduino sagedust mõõdab ja arvutab.

Vooluring:

Vooluring koosneb projekti ajuks olevast arduinost, 16x2 LCD-ekraanist, IC 7404 muundurist ja ühest potentsiomeetrist LCD ekraan .

Kavandatud seadistusega saab mõõta vahemikku 35Hz kuni 1 MHz.

Arduino kuvaühendus:

Ülaltoodud skeem on iseenesestmõistetav, juhtmete ühendus arduino ja ekraani vahel on standardne ning sarnaseid ühendusi võime leida ka teistelt arduino ja LCD-põhistest projektidest.

Arduino sagedusmõõtur 16x2 ekraani abil

Ülaltoodud skeem koosneb muundurist IC 7404. IC 7404 ülesandeks on sisendist müra kõrvaldamine, nii et müra ei leviks arduinosse, mis võib anda valenäite, ja IC 7404 talub lühikest hüppepinget, mis ei lähe üle arduino tihvtid. IC 7404 väljastab ainult ristkülikukujulisi laineid, kus arduino saab analooglainetega võrrelda.

MÄRKUS. Maksimaalne tipp-tipp sisend ei tohiks ületada 5 V.

Programm:

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

Sagedusmõõturi testimine:

Kui olete projekti edukalt üles ehitanud, on vaja kontrollida, kas kõik töötab hästi. Näitude kinnitamiseks peame kasutama teadaolevat sagedust. Selle saavutamiseks kasutame arduino sisseehitatud PWM-funktsiooni, mille sagedus on 490Hz.

Kui programmi tihvtil nr 9 on lubatud anda 490Hz 50% -lise töötsükli korral, saab kasutaja haarata sagedusemõõturi sisendjuhe ja sisestada arduino tihvti nr 9, nagu joonisel näidatud, näeme LCD-ekraanil 490 Hz (teatud tolerantsiga), kui mainitud protseduur õnnestus, olete sagedusemõõtja valmis teile eksperimente pakkuma.

Autori prototüüp:

Arduino sagedusmõõturi prototüübi pilt

Kasutaja võib katsetada ka seda Arduino sagedusmõõturi ahela prototüüpi, kasutades välist sagedusgeneraatorit, mis on näidatud ülaltoodud pildil.




Eelmine: Arduino puhta siinuslaine inverter, täisprogrammi koodiga Järgmine: Arduino abil ühekanalilise ostsilloskoobi valmistamine