Arduino mjerač frekvencije pomoću zaslona 16 × 2

Arduino mjerač frekvencije pomoću zaslona 16 × 2

U ovom ćemo članku konstruirati digitalni mjerač frekvencije pomoću Arduina čija će se očitanja prikazati na LCD zaslonu 16x2 i imat će opseg mjerenja od 35 Hz do 1MHz.



Uvod

Kao zaljubljenici u elektroniku, svi bismo naišli na točku u kojoj moramo mjeriti učestalost u svojim projektima.

Tada bismo shvatili da je osciloskop tako koristan alat za mjerenje frekvencije. Ali, svi znamo da je osciloskop skup alat koji ga ne mogu priuštiti svi hobisti, a osciloskop bi mogao biti pretjeran alat za početnike.





Da bi prevladao problem mjerenja frekvencije, hobistima ne treba skupi osciloskop, već samo trebamo mjerač frekvencije koji frekvenciju može mjeriti s razumnom točnošću.

U ovom ćemo članku izraditi mjerač frekvencije, koji je jednostavan za izradu i prilagođen početnicima, čak i noob u Arduinu može to postići s lakoćom.



Prije ulaska u detalje konstrukcije, istražimo što je frekvencija i kako se ona može izmjeriti.

Što je frekvencija? (Za noobs)

Poznat nam je pojam frekvencija, ali što zapravo znači?

Pa, frekvencija se definira kao broj oscilacija ili ciklusa u sekundi. Što znači ova definicija?

To znači koliko puta amplituda 'nečega' raste i pada u JEDNOJ sekundi. Na primjer, učestalost izmjeničnog napajanja u našem prebivalištu: Amplituda 'napona' ('nešto' se zamjenjuje s 'napon') raste (+) i smanjuje (-) u jednoj sekundi, što je u većini zemalja 50 puta.

Jedan ciklus ili jedno osciliranje sastoji se od gore i dolje. Dakle, jedan ciklus / oscilacija je amplituda koja ide od nule do pozitivnog vrha i vraća se na nulu i prelazi negativan vrh i vraća se na nulu.

'Vremensko razdoblje' također je izraz koji se koristi za rješavanje frekvencije. Vremensko razdoblje je vrijeme potrebno za završetak 'jednog ciklusa'. To je ujedno i inverzna vrijednost frekvencije. Na primjer, 50 Hz ima 20 ms vremenskog razdoblja.

1/50 = 0,02 sekunde ili 20 milisekundi

Do sada biste imali neku predodžbu o frekvenciji i srodnim izrazima.

Kako se mjeri frekvencija?

Znamo da je jedan ciklus kombinacija visokog i niskog signala. Za mjerenje trajanja visokih i niskih signala koristimo 'pulseIn' u arduinu. pulseIn (pin, HIGH) mjeri trajanje visokih signala, a pulseIn (pin, LOW) mjeri trajanje niskih signala. Dodaje se trajanje impulsa oba što daje vremenski period jednog ciklusa.

Tada se određeno vrijeme izračunava za jednu sekundu. To se postiže slijedećom formulom:

Freq = 1000000 / vremensko razdoblje u mikrosekundama

Vremensko razdoblje od arduina dobiva se u mikrosekundama. Arduino ne uzorkuje ulaznu frekvenciju tijekom cijele sekunde, ali precizno predviđa frekvenciju analizirajući samo vremensko razdoblje jednog ciklusa.

Sada znate kako arduino mjeri i izračunava frekvenciju.

Krug:

Krug se sastoji od arduina koji je mozak projekta, LCD zaslona 16x2, pretvarača IC 7404 i jednog potenciometra za podešavanje kontrasta LCD zaslon .

Predloženi postav može mjeriti u rasponu od 35Hz do 1 MHz.

Veza zaslona Arduino:

Gornji dijagram je sam po sebi razumljiv, ožičena veza između arduina i zaslona standardna je i slične veze možemo pronaći na drugim projektima temeljenim na arduinu i LCD-u.

Arduino mjerač frekvencije pomoću zaslona 16x2

Gornji se dijagram sastoji od pretvarača IC 7404. Uloga IC 7404 je eliminirati buku s ulaza, tako da se buka neće širiti na arduino što bi moglo dati lažna očitanja, a IC 7404 može tolerirati kratki napon koji neće proći na igle za arduino. IC 7404 daje samo pravokutne valove tamo gdje se arduino može lako mjeriti s analognim valovima.

NAPOMENA: Maksimalni ulazni maksimum ne smije prelaziti 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-----//

Ispitivanje frekvencije:

Nakon što ste uspješno konstruirali projekt, potrebno je provjeriti radi li sve u redu. Moramo koristiti poznatu frekvenciju za potvrđivanje očitanja. Da bismo to postigli, koristimo ugrađenu arduino PWM funkcionalnost koja ima frekvenciju 490Hz.

U programu pin 9 omogućeno je davanje 490Hz pri 50% radnog ciklusa, korisnik može uhvatiti ulaznu žicu mjerača frekvencije i umetnuti u pin 9 arduino kako je prikazano na slici, na LCD zaslonu možemo vidjeti 490 Hz (uz određenu toleranciju), ako je spomenuti postupak bio uspješan, vaš mjerač frekvencije spreman je za posluživanje eksperimenata.

Autorski prototip:

Slika prototipa arduino mjerača frekvencije

Korisnik također može testirati ovaj prototip sklopa mjerača frekvencije Arduino pomoću vanjskog generatora frekvencije koji je prikazan na gornjoj slici.




Prethodno: Arduino sklop pretvarača s čistim sinusnim valom s punim programskim kodom Dalje: Izrada jednokanalnog osciloskopa pomoću Arduina