Quis
Buat program untuk pengukuran kecepatan putaran motor
Kecepatan sampai dengan 2500 rpm Sensor menggunakan rotary encoder dengan resolusi antara 1 sampai dengan 1024
Gunakan misalkan, #define ROTARY 1024
Petunjuk
Gunakan Timer/Counter 0 dengan mode CTC untuk generator Time-base 100 ms atau 1000 ms
Lengkapi dengan counter software untuk memperpanjang waktu hitungan
Gunakan Timer/Counter 1 dengan mode normal dan input dari T1 untuk penghitung jumlah pulsa yang masuk
Konfigurasi
Rotary Encoder TCNT1 Timer/Counter 1 (Mode Normal) Baca Counter1 Port
T1
Konversi
LCD
Interupsi OC0
Timer/Counter 0 (Mode CTC) Prescaller
Software
Perhitungan/Persiapan
Generator Time-base (Counter/Timer 0)
TimeBase 100 ms atau 1000 ms N . (OCR 0 1) . S TimeBase Frek Clock
N Prescaller OCR0 isi register OCR0 S Counter Software
Counter (Counter/Timer 1)
Mode Normal dengan input T1
Perhitungan
TCNT1. 60 Speed (rpm) ROTARY.INTERVAL Interval dalam detik, jika dalam ms, perlu dikalikan 1000
Inisialisasi/Software
Timer/Counter 0 Timer/Counter 1 Software Time-base Software Penghitung
Timer/Counter 0
Isi dengan Generator Time-base dan pembaca isi counter 1
Timer/Counter 1
Struktur Lengkap
Lengkapi dengan
Generator Timebase Pembaca isi Counter 1 Menghitung kecepatan Menampilkan hasil pengukuran kecepatan ke LCD
Isi dengan Generator Time-base dan pembaca isi counter 1
Isi dengan penghitung dan penampil hasil, sebagai rutin interupsi atau dalam program utama
Penyelesaian
Perhitungan Timer/Counter 0
N = 64 OCR0+1 = 250 OCR0 = 249 = F9H S = 250 untuk 1 detik, 25 untuk 100 ms Inisialisasi TCCR0 = 0BH
Why ?
Apa ini ?