MEMBUAT SENDIRI FREKUENSI METER DIGITAL Aplikasi Sistem Mikrokontroler Zainal Abidin1) 1)
Divisi Sistem Mikrokontroler, PLATOGEOSAINS Meteorologi, FITB – ITB – Indonesia
Kamis, 3 Desember 2009
PENDAHULUAN Frekuensi meter adalah alat yang digunakan untuk mengukur frekuensi suatu sinyal listrik. Frekuensi yang dimaksud adalah banyaknya pulsa tiap satuan waktu. Satuan frekuensi adalah Hz atau s-1. Frekuensi meter biasanya ditambahkan pada multimeter digital yang cukup mahal. Salah satu contohnya adalah UT60A buatan Hongkong. Frekuensi meter dapat dibuat sendiri dengan memanfaatkan piranti counter (pencacah) pada mikrokontroler (µC) ATMEGA 32. ATMEGA 32 merupakan sistem mikroprosesor 8 bit berbasis RISC (Reduced Instruction Set Computing) dengan kecepatan maksimal 16 MHz. Counter akan menghitung banyaknya pulsa dalam interval waktu tertentu yang dapat diatur oleh pemrogram µC. Perhitungan tersebut didasarkan pada perubahan kondisi level tegangan TTL, yaitu Falling dan Rising Edge. ATMEGA 32 memiliki dua buah counter melalui pin PB0 dan PB1. Pin PB0 terhubung dengan counter 0 dan PB1 dengan counter 1. Counter 0 berukuran 8 bit yang ditampung oleh sebuah register, yaitu TCNT0. Sedangkan counter 1 berukuran 16 bit yang ditampung oleh dua buah register, yaitu TCNT1L dan TCNT1H. TCNT1L menampung 8 bit hasil perhitungan pertama, sedangkan TCNT1H menampung 8 bit hasil perhitungan selanjutnya. Tipe data kedua register tersebut adalah unsigned character dengan format heksadesimal. Sehingga untuk mendapatkan hasil perhitungan counter 1, nilai TCNT1H harus digabungkan dengan TCNT1L yang kemudian dikonversi menjadi desimal. ATMEGA 32 juga menyediakan fitur overflow interrupt, yaitu penghentian program utama sementara untuk menjalankan sub-program akibat melimpahnya nilai counter. Jika counter 1 diaktifkan, interupsi tersebut akan tereksekusi setelah gabungan TCNT1H dan TCNT1L menghasilkan bilangan desimal sebesar (216-1) = 65535. Walaupun counter 1 memiliki ketelitian lebih tinggi (~1/65535) dibandingkan counter 0 (~1/255), tetapi penggunaan counter 1
PLATOGEOSAINS | Aplikasi Sistem Mikrokontroler
1
kurang efektif untuk aplikasi sistem µC. Oleh karena itu, penulis menggunakan counter 0 untuk membuat frekuensi meter digital. PRINSIP KERJA Frekuensi meter ini akan menghitung banyaknya pulsa suatu sinyal listrik tiap lima detik. Counter 0 berukuran 8 bit, hal ini berarti TCNT0 hanya mampu menampung (28-1) = 255 pulsa. Agar frekuensi meter yang dibuat dapat menjangkau frekuensi seluas mungkin, maka penulis mengaktifkan interupsi overflow. Variabel count merupakan penampung untuk penanda jumlah kejadian interupsi. Formula konversi timer 01 dapat digunakan untuk mendapatkan jumlah total pulsa, yaitu: pulsa = (256*count) + TCNT0 Sedangkan frekuensi dapat diperoleh dari formula berikut: frekuensi = pulsa/5 Firmware (program) dapat didownload di http://www.ziddu.com/download/7584735/ frekuensimeter.7z.html. Penulis menggunakan CodeVisionAVR C 2.03.4 sebagai editor sekaligus kompiler kode program µC. CodeVisionAVR dapat memrogram waktu tunda mulai dari 0.25 µs hingga 1000 ms (dengan X-TAL 4 MHz). Agar µC dapat melakukan penundaan waktu hingga lima detik, penulis mengetikkan lima baris perintah delay_ms (1000);. Selain itu, reset nilai count dan TCNT0 juga dilakukan setelah frekuensi ditampilkan pada terminal. Jangkauan frekuensi meter mulai dari 1/5 = 0.2 Hz hingga [(256*65535)+255]/5 ~ 3.4MHz. Sebelum program diatas dibuat, penulis melakukan sebuah eksperimen. Eksperimen tersebut bertujuan untuk menyelidiki respon counter 0 ATMEGA 32. Penulis ingin mengetahui tingkat kestabilan counter 0 dan kekonsistenan hasil perhitungan matematis pada µC. Tingkat kestabilan counter 0 mirip ADC2 (Analog to Digital Converter = Konverter Analog ke Digital), yaitu ± 1-2 LSB (Least Significant Bit). Hal ini merupakan bukti dari keterbatasan sistem mikroprosesor 8 bit. Hasil perhitungan frekuensi di µC dan PC (Personal Computer) menunjukkan hasil yang sama persis pada frekuensi 0.2–540 Hz (dengan waktu tunda satu detik). Namun ketidakkonsistenan perhitungan mulai muncul pada frekuensi > 5 kHz. 1 2
Abidin, Zainal. 2009. Eksperimen Mikrokontroler (Timer). PLATOGEOSAINS: Bandung Abidin, Zainal. 2009. Membuat Sendiri Volt Meter Digital. PLATOGEOSAINS: Bandung
PLATOGEOSAINS | Aplikasi Sistem Mikrokontroler
2