Arduino frekvenču mērītājs, izmantojot 16 × 2 displeju

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā rakstā mēs izveidosim digitālo frekvences mērītāju, izmantojot Arduino, kura rādījumi tiks parādīti 16x2 LCD displejā un kuru mērījumu diapazons būs no 35 Hz līdz 1 MHz.

Ievads

Būdami elektronikas entuziasts, mēs visi būtu saskārušies ar punktu, kur mums projektos jāmēra biežums.



Tajā brīdī mēs būtu sapratuši, ka osciloskops ir tik noderīgs instruments frekvences mērīšanai. Bet mēs visi zinām, ka osciloskops ir dārgs rīks, ko ne visi hobiji var atļauties, un osciloskops varētu būt pārspīlēts rīks iesācējiem.

Lai pārvarētu frekvences mērīšanas jautājumu, hobijam nav vajadzīgs dārgs osciloskops, mums ir nepieciešams tikai frekvences mērītājs, kas var mērīt frekvenci ar saprātīgu precizitāti.



Šajā rakstā mēs gatavosim izveidot frekvences mērītāju, kuru ir viegli uzbūvēt un draudzīgi iesācējiem, pat Arduino noob var paveikt viegli.

Pirms iedziļināties konstrukcijas detaļās, izpētīsim, kas ir frekvence un kā to var izmērīt.

Kas ir frekvence? (Noobs)

Mēs esam pazīstami ar terminu biežums, bet ko tas patiesībā nozīmē?

Nu, frekvence ir definēta kā svārstību vai ciklu skaits sekundē. Ko nozīmē šī definīcija?

Tas nozīmē, cik reižu “kaut kas” amplitūda vienā sekundē iet uz augšu un uz leju. Piemēram, maiņstrāvas frekvence mūsu dzīvesvietā: “Sprieguma” amplitūda (‘kaut ko’ aizstāj ar ‘spriegumu’) vienā sekundē iet uz augšu (+) un uz leju (-), kas lielākajā daļā valstu ir 50 reizes.

Vienu ciklu vai vienu svārstību veido augšup un lejup. Tātad viens cikls / svārstības ir tā, ka amplitūda iet no nulles līdz pozitīvajai pīķim un atgriežas līdz nullei, iet negatīvā pīķa un atgriežas nullei.

“Laika periods” ir arī termins, ko lieto, runājot par biežumu. Laika periods ir laiks, kas vajadzīgs, lai pabeigtu “vienu ciklu”. Tā ir arī apgrieztā frekvences vērtība. Piemēram, 50 Hz ir 20 ms laika periods.

1/50 = 0,02 sekundes vai 20 milisekundes

Tagad jums jau ir kāda ideja par biežumu un ar to saistītajiem terminiem.

Kā mēra biežumu?

Mēs zinām, ka viens cikls ir augsta un zema signāla kombinācija. Lai izmērītu augstu un zemu signālu ilgumu, mēs arduino izmantojam “pulseIn”. pulseIn (pin, HIGH) mēra augstu signālu ilgumu un pulseIn (pin, LOW) zemu signālu ilgumu. Tiek pievienots abu impulsu ilgums, kas dod viena cikla laika periodu.

Pēc tam vienu sekundi aprēķina noteikto laika periodu. To veic, izmantojot šādu formulu:

Frekvence = 1000000 / laika periods mikrosekundēs

Laika periods no arduino tiek iegūts mikrosekundēs. Arduino neievada ievades frekvenci visu sekundi, bet tas precīzi paredz frekvenci, analizējot tikai viena cikla laika periodu.

Tagad jūs zināt, kā arduino mēra un aprēķina frekvenci.

Ķēde:

Shēma sastāv no arduino, kas ir projekta smadzenes, 16x2 LCD displeja, IC 7404 invertora un viena potenciometra, lai pielāgotu LCD displejs .

Piedāvātā iestatīšana var būt diapazonā no 35Hz līdz 1 MHz.

Arduino displeja savienojums:

Iepriekš minētā diagramma ir pašsaprotama, vadu savienojums starp arduino un displeju ir standarta, un mēs varam atrast līdzīgus savienojumus arī citos arduino un LCD balstītos projektos.

Arduino frekvences mērītājs, izmantojot 16x2 displeju

Iepriekš redzamā diagramma sastāv no invertora IC 7404. IC 7404 uzdevums ir novērst troksni no ieejas, lai troksnis netiktu izplatīts arduino, kas varētu dot kļūdainus rādījumus, un IC 7404 var izturēt īsu spike spriegumu, kas nepāriet uz arduino piespraudes. IC 7404 izvada tikai taisnstūrveida viļņus, kur arduino var viegli izmērīt salīdzinājumā ar analogajiem viļņiem.

PIEZĪME. Maksimālā maksimālā līdz maksimālā ievade nedrīkst pārsniegt 5 V.

Programma:

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

Frekvenču mērītāja pārbaude:

Kad esat veiksmīgi izveidojis projektu, jāpārbauda, ​​vai viss darbojas labi. Lai apstiprinātu rādījumus, mums jāizmanto zināma frekvence. Lai to paveiktu, mēs izmantojam arduino iebūvēto PWM funkcionalitāti, kuras frekvence ir 490Hz.

Programmas tapā # 9 ir iespējots dot 490Hz pie 50% darba cikla, lietotājs var paņemt frekvences mērītāja ieejas vadu un ievietot arduino tapā # 9, kā parādīts attēlā, mēs varam redzēt 490 Hz LCD displejā (ar zināmu pielaidi), ja minētā procedūra bija veiksmīga, jūs frekvences mērītājs ir gatavs kalpot jums eksperimentiem.

Autora prototips:

Arduino frekvences mērītāja prototipa attēls

Lietotājs var pārbaudīt arī šo Arduino frekvences mērītāja ķēdes prototipu, izmantojot ārējo frekvences ģeneratoru, kas parādīts augšējā attēlā.




Pāri: Arduino Pure Sine Wave Inverter ķēde ar pilnu programmas kodu Nākamais: Viena kanāla osciloskopa izgatavošana, izmantojot Arduino