ki sinus hendrick

Upload: udin-bariang

Post on 09-Jul-2015

190 views

Category:

Documents


2 download

TRANSCRIPT

1

Abstrak Secara umum sinyal yang ada dialam umumnya berbentuk geombang sinus walaupun terkadang tidak persis sama tetapi sepert mendekati gelombang sinus. Salah satunya adalah seperti gelombang Electro cardiograph(ECG). Jika diperhatikan gelombang PQRS tersebut membentuk gelombang sinus. Dengan pemanfaatan internal PWM mikrokontroller atmega, outputnya dapat digunakan sebagai output analog yang dapat diatur berdasarkan lebar pulsa melalui program. Untuk mendapatkan bentuk gelombang sinus maka dengan menggunakan fungsi sinus dan di simpan terlebih dalu kedalam internal memori. Untuk selanjutnya akan dioutputkan menggunakan metode lookup table pada output PWM. Untuk melakukan variasi frekuensi dilakukan dengan menambahkan tombul untuk menaikkan dan menurunkan frekuensi output gelombang sinus. Untuk membuat output sinus mendekati sempurna dan untuk menghindari noise maka ditambahkan lowpas filter dengan menggunakan komponen R dan C. Dari hasil pengukuran didapatkan bahwa output generator sinus ini mendekati bentuk sempurna seperti yang dimiliki oleh osciloskop. Setelah dilakukan pengujian hingga mendekati ambang atas frekuensi alat didapatkan cacat saat mencapai frekuensi diatas 5khz. Dan amplitude gelombang sinus yang dihasilkan memiliki nilai maksimum 5000mV. Keyword , PWM, Lookup table, low pass filter

1

KATA PENGANTAR

Dengan mengucap syukur Alhamdulillah kehadirat Allah SWT, yang telah melimpahkan rahmat dan hidayah-Nya, sehingga penulis dapat menyelesaikan karya ilmiah ini yang berjudul: GENERATOR GELOMBANG SINUS PORTABLE DENGAN MENGGUNAKAN MIKROKONTROLLER ATMEGA Pada kesempatan ini penulis mengucapkan terima kasih yang sebesar-besarnya atas terselesaikannya karya ilmiah ini kepada: 1. 2. 3. 4. 5. 6. 7. Direktur Politeknik Negeri Padang. Ketua Jurusan Teknik Elektro. Sekretaris Jurusan Teknik Elektro Ketua Program studi Teknik Elektronika. Ka.UPT.Penelitian dan Pengabdian Masyarakat Politeknik Negeri Padang Semua anggota Laboratorium Mikroprosesor dan Interfacing. Semua pihak yang turut mendukung dalam menyelesaikan tesis ini.

Sebagai penutup penulis menyadari bahwa karya ilmiah ini mempunyai banyak kekurangan. Saran dan kritik membangun dari semua pihak sangat diharapkan. Akhir kata, semoga karya ilmiah ini bermanfaat dan menjadi acuan keilmuan bagi para pembaca.

Padang, Juli 2011

Penulis

2

BAB I PENDAHULUAN Mikrokontroller merupakan suatu perangkat yang dapat diimplementasikan dalam berbagai aplikasi elektronika. Contohnya mikrokontroller dapat diimplementasikan sebagai pengendali kecepatan motor, remote dan aplikasi lainnya. Hal ini disebabkan untuk membuat rangkaian mikrokontroller ini hanya memerlukan sedikit rangkaian pendukung sehingga dengan mudah untuk direalisasikan. Umumnya sinyal yang digunakan sebagai input dan noise dalam pengolahan sinyal digital menggunakan sinyal sinus. Didalam praktikum terkadang kita disibukkan dengan membawa function generator yang digunakan sebagai input sinyal ataupun sebagai generator noise. Hal ini mengakibatkan praktikum menjadi kurang efisien. Oleh karena dibutuhkan suatu alat yang portable untuk menghasilkan sinyal digital. Mikrokontroller dengan jenis ATMEGA memiliki kelebihan fasilitas dari mikrokontroller yang lainnya. Seperti didalam ATMEGA tersebut sudah memiliki fasilitas tambahan seperti ADC, PWM, dan ANALOG COMPARATOR. Untuk membuat suatu function generator sinus dengan output analog dibutuhkam sinyal PWM sebagai pembanding antara puncak positif dan puncak negatif. Dan untuk memudahkan pembuatan program digunakan program bascom-avr sebagai cros compilernya. Sehingga diharapkan nantinya dihasilkan suatu generator sinus yang portable dan dapat divariasikan frekwensinya.

3

BAB II LANDASAN TEORI 2.1. Timer atmega8535 ATMega8535 mempunyai timer/counter yang berfungsi sebagai pencacah/pewaktuan. Karena ATMega8535 mampu memakai crystal berfrekuensi sampai dengan 16 MHz maka mikrokontroler ini dapat mencapai 16MIPS (Million Instruction per Second). Pada mikrokontroler ATMega 8535 perlu diperhatikan pemilihan sumber clock. Hal ini berhubungan dengan frekuensi yang kita inginkan. Jika kita ingin menggunakan frekuensi 12MHz dengan sumber clock eksternal maka perlu dilakukan kalibrasi fuse bit mikrokontroler dengan downloader, jika tidak maka mikrokontroler akan menggunakan frekuensi dengan sumber clock internal sekitar 4 MHz. PRESCALER Timer pada dasarnya hanya menghitung pulsa clock. Frekuensi pulsa clock yang dihitung tersebut bisa sama dengan frekuensi crystal yang dipasang atau dapat diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024. Berikut penjelasannya: Sebuah AVR menggunakan crystal dengan frekuensi 8 MHz dan timer yang digunakan adalah timer 16 bit, maka maksimum waktu timer yang bisa dihasilkan adalah: TMAX = 1/fCLK x (FFFFh+1) = 0.125uS x 65536 = 0.008192 S Untuk menghasilkan waktu timer yang lebih lama dapat digunakan prescaler, misalnya 1024, maka maksimum waktu timer yang bisa dihasilkan adalah : TMAX = 1/fCLK x (FFFFh+1) x N = 0.125uS x 65536 x 1024 = 8.388608 S

4

MACAM-MACAM TIMER/COUNTER 1. Timer/Counter 0 Merupakan 8 bit timer/counter, pengaturan Timer/Counter 0 diatur oleh TCCR0 (Timer/Counter control register 0) seperti berikut ini:

Register TCCR0 Bit 3 ~ 7 digunakan untuk setting PWM.

Bit 2, 1, 0 (CS02, CS01, CS00): Clock select. Ketiga bit tersebut memilih sumber clock yang akan digunakan oleh timer/counter.

2. Timer/Counter 1 Merupakan 16-bit timer/counter sehingga terdapat perbedaan cara pengaksesannya dengan 8-bit timer/counter. 16-bit (1 word) timer/counter harus diakses dengan 8 bit high dan 8 bit low. Pengaturan Timer/Counter1 juga diatur oleh register TCCR1B.

Register TCCR1B

Bit 2,1,0 (CS1 2:0): Clock Select. Ketiga bit tersebut (CS2/CS1/CS0) mengatur sumber clock yang digunakan untuk Timer/Counter1.

3. Timer/Counter 2 Timer/Counter2 adalah 8-bit Timer/Counter, pengaturan pada Timer/Counter2 diatur oleh TCCR2 (Timer/Counter Control Register 2).

Register TCCR2

Bit 2,1,0 (CS22; CS21, CS20): Clock Select. Ketiga bit ini memilih sumber clock yang akan digunakan oleh Timer/Counter.

5

Berikut konfigurasi bit clock select untuk memilih sumber clock

Konfigurasi Bit Clock Select Register TIMSK dan TIFR Selain register-register di atas, terdapat pula register TIMSK (Timer/Counter Interrupt Mask Register) dan register TIFR (Timer/Counter Interrupt Flag Register).

Register TIMSK

OCIEx: Output Compare Match Interrupt Enable. Jika bit tersebut diberi logika 1 dan bit I SREG juga berlogika 1, maka bisa dilakukan enable interupsi Output Compare Match Timer/Counter x. TOIEx: Overflow Interrupt Enable. Jika diberi logika 1 dan bit I SREG juga berlogika 1, maka bisa dilakukan enable interupsi Overflow Timer/Counter x. TCIE1: Timer/Counter 1, Input Capture Interrupt Enable

Register TIFR

OCFx: Output Compare Flag. Bernilai 1 (set) jika terjadi compare match antara Timer/Counter x dan data di OCRx (Output Compare Register x). OCFx di-clear secara hardware ketika pengeksekusian corresponding interrupt handling vector. Atau, jika diberi nilai 1 secara lagsung ke bit flag. Saat bit I SREG, OCIEx, dan OCFx set (berlogika 1), maka Timer/Counter x Compare Match Interrupt dieksekusi. TOVx: Timer/Counter x Overflow Flag. Bit ini akan set (bernilai 1) saat terjadi overflow di Timer/Counter x. TOVx akan clear (bernilai 0) secara hardware saat pengeksekusian corresponding interrupt handling vector. Atau, diberikan logika 1 ke bit flag. Saat bit i SREG, TOIEx (Timer/Counter x

6

Overflow Interrupt Enable), dan TOVx set, akan terjadi pengeksekusian Timer/Counter x Overflow Interrupt. Pada mode PWM, bit ini set ketika Timer/Counter x mengubah arah perhitungan hingga menuju nilai 000. SETTING TIMER Sebelum kita melakukan setting timer maka kita tentukan dahulu nilai delay yang kita inginkan lalu bisa kita dapatkan nilai TCNTnya

TCNT : Nilai timer (Hex) fCLK : Frekuensi clock (crystal) yang digunakan (Hz) T timer : Waktu timer yang diinginkan (detik) N : Prescaler (1, 8, 64, 256, 1024) 1+FFFFh : Nilai max timer adalah FFFFh dan overflow saat FFFFh ke 0000h 2.2. PWM atmega8535 Mikrokontroller AVR ATMEGA8535 mempunyai dua 8-bit Timer/Counter (Timer /Counter 0 dan Timer/Counter2) dan satu 16-bit Timer/Counter (Timer/Counter 1). I/O register yang digunakan untuk Timer/Counter 0 antara lain TCCR 0 [Timer/Counter Control Register], TCNT0 [ Timer/Counter Register ], OCR0 [Output Compare Register], TIMSK [ Timer/Counter Interrupt Mask Register,bit ke 1 (OCIE0) dan 0 (TOIV0)], TIFR [Timer/Counter Interrupt Flag Register, bit ke 1 (OCF0) dan 0 (TOV0)], dan SFIOR [ Special Function IO Register, bit ke 0 (PSR 1 0). I/O register yang digunakan untuk Timer/Counter1 antara lain TCCR1 A [Register A], TCCR1 B [ Register B], TCNT1 H:L, OCR1 AH:L, OCR1 BH:L, ICR1 H:L [Input Capture Register], TIMSK [bit ke 5 sampai 2], TIFR [bit ke 5 sampai 2], dan SFIOR [bit ke 0 (PSR 10)]. Bit PSR 10 (Prescaler Reset Timer/Counter 1 and Timer/Counter 0 ) pada I/O register SFIOR digunakan untuk melakukan reset pada prescaler Timer/Counter2 antara lain TCCR2, TCNT2, OCR2, ASSR [ Asynchronous Status Register]. TIMSK [bit ke 7 (OCIE2) dan 6 (TOIE2)], TIFR [bit ke 7 (OCF2) dan 6 (TOV2)], dan SFIOR [bit ke 1 (PSR2)]. Bit ke PSR2 (Prescaler Reset Timer/Counter2) pada I/O register SFIOR digunakan untuk melakukan reset pada prescaler Timer/Counter2. Timer/Counter mengalami overlow pada saat hitungan Timer/Counter (TCNT0/TCNT1/TCNT2) mencapai maksimum (FFH untuk 8-bit atau FFFFH untuk 16-bit Timer/Counter) dan kembali ke hitungan 00H atau 0000H. Pada mode operasi

7

normal Timer/Counter overflow Flag (TOV0/TOV1/TOV2) akan otomatis berlogika 1 pada saat Timer/Counter Register menjadi nol. Bit Timer/Counter Overflow Flag dapat dibersihkan (menjadi berlogika 0) dengan memberikan nilai logika 1 pada flag tersebut. Mode operasi Timer/Counter0 antara lain mode normal (sebagai timer/counter biasa), mode CTC (Clear Timer on Compare Match), mode Fast PWM ( single-slope), dan mode phase Correct PWM (dual-slope). Pemilihan mode operasi Timer/Counter0 diatur pada bit WGM01:0 (bit WGM01 dan WGM00) pada I/O register TCCR0 bit ke 3 dan 6. Untuk mode operasi normal bit WGM01 diberi logika 0 dan WGM00 diberi logika 0. Pemilihan mode Timer/Counter0 yang lebih lengkap terdapat pada datasheet ATMEGA8535 pada bagian 8-bit Timer/Counter Register Description (Timer/Counter Control Register TCCR0). Sumber clock untuk Timer/Counter0 (dari prescaler) ditentukan oleh bit CS02:0 pada I/O register TCCR0 bit ke 2 sampai 0. Tabel 10.1 menunjukan nilai clock untuk Timer/Counter0 berdasarkannilai logika pada CS02:0. Tabel 10.1. Pilihan Sumber Clock Timer/Counter0 Keterangan Tidak ada clock (Timer/Counter berhenti) clkI/O (tidak ada pembagian) clkI/O/8 (dari prescaler) clkI/O/64 (dari prescaler) clkI/O/256 (dari prescaler) clkI/O/1024 (dari prescaler) Clock eksternal pada pin T0 Clock pada saat falling edge 1 1 1 Clock eksternal pada pin T0 Clock pada saat rising edge Catatan: clkI/O = system clock. Prescaler untuk Timer/Counter0 juga digunakan oleh Timer/Counter1. Keterangan lebih lengkap terdapat pada datasheet ATMEGA8535 pada bagian Timer/Counter0 and Timer/Counter1 prescalers. Mode operasi Timer/Counter2 sama dengan Timer/Counter0 yaitu mode normal, mode CTC, mode Fast PWM, dan mode Phase Correct PWM. Pemilihan mode operasi Timer/Counter2 diatur pada bit WGM21:0 (bit WGM21 dan WGM20) pada I/O register TCCR2 bit ke 3 dan 6. Untuk mode operasi normal bit WGM21 diberi logika 0 dan WGM20 diberi logika 0. Pemilihan mode Timer/Counter2 yang lebih lengkap terdapat pada datasheet ATMEGA8535 pada bagian 8-bit Timer/Counter register description (Timer/Counter Control Register TCCR2). Bit COM 1 A 1:0 (pada I/O register TCCR1 A bit ke 7 dan 6) dan COM 1 b1:0 (pada I/O register TCCR 1 A bit ke 5 dan 4) digunakan untuk memilih mode Output Compare pada pin OC1A (channel A) dan pada pin OC1 B (channel B). Compare Match terjadi jika nilai pada TCNTH:L sama dengan nilai pada OCR1AH:L (untuk channel A) atau OCR1BH (untuk channel B). Beberapa mode Output Compare ditunjukan pada tabel 10.4 pada saat mode operasi Timer/Counter 1 sebagai Phase Correct atau phase and Frequency Correct PWM. Untuk mode Output compare yang CS02 0 0 0 0 1 1 1 CS01 0 0 1 1 0 0 1 CS00 0 1 0 1 0 1 0

8

lain (mode operasi Timer/Counter1 normal, CTC dan Fast PWM) terdapat pada datasheet ATMEGA8535 pada bagian 16-bit Timer/Counter Register Description (Timer/Counter1 Control Register A TCCR1A).

Tabel 10.4. Mode Output compare, Phase Correct, atau Phase and Frequency Correct PWM.COM1A1/ COM1B1 0 0 COM1A0/CO M1B0 0 1 Keterangan

Operasi port normal. OC1A/OC1B tidak terhubung. WGM13:0 = 9 atau 14: nilai OC1A berubah (dari 0 ke 1 atau sebaliknya) saat Compare Match, OC1B tidak terhubung (operasi port normal). Untuk semua nilai WGM13:0 operasi port normal, OC1A/OC1B tidak terhubung. OC1A/OC1B berlogika 0 saat Compare Match ketika hitungan naik (upcounting). OC1B berlogika 1 saat Compare Match ketika hitungan turun (down-counting). Disebut sebagai non-inverted PWM output. OC1A/OC1B berlogika 1 saat Compare Match ketika hitungan naik. OC1A/OC1B berlogika 0 saat Compare Match ketika hitungan turun. Disebut sebagai inverted PWM output.

1

0

1

1

Catatan: Suatu kejadian khusus terjadi pada saat nilai OCR 1A/OCR 1B sama dengan nilai BOTTOM (0x0000) atau sama dengan nilai TOP. Pada non-inverted PWM, output OC1 A/OC1 B akan selalu 0 jika nilai OCR1 A/OCR1 B = BOTTOM dan akan selalu 1 jika nilai OCR1 A/OCR1B = TOP.

Resolusi PWM untuk mode Phase Correct PWM dapat dipilih 8,9, atau 10-bit, atau ditentukan nilai ICR 1 atau OCR1A. Resolusi minimum yang diperbolehkan sebesar 2-bit (ICR1 atau OCR1A = 0xFFFF). Resolusi PWM dapat dihitung dengan menggunakan persamaan :

R PCPWM = log (TOP + 1) Log (2)

Diagram waktu untuk mode Phase Correct PWM ditunjukan pada gambar 10.1. Keterangan yang lebih lengkap terdapat pada datasheet ATMEGA8535 pada bagian 16-bit Timer/Counter1 (Modes of Operation) Frekuensi output PWM ketika menggunakan Phase Correct PWM dapat dihitung dengan menggunakan persamaan :

9

OC1xPCPWM = f clk_I/O 2.N.TOP

BAB III PEMBAHASAN

Blok diagram sinus generator portable memiliki blok diagram hardware seperti pada gambar berikut ini :

SWITCH

ATMEGA 16

LCD 16 x 2

FILTER

OUPUT

Secara umum blok diagram tersebut terdiri dari switch sebagai input. Switch ini berfungsi untuk melakukan variasi terhadap nilai frekuensi output sinyal sinus.

10

Atmega16, ini berupa minimum sistim yang difungsikan untuk membangkitkan sinyal sinus dengan pemanfaatan internal PWM mikrokontroller tersebut. Blok selanjutnya adalah bagian filter. Filter yang digunakan adalah tipe low pass filter dengan orde tinggi. Dan menggunakan LCD sebagai display data frekuensi. 3.1. Perancangan Hardware

3.1.1. Rangkaian switch Rangkaian switch hanya terdiri dari komponen switch dan resistor pull up 10k. Berikut gambar rangkaian switch :

Penambahan resistor pull up bertujuan untuk menghindari mikrokontroller masuk pada nilai ambang. Untuk antisipasi ini ada 2 cara, secara hardware seperti yang sekarang digunakan atau pun dengan menggunakan software dengan mengaktifkan internal pull up. 3.1.2. Rangkaian Minimum ATMEGA 16

3.1.3. Rangkaian Filter (Low Pass Filter )

11

Filter diletakkan pada output pin OCR1B, filter low pass yang digunakan bekerja pada frequency cut-off 15KHz. Pemasangan filter seperti pada gambar berikut ini :

3.1.4. Rangkaian LCD Rangkaian LCD yang digunakan seperti pada gambar berikut ini. Komponen pendukung LCD adalah trimpot saja untuk mengatur kontrast LCD. Pin data yang digunakan 4 bit data yang terhubung pada PORTC.4 sampai PORTC.7. Sedangkan pin Enable terhubung pada PORTC.3 dan RS pada PORTC.2.

3.2.

Perancangan software

Sebagai sebuah generator sinus portable maka software yang dirancang adalah seperti di flowchart berikut ini : Start

Inisialisasi Timer & PWM Inisialisasi LCD

Buat Tabel Sinus Melalui persamaan

OCR1B = data table12

End

Inisialisasi timer dan PWMConfig Timer1 = Pwm , Prescale = 1 , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Timer0 = Timer , Prescale = 1

Dengan konfigurasi seperti diatas maka akan dihasilkan pwm 8 bit pada pin OCR1B mikrokontroller.

Inisialisasi LCD Inisialisasi LCD berfungsi untuk menentukan pin yang akan digunakan di mikrokontroller yang akan difungsikan sebagai interface ke LCD. Inisialisasi dilakukan seperti berikut ini :Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 Config Lcd = 16 * 2

Table Gelombang sinus Sebelum dioutputkan, mikrokontroller secara otomatis akan membuat table gelombang berdasarkan frekuensi yang di tentukan sebanyak 255 data. Selanjutnya data tersebut disimpan ke dalam array. Berikut listing program tabel sinus :For N = 1 To 256 A=N-1 A = A * 3.1415 A = A / 128 B = Sin(a) B = B * 120 B = B + 128 Table(n) = Int(b) Next N Freq = 10 Do Locate 2 , 1 Lcd Freq Lcd Hz If Pind.6 = 0 Then Freq = Freq + 10 Print Freq

13

End If If Pind.7 = 0 Then Freq = Freq - 10 Print Freq End If Waitms 10 A = Freq 43200/65535 B = A / 0.65918 F = Int(b) Loop

3.3.

Hasil Simulasi Perancangan

Hasil simulasi rancangan dengan menggunakan proteus adalah seperti berikut ini :

Berdasarkan simulasi didapatkan bentuk gelombang sinus seperti gambar diatas. Dengan begitu berarti software bisa dikatakan sudah mendekati benar. Sedangkan setelah direalisasikan dengan hardware sebenarnya seperti photo berikut ini:

14

3.4.

Hasil Pengukuran

Hasil pengkuran dioutput dilakukan di pin OCR1B mikrokontroller.Hasil pembacaan osciloskop menunjukkan hasil pembacaan seperti grafik berikut ini : Pengukuran saat frekuensi output 50 HZ

Pengukuran saat frekuensi output 100 hz

15

Pengukuran saat frekuensi output 200 hz

Pengukuran saat frekuensi output 1210hz

BAB IV KESIMPULAN 1. Pemakaian cross compiler memudahkan pemograman karena dalam alat ini menggunakan fungsi sinus sebagai pembangkit sinyal. 2. Penggunaan lookup table didalam program dilakukan untuk menghindari program mikrokontroller hang. 3. Hasil amplitude gelombang sinus bernilai maksimum pada 5000 mv sesuai dengan tegangan kerja mikrokontroller. 4. Frekuensi yang yang dilewatkan filter dibawah 5000 HZ SARAN

16

1. Menambahkan rangkaian penguat di output rangkaian sehingga menghasilkan amplitudo yang lebih besar. 2. Menggunakan crystal yang nilainya lebih besar, sehingga dihasilkan frekuensi output yang lebih tingg. 3. Perhitungan yang lebih presisi dan pemakaian komponen yang lebih tepat untuk low pas filter

DAFTAR PUSTAKA Innovatif elektronik. Panduan Pemograman Mikrokontroller AVR. Thomson. Embedded Programming and The ATMEL.2005 Claus Kuhnel.BASCOM. Programming Microcontrollers With Ease MRGS Technology Electronics. An Introduction to Microcontrollers and Software Design

17