Rancangan aplikasi IC AVR ATMega16 ATMega16
·
JUDUL
·
TUJUAN :
: Penghitung Kecepatan Motor DC dengan Display LCD 16X2 Berbasis Mikrokontroler Mikrokontroler ATMega16 - Menghitung nilai kecepatan motor dc dengan satuan rpm - Menampilkan nilai rpm ke tampilan LCD - Mengatur kecepatan motor dc berdasarkan nilai rpm hasil masukan dan sesuai dengan hasil tampilan pada LCD
Pada dasarnya aplikasi ini hampir sama dengan aplikasi penghitung frekuensi (Frequency Counter ), ), dimana letak perbedaanya hanya pada perumusannya saja, dimana perumusan tersebut tergantung ter gantung dari pengubahan detik ke menit dan banyaknya pulsa encoder dalam 1 putaran motor DC. Dengan menggunakan optocoupler sebagai sensor harus menggunakan rotary encoder yang di-couple dengan as motor dc untuk mendeteksi kecepatan putaran motor DC. Biasanya pada rotary encoder dibuat lubang-lubang sebagai representasi banyaknya pulsa. Dan harus menentukan terlebih dahulu banyaknya pendeteksian pulsa atau lubang pada rotary encoder untuk satu putaran yang dilakukan motor DC. Karena banyaknya pulsa atau lubang akan mempengaruhi perumusan perhitungan kecepatan motor DC dan semakin banyak pulsa atau lubang maka akan meningkatkan resolusi pembacaan kecepatan motor DC, dengan kata lain pembacaan kecepatan akan semakin presisi. Dan jika motor DC sudah mempunyai internal encoder, maka hanya tinggal menghubungkan menghubungkan saja output internal encoder motor DC anda ke pin INT0 atau PD2. Teknik yang digunakan yaitu dengan rotary encoder sebanyak 20 lubang sehingga perumusan kecepatan motor DC menjadi: Pulsa = Frekuensi * 60/20 ; atau Pulsa = frekuensi*30; Dimana angka 60 digunakan untuk mengubah kedalam satuan RPM ( round per minute), karena timer yang saya gunakan hanya membaca selama 1 detik, jika dikalikan sebanyak 60 maka akan menjadi 1 menit. Dan angka 20 adalah banyaknya lubang atau pulsa rotary encoder .
M.Fakhruzzaman.Al.Faisal
Rancangan aplikasi IC AVR ATMega16
·
ANALISIS SISTEM Sistem pada rangkaian aplikasi ini, menggunkaan beberapa fitur-fitur inter nal dari dari IC ATMega 16 yaitu timer, counter, interrupt internal sert a beberapa fitur input/output. Berikut tabel input-output dengan port pada IC ATMega 16
Port
Function
PIND.2
Interrupt/INT0
PINC.0
RS/Signal
PINC.2 PINC.4 PINC.5 PINC.6 PINC.7 PIN.9 PIN 12-13
Enabled DB4 DB5 DB6 DB7 RST XTAL
I/0 Input
Keterangan
Output
ü
ü
input pembacaan putaran motor Register select untuk lcd Enabled untuk lcd
ü ü ü ü ü ü
Penjelasan program ; int frekuensi; float pulsa; char temp[8];
variabel dan tipe data yang akan digunakan int(integer), float(pecahan) char(character) “[] = menggunakan array #include #include #include #include
Deklarasi penggunaan file header #asm .equ __lcd_port=0×15 ;PORTC #endasm
Fungsi penggunaan modul alphanumeric lcd interrupt [EXT_INT0] void ext_int0_isr(void) { frekuensi++;}
M.Fakhruzzaman.Al.Faisal
4 bit lcd Reset External Clock
Rancangan aplikasi IC AVR ATMega16
Listing program diatas berfungsi untuk membaca frekuensi (pulsa) yg masuk ke INT0 lalu di increment // Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void)
Timer 1 detik untuk membaca pulsa yg masuk ke INT0 { // Reinitialize Timer 1 value TCNT1H=0xD23A >> 8; TCNT1L=0xD23A & 0xff; pulsa=(float)frekuensi*60/20; frekuensi=0; lcd_clear(); }
Rumus Menghitung kecepatan Pulsa = Frekuensi * 60/20 ; atau Pulsa = frekuensi*30; void tampilkan_LCD() { lcd_gotoxy(0,0); lcd_putsf(“ical tachometer”); ftoa(pulsa,1,temp); lcd_gotoxy(0,1); lcd_puts(temp); lcd_gotoxy(0,5); lcd_putsf(“RPM”); }
Subrutin program menampilkan kecepatan ke LCD lcd_init(16);
Inisialisasi modul LCD 16x2 #asm(“sei”)
Mengaktifkan interupsi while (1) { tampilkan_LCD(); };
Menampilkan subrutin tampilkan_LCD
M.Fakhruzzaman.Al.Faisal
Rancangan aplikasi IC AVR ATMega16
·
FLOWCHART mulai
i nt f r ekuens i ; f l oat pul s a; char t emp[ 8] ;
t = i nput I NT0 f =0 pul sa = 0
pulsa = f* 60/20 ; or pulsa = f*30; t = pulsa
T >> 8
Tampi l kan ke LCD
sel esai
M.Fakhruzzaman.Al.Faisal
Rancangan aplikasi IC AVR ATMega16
·
RANCANGAN SISTEM Pada rancangan sistem Pengatur Kecpeatan Motor Penghitung Kecepatan Motor DC dengan Display LCD 16X2 Berbasis Mikrokontroler ATMega16 menggunakan input dan output serta beberapa fitur internal lain dari mikrokontroler ATMega16 diantaranya timer dan counter, serta interrupt. Perangkat keras yang digunakan adalah sistem minimum ATMega16, LCD 16 x 2 dengan driver lcd 4 bit , Optocoupler sebagai sensor encoder, dan motor dc dengan encoder yang nantinya akan menjadi objek yang akan dihitung putarannya, serta power supply dan regulator 5 vdc.
·
SKEMATIK RANGKAIAN + BILL OF MATERIAL
·
BLOK DIAGRAM
MOTOR DC
M.Fakhruzzaman.Al.Faisal
SENSOR
MICROCONTROLLER
LCD
Rancangan aplikasi IC AVR ATMega16
·
Bill Of Material Comment Cap
Capacitor
Designator C1, C2, C3, C4, C5
Diode
Default Diode
D1
SMC
Diode
1
Socket
Socket
J1
PIN1
Socket
1
Header 5
Header, 5-Pin
P1, P7, P11
HDR1X5
Header 5
3
Header 8
Header, 8-Pin
P2, P3, P4, P5
HDR1X8
Header 8
4
Header 16
Header, 16-Pin
P6
HDR1X16
Header 16
1
Header 2
Header, 2-Pin
P8, P10
HDR1X2
Header 2
2
Header 10
Header, 10-Pin
P9
HDR1X10
Header 10
1
Res1
Resistor
R1, R2, R3
AXIAL-0.3
Res1
3
1K
RPot
Potentiometer
R4
VR5
RPot
1
1K
SW-PB
Switch 8-Bit AVR Microcontroller with 16K Bytes of In-System Programmable Flash Memory
S1
SPST-2
SW-PB
1
U1
40P6
ATmega1616PC
U2
NPSIP4A
Opto TRIAC
1
L7805CV
Opto-Triac Positive Voltage Regulator
U3
TO220ABN
L7805CV
1
XTAL
Crystal Oscillator
Y1
R38
XTAL
1
ATmega1616PC
Opto TRIAC
Description
M.Fakhruzzaman.Al.Faisal
Footprint
LibRef
Quantity
RAD-0.3
Cap
5
Value 0.1uF, 0.3uF, 100pF
1
12 MHZ
Rancangan aplikasi IC AVR ATMega16
·
Source Code # C- Codevision AVR
i nt f r ekuens i ; f l oat pul s a; char t emp[ 8] ; #i #i #i #i
ncl ncl ncl ncl
ude ude ude ude
/ / Al phanumer i c LCD Modul e f unct i ons #as m . equ __ l cd_por t =0×15 ; PORTC #endasm
/ / Ext er nal I nt er r upt 0 s er vi c e r out i ne i nt er r upt [ EXT_I NT0] voi d ext _ i nt 0_ i s r ( voi d) { f r ekuensi ++; } / / Ti mer 1 over f l ow i nt er r upt ser vi ce r out i ne i nt er r upt [ TI M1_OVF] voi d t i mer 1_ovf _i sr ( voi d) / / t i mer 1 det i k unt uk membaca pul sa yg masuk ke I NT0 { / / Rei ni t i al i z e Ti mer 1 val ue TCNT1H=0xD23A >> 8; TCNT1L=0xD23A & 0xf f ; pul sa=( f l oat ) f r ekuensi *60/ 20; f r ekuensi =0; l c d_ cl ear ( ) ; } voi d t ampi l kan_LCD( ) { l cd_got oxy( 0, 0) ; l cd_put sf ( “i cal t achomet er ”) ; f t oa( pul sa, 1, t emp) ; l cd_got oxy( 0, 1) ; l cd_put s( t emp) ; l cd_got oxy( 0, 5) ; l cd_put sf ( “RPM”) ; }
voi d mai n( voi d) { / / Ti mer / Count er 1 i ni t i al i z at i on / / Cl ock sour ce: Syst em Cl ock / / Cl ock val ue: 11. 719 kHz / / Mode: Nor mal t op=FFFFh / / OC1A out put : Di scon. / / OC1B out put : Di scon. / / Noi se Cancel er : Of f / / I nput Capt ur e on Fal l i ng Edge / / Ti mer 1 Over f l ow I nt er r upt : On / / I nput Capt ur e I nt er r upt : Of f / / Compar e A Mat ch I nt er r upt : Of f / / Compar e B Mat ch I nt er r upt : Of f TCCR1A=0×00; TCCR1B=0×05; TCNT1H=0xD2; TCNT1L=0x3A; I CR1H=0×00; I CR1L=0×00; OCR1AH=0×00; OCR1AL =0×00; OCR1BH=0×00; OCR1BL =0×00; / / Ext er nal I nt e r r upt ( s ) i ni t i al i z at i on / / I NT0: On / / I NT0 Mode: Fal l i ng Edge / / I NT1: Of f / / I NT2: Of f GI CR| =0×40; MCUCR=0×02; MCUCSR=0×00; GI FR=0×40; / / Ti mer ( s ) / Count er ( s ) I nt er r upt ( s ) i ni t i al i zat i on TI MSK=0×04; / / Anal og Compar at or i ni t i al i zat i on / / Anal og Compar at or : Of f / / Anal og Compar at or I nput Capt ur e by Ti mer / Count er 1: Of f ACSR=0×80; SFI OR=0×00; / / L CD modul e i ni t i al i z at i on l cd_ i ni t ( 16) ; / / Gl obal enabl e i nt er r upt s #asm( “s ei ”) whi l e ( 1) { t ampi l kan_LCD( ) ; }; }
M.Fakhruzzaman.Al.Faisal
Rancangan aplikasi IC AVR ATMega16
DAFTAR PUSTAKA Andrianto, Heri.2008. Pemrograman Mikrokontroler AVR ATMEGA 16 .Bandung: Penerbit Informatika. Elektro-Kontrol 2011. Penghitung kecepatan motor dc menggunakan optocoupler
dengan codevision avr (online) http://elektro-kontrol.blogspot.com/2011/06/penghitung-kecepatan-motor-dc.html Dikases pada 13 Juni 2012 Atmel Corporation. 2008. Data Sheet Atmega16. (Online)http://www.datasheetcatalog.orgdatasheetsrestul219541_DS.pdf diakses 14 Juni 2012. Setiawan, Arif 2011. Mikrokontroler ATMega 8535 & ATMega 16 menggunakan Bascom –AVR.Yogyakarta:Penerbit Andi
M.Fakhruzzaman.Al.Faisal