Frekuensi meter adalah perangkat yang berfunsi untuk mengetahui frekuensi suatu sinyal. Frekuensi meter sering juga disebut dengan nama “frekuensi counter“. Frekuensi meter tidaklah harus dibeli dengan biaya yang mahal namun dapat dibuat dengan komponen yang cukup sederhana dengan bantuan komputer. Di dalam aplikasi ini tidak diperlukan komputer yang canggih tetapi cukup komputer ‘murah’ dengan prosessor 80386 ke atas untuk membuat Frekuensi Meter Menggunakan Komputer (PC).
Frekuensi meter ini cukup sederhana baik pada programnya maupun pada perangkat kerasnya. Frekuensi meter ini dapat mengukur sinyal frekuensi audio antara 20Hz sampai 20KHz. Ketelitian alat ukur ini cukup baik yaitu sekitar 0.5Hz.
Blok Diagram Frekuensi Meter Menggunakan Komputer (PC)
Input sinyal merupakan input sinyal audio yang ingin diukur frekuensinya dengan tegangan puncakmaksimunya adalah sekitar 1.3V. Bila Tegangan puncak sinyal audio tersebut di atas 1.3V maka akan terjadi pemotongan tegangan puncak oleh rangkaian dioda D1 dan D2. Rangkaian ini dikatakan sebagai rangkaian ‘limiter’ yang berfungsi untuk membatasi rangkaian in dari tegangan sinyal input yang terlalu besar. Jika menggunakan dioda dengan tipe 1N4148 maka rangkaian ini masih tahan untuk menerima tegangan sinyal audio sampai 50Vpp.
Frekuensi meter ini akan dapat bekerja dengan baik jika komputer yang digunakan mempunyai printer port yang bi-directional (dua arah). Pada aplikasi ini printer port digunakan untuk menerima data dari oktal 3 state buffer 74LS541. Data yan diterima merupakan data binary dari 7 stage ripple counter 4024.
Prinsip Kerja Sistem Frekuensi Meter
Pada dasarnya prinsip kerja dari frekuensi meter adalah menghitung jumlah pulsa yang masuk ke dalam sebuah counter dalam selang waktu tertentu. Di dalam sistem ini pulsa dihitung selama dua detik sehingga mendapatkan resolusi yang cukup baik pada daerah frekuensi audio. Sehingga untuk selang waktu 2 detik tersebut akan mendapatkan resolusi penghitungan sampai 0.5 Hz.
Rangkaian limiter akan memotong, clipping, sinyal dengan tegangan di atas 1.3V. Pemotongan sinyal ini tidak akan mempengaruhi kerja sistem tetapi dapat melindungi rangkaian selanjutnya dari tegangan berlebih. Rangkaian berikutnya adalah rangkaian ‘buffer amplifier’ yang akan membuffer sinyal dari ‘limiter’ sehingga tidak membebani rangkaian yang sedang dites. Pembebanan yang berlebihan pada rangkaian yang berlebihan akan dapat menyebabkan perubahan frekuensi kerja dari sistem yang dites atau bahkan mengacaukan sistem tersebut.
Bagian yang paling akhir sebelum rangkaian interface ke printer port adalah rangkaian schmitt trigger. Rangkaian in akan meningkatkan penguatan sehingga mampu menerima sinyal yang lemah yang mempunyai tegangan puncak 100mVpp dan menghasilkan sinyal yang baik untuk menghasilkan sebuah pembacaan pada komputer. Rangkaian schmit ini juga membatasi level sinyal input di mana seharusnya tidak menghasilkan suatu pembacaan. Untuk mengatur output dari schmitt trigger ini maka output dari rangkaian schmitt trigger ini diumpankan pada IC 4001 yang merupakan gerbang NOR 2 input. Dengan ada nya gerbang NOR ini maka sinyal STROBE dari printer port akan aktif selama 2 detik dan menyebabkan pulsa-pulsa diteruskan ke output gerbang NOR ini dan di-’count’ oleh 7 stage binary ripple counter.
Rangkaian Audio Frekuensi Meter
Penghitung Biner Pada Frekuensi Meter
Penghitung biner ini dibentuk dari 4024, sebuah IC CMOS yang merupakan 7 stage binary ripple counter. Counter yang digunakan harus membentuk counter 17 stage binary counter sehingga harus menggunakan 3 buah IC 4024 yang dikaskadekan. Peng-kaskade-an counter akan memungkinkan dibentuk sebuah counter tertentu, dimana output MSB dari counter diumpankan ke clock counter berikutnya.
Blok Diagram Casacade Counter
Pada awal penghitungan, 17 stage binary counter ini harus direset terlebih dahulu untuk memastikan bahwa nilai awalnya adalah 00. Sinyal reset harus dibangkitkan lerlebih dahulu dari printer port pin ‘Init’. Reset pada 7 stage binary ripple counter ini aktif ‘high’ sehingga ketika tegangan pada pin ‘init’ ini pada +5Volt maka kaskade counter ini akan ter-‘reset’ sehingga semua outputnya ‘low’.
Rangkaian Interface Frekuensi Meter ke Printer Port dan 17 Stage Binary Ripple Counter
Rangkaian pada gambar rangkaian audio frekuensi meter dan gambar rangkaian inteface frekuensi meter diatas merupakan rangkaian secara keseluruhan dari proyek ini dimana output dari gerbang NOR 2 input pada gambar 2 (pin pulse) akan memberikan pulsa yang akan dihitung oleh counter sehingga harus diumpankan pada pin clock pada counter. Sinyal ‘strobe’ dari printer port ini digunakan untuk ‘memperbolehkan’ pulsa clock dari gerbang NOR 2 input pada gambar 2 masuk ke pin clock pada counter (gambar 4). Sinyal ‘strobe’ aktif pada logika ‘low’. Perhatikan gambar rangkaian audio frekuensi meter, ketika ‘strobe’ low maka ketika pin ‘in pulse’ low maka akan menghasilkan high pada output NOR sebaliknya ketika strobe tetap low dan pin ‘in pulse’ high akan menghasilkan output low pada outputnya. Tetapi ketika pin ‘strobe’ dalam kondisi high maka akan menghasilkan output low walaupun pin ‘in pulse’-nya dalam kondisi low atau high. Jadi pulsa yang dihasilkan dari sinyal suara akan diteruskan ke pin clock pada counter jika pin strobe dalam kondisi high.
Data yang akan diambil dari sistem ini merupakan data 16 bit yang dihasilkan dari 17 stage binary ripple counter. Oleh sebab itu di sini ada sedikit penyesuaian untuk printer port yang hanya 8 bit data.
Solusinya adalah dengan menggunakan 74LS541 yang merupakan octal 8 bit line driver with three state outputs. Dengan menggunakan 74LS541 maka data dikelompokkan dalam 2 byte dan aktivasinya diatur dari sebuah pin dari printer port yaitu pin Auto Line Feed, ALF. Ketika sinyal ALF ini high maka data yang diambil adalah data 8 bit pertama sedangkan ketika sinyal ALF ini low data yang diambil adalah data 8 bit kedua. Dimana data 8 bit yang pertama adalah lower byte sedangkan data 8 byte berikutnya adalah upper byte.
Dengan menggunakan inverte 74LS14 maka akan dapat dipastikan hanya ada satu 74LS541 yang aktif pada suatu saat sehingga data yang ingin diambil dapat dimasukkan ke dalam printer port. Dengan bantuan software maka nantinya didapatkan sebuah 16 bit data.
Yang tidak kalah pentingnya adalah deteksi terjadi kondisi overflow dari counter. Karena jika hal ini terjadi dan tidak terdapat deteksi yang benar maka tidak akan menghasilkan pembacaan yang benar. Hal in disebabkan karena ketika counter sudah mencapai overflow maka pada step berikutnya akan kembali lagi ke 00 dan mengulangi counternya mulai dari awal lagi. Sehingga jika terjadi overflow maka pembacaan akan menghasilkan nilai yang lebih rendah dari seharusnya. Pada counter 4024 tidak terdapat output overflow sehingga untuk menandakan terjadinya overflow maka digunakan bit output yang lebih tinggi dalam hal ini pada counter paling tinggi pada bit Q3 karena output yang diambil mulai dari Q1..Q7 counter pertama, Q1..Q7 counter kedua, Q1 dan Q2 pada counter ketiga (counter paling tinggi).
Satu byte sisa dari 17 stage binari counter yang dibentuk (Q3) digunakan untuk menghasilkan sinyal overflow, yang akan memberitahu ke printer port bahwa sistem (sistem frekuensi meter) telah terjadi overflow melalui pin busy pada printer port. Hal ini bisa dimungkinkan demikian karena output dari Q3 dan reset digabungkan di dalam sebuah SR Latch dengan gerbang NOR.
Pada saat normal, dimana jumlah pulsa yang dihitung tidak melebihi kapasitas dari 17 stage binary ripple counter maka pin Q3 pada counter yang paling tinggi tidak akan set tetapi jika terjadi hal demikian maka pin Q3 ini akan set yang artinya terjadi overflow pada counter. Sinyal ini dapat dimonitor dari pin busy pada printer port.
RS latch akan ‘menangkap’ sinyal overflow dari Q3 ini (perubahan dari low – high – low) dan kemudian diumpankan ke pin busy pada printer port. Kondisi overflow ini akan tetap ‘ditahan’ oleh latch sampai diberi sinyal reset yaitu ketika pin init-nya dalam kondisi high. Sinyal ini dapat digunakan untuk memberitahu software bahwa telah tejadi overflow dan mengulangi proses penghitungan mulai dari awal lagi.
Interface dari rangkaian pencacah 17 bit dengan PC dan perangkat lunaknya yang berfungsi untuk membaca dan mengontrol rangkaian pencacah serta menampilkan nilaimya di monitor.
Sinyal Interface Frekuensi Meter
Sinyal-sinyal interface di dalam sistem ini adalah :
- Strobe : Berfungsi untuk membukam gerbang sinyal sehingga pencacah dapat menghitung banyak pulsa dalam interval waktu tertentu. Pada regiter kontrol bit-0.
- ALF : Auto line Feed berfungsi untuk menentukan data yang dibaca. Terletak pada register kontrol bit-1.
- Busy : Indikator overflow. Terletak pada regiter status bit-7
- Init : Melakukan reset pencacah. Terletak pada register kontrol bit-2.
Pada sistem ini data yang dibaca adalah sebanyak 16 bit dari pencacah 17 bit. Bit ke-17 digunakan oleh pencacah untuk menandakan bahwa 16 bit data telah siap untuk dibaca. Komputer harus menunggu bit ke-17 in sampai ‘set’ untuk membaca data.
Namun yang menjadi masalah sekarang adalah pada printer portnya. Data bus untuk printer port hanya 8 bit sedangkan data yang akan dibaca adalah 16 bit. Untuk mengatasi masalah ini maka pembacaanya dilakukan dua kali yaitu untuk lower byte (D0..D7) kemudian baru membaca upper byte (D8..D15). Untuk keperluan ini maka diperlukan sebuah sinyal kontrol dari komputer untuk memberitahukan rangkaian pencacah untuk menyiapkan data yang diinginkan oleh komputer, data lower byte atau data upper byte. Di dalam sistem ini menggunakan sinyal ‘ALF’ (Auto Line Feed).
Ketika ALF bernilai ‘1’ maka data yang diambil adalah data lower byte (D0..D7) sedangkan sebaliknya, jika bernilai ‘0’ maka data yang diambil adalah data upper byte (D8..D15).
Tabel Fungsi Printer Port
Pada gambar diats merupakan tabel fungsi dari pin-pin pada printer port. Pada kolom sinyal, huruf ‘n’ yang mengawali sebuah nama sinyal menunjukkna bahwa keaktifan sinyal tersebut adalah aktif low. Jika diamati lebih lanjut, semua port/register control semuanya adalah hardware inverted. Dengan demikian jika kita mengoutputkan ‘1’ ke register kontrol maka output dari register kontrol ini adalah ‘0’.
Dari keempat sinyal yang digunakan 3 diantaranya adalah sinyal dari register kontrol dan satu dari register status. Yang termasuk di dalam register kontrol adalah : Strobe, Auto Line Feed, Init sedangkan yang termasuk register status adalah Busy.
Tabel Alamat Port LPT
Setiap printer port mempunyai 3 buah register yaitu : Register data, register kontrol dan register status. Register data terdiri dari 8 bit data sedangkan register kontrol dan register status tidak semuanya terpakai. Oleh karena setiap port mempunyai 3 buah register maka tiap register ini harus mempunyai alamat tersendiri.
- Register Data : Alamat LPT + $00
- Register Status : Alamat LPT + $01
- Register Kontrol : Alamat LPT + $02
Dimana alamat LPT merupakan alamat LPT1 atau LPT2 yaitu $378 atau $278. Sebagai contoh, misalnya digunakan LPT1 maka alamat register data, register status dan register kontrol adalah $378, $379 dan $37A.
Prinsip Kerja Program Frekuensi Meter Menggunakan Komputer
Untuk membuat program dari sistem ini cukup mudah. Pertama kali yang harus dilakukan adalah melakukan setting pada LPT port agar bidirectional yaitu pada bit-5 pada register kontrol. Langkah berikutnya adalah me-reset pencacah/counter. Hal ini dilakukan agar pencacahannya selalu dimulai dari nol. Untuk tujuan ini maka yang harus dilakukan adalah memberikan ‘1’ pada semua IC pencacah 4024. Dalam hal ini sinyal yang mengontrolnya adalah sinyal Init pada register kontrol bit-2 diberi ‘0’. Hal ini dilakukan karena pada register kontrol merupakan register yang hardware inverted.
Fungsi pin pada Printer Port
Untuk melewatkan sinyal yang akan dihitung oleh pencacah maka signal gateharus diaktifkan. Signal gate ini dibentuk dari gerbang OR dimana jika sinyal strobe bernilai ‘1’ maka output dari gerbang OR ini akan selalu ‘1’ sehingga pencacah tidak akan aktif. Ketika sinyal strobe bernilai ‘0’ maka sinyal yang akan dihitung keluar dari gerbang OR seperti input apa adanya. Untuk tujuan ini maka pada program sinyal strobe ini harus di-‘1’-kan agar outputnya ‘0’ pada rangkaian pencacah, hardware inverted.
Dan proses tersebut di atas ditunggu selama 1 detik sehingga dapat ditentukan jumlah pulsa yang telah dicacah oleh 4024 selama satu detik dan di dapatkan nilai frekuensinya tanpa perhitungan yang lain. Setelah ditunda selama satu detik maka sinyal strobe harus ‘1’ agar sinyal tidak dicacah lagi sehingga pada programnya strobe harus di-‘0’-kan.
Nah sampai disini sinyal busy harus dibaca dan begitu pula dengan data 16 bit dari pencacah. Jika busy bernilai ‘1’ maka telah terjadi overflow dalam penghitungan. Dengan kondisi ini maka dapat dikatakn frekuensi sinyal yang diukur terlalu tinggi, di atas 65KHz. Untuk mendapatkan pembacaan frekuensi di atas 65KHz ada sedikit modifikasi pada program yaitu pada waktu tunda sinyal strobe.
Waktu tunda selama satu detik dipilih karena akan menghasilkan pembacaan yang lebih teliti untuk frekuensi rendah daripada waktu tunda yang lebih pendek daripada satu detik. Tetapi jika diperlukan pembacaan untuk frekuensi yang lebih tinggi maka waktu tunda ini dapat dikecilkan , misalnya menjadi 100ms untuk frekuensi sampai 655KHz.
Setelah dilakukan pembacaan sinyal busy maka data dari pencacah dibaca 2 kali. Untuk membaca data lower byte, pada program, sinyal ALF harus di-‘1’-kan kemudian data dari data register dibaca. Selanjutnya sinyal ALF harus di-‘0’-kan agar dapat membaca upper byte.
Sampai di sini proses satu kali scan telah selesai dan untuk melakukannya lagi, proses diulangi mulai dari awal lagi, dimana pencacah harus di-reset terlebih dahulu.
Contoh Program Untuk Frekuensi Meter Menggunakan Komputer (PC)
Contoh program PC Frekuensi Meter}
Uses Crt;Const
BaseAddress = $378; {LPT1}
DataPort = BaseAddress+$00;
StatusPort = BaseAddress+$01;
ControlPort = BaseAddress+$02;Var
Key : Char;
Freq : LongInt;
Status : Byte;
StatusMessage : String;
LowerData : LongInt;
UpperData : LongInt;Begin
clrscr;
{Inisialisasi bi directional printer port}
{
bit 0 : Strobe : 0 –> No Pass
bit 1 : ALF : 0 –> Lower Byte
bit 2 : Init : 0 –> Reset Pencacah
bit 5 : Bidirectional : 1 –> Bidirectional mode is ON
}Repeat
Port[ControlPort]:=$30; {Inisialisasi}clrscr;
{Reset OFF}
Port[ControlPort]:=Port[ControlPort] or $04;
{Pass signal}
Port[ControlPort]:=Port[ControlPort] or $01;
Delay(1000); {Delay 1 detik}
Port[ControlPort]:=Port[ControlPort] and $FE; {No Pass}{Ambil Status overflow}
Status := Port[StatusPort] and $80;
If Status = $80 then
StatusMessage :=
‘Overflow !!! — False data received’else
StatusMessage := ‘In Range ‘;
{Get Lower Byte}
Port[ControlPort]:=Port[ControlPort] and $FD; {ALF = 0}
LowerData:=Port[DataPort];
{Get Upper Byte}
Port[ControlPort]:=Port[ControlPort] or $02; {ALF = 1}
UpperData:=Port[DataPort];Freq := LowerData + (UpperData*256);
Writeln(‘Frekuensi saat ini adalah : ‘,Freq,
‘ Hz — Status : ‘, StatusMessage);
Writeln;
Write(‘Scan Ulang ? [Y/N] ‘);
Repeat
Readln(Key);
key:=upcase(key);
Until key in [‘Y’,’N’];
Until key=’N’;
End.
Frekuensi meter menggunakan komputer (PC) merupakan salah satu pilihan bila ingin memiliki frekuensi meter dengan harga yang murah.
Sumber disini