BUILD FREQUENCY COUNTER 0 - 6,8MHz with Atmega16A

Prinsip kerja Frequenci Counter adalah menghitung pulsa/denyut listrik yang masuk pada sebuah Gerbang AND/NAND. di lain masukan Gerbang di hubungkan dengan denyut dengan waktu
1 detik misalnya.

Atmega16A sudah terdapat 3 timer/counter. 2 Timer/Counter dapat kita manfaatkan untuk membangun Frequenci Counter sampai 6,8 MHz. Timer0 untuk TIme base, TImer1 untuk counter. untuk mengukur frekuensi yang lebih tinggi tinggal ditambahkan Prescaller.
Timer0 dapat kita manfaatkan untuk "Time Base", Timer1 sebagai Counter 16 bit, berikut code untuk penyetingan Timer tersebut dalam bahasa Basic (BascomAVR).

BUILD  FREQUENCY COUNTER  0 - 6,8MHz  with Atmega16ABUILD  FREQUENCY COUNTER  0 - 6,8MHz  with Atmega16A
karena  Frequency Counter yang akan kita bangun menggunakan Mikrokontroler, kita bisa menggantikan Gerbang AND dengan  Software, jadi tidak perlu IC AND terpisah.
berikut skema menggunakan Proteus

BUILD  FREQUENCY COUNTER  0 - 6,8MHz  with Atmega16A

menggunakan Atmega16A klo hanya untuk membangun Frequency Counter akan banyak PORT yang nganggur, pilihan yang tepat menggunakan Atmega8A yang mempunyai jumlah Port yang lebih sedikit dan tentu harga Chip yang lebih murah. lha kenapa disini memakai Atmega16. ini di karenakan Port dan alternatif port Atmega8A letaknya tidak beraturan dan menyusahkan untuk aplikasi2 tertentu, termasuk Frequency Counter ini. sehingga kurang pas untuk pembelajaran disini. akan tetapi dengan teknik2 pemrograman tertentu atmega8A dapat dipakai untuk aplikasi Frequency Counter.
selanjutnya kita akan masuk lebih dalam ke Pemrogramanya
sederhananya begini:
buat sebuah TimeBase 1 detik, selama 1 detik itu Timer/Counter1 akan menghitung jumlah pulsa yang masuk, setelah 1 detik tercapai segera stop. maka di register Timer/Counter1 akan terdapat sebuah nilai yang besarnya tergantung dari frequency yang masuk. tampilkan nilai itu di Seven Segmen/LCD. langkah berikutnya Nolkan (reset) isi di Register Timer/counter1 untuk penghitungan berikutnya. berikut Kode untuk TImeBase 1 detik dan fungsi gerbang NAND secara software. ditulis dengan BascomAVR

BUILD  FREQUENCY COUNTER  0 - 6,8MHz  with Atmega16A

variabel2 D1....D8 adalah penampung sisa bagi yang akan menghasilkan data BCD yang nantinya akan dikirim ke Seven Segmen. mudah bukan? he..he..
menampilkan data ke Seven Segmen dengan metode jalur tunggal (multiplexing) adalah berbagi waktu antar Seven Segmen. semakin kecil waktu yang diberikan semakin halus tampilan Seven Segmenya, demikian pula sebaliknya.
berikut kode menampilkan data frequency atau apapun ke Seven Segmen

BUILD  FREQUENCY COUNTER  0 - 6,8MHz  with Atmega16A

variabel Digit mewakili jumlah Seven Segmen, jumlahnya 8 buah. 7seg adalah tabel konstanta yang tersimpan di ROM yang menyimpan data pemyalaan Led sesuai bentuk2 angka (0-9). jadi kode diatas merupakan gabungan konversi BCD to Seven Segmen dan Scaning Seven Segmen itu sendiri.
kerangka program:

BUILD  FREQUENCY COUNTER  0 - 6,8MHz  with Atmega16A


Artikel Terkait

BUILD FREQUENCY COUNTER 0 - 6,8MHz with Atmega16A
4/ 5