Professional Documents
Culture Documents
Dosen Pembimbing : Ir. HENDIK EKO HADI SUHARYANTO, MT NIP 131 651 430 RUSIANA, ST NIP 131 884 955
JURUSAN TEKNIK ELEKTO INDUSTRI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA PENS ITS 2008
PROYEK AKHIR
Dosen Pembimbing : Ir. HENDIK EKO HADI SUHARYANTO, MT NIP 131 651 430 RUSIANA, ST NIP 131 884 955
JURUSAN TEKNIK ELEKTO INDUSTRI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA INSTITUT TEKNOLOGI SEPULUH NOPEMBER SURABAYA PENS ITS 2008
ABSTRAK Baru-baru ini, systim alat bantu memiliki berbagai teknologi yang sering dikenal dengan sistem cerdas. Salah satu di antaranya adalah Rolling Door Remote, metode yang umum digunakan untuk mengendalikan kecepatan motor dc adalah PulseWidth Modulation (PWM). Pembangkitan sinyal PWM dengan menggunakan microcontroler memiliki beberapa keuntungan, seperti teknik pemrograman yang sederhana dan rangkaian listrik menjadi sederhana.Tujuan tugas akhir ini adalah merancang sistem pengaturan putaran untuk motor dc menggunakan Remote Control berbasis microcontroler Atmega16 Dengan menggunakan microcontroller mendapat masukan dari remote akan diproses guna mendapatkan nilai duty cycle sinyal PWM, nilai inilah yang digunakan sebagai acuan pembangkit PWM.
ABSTRACT
Recently, appliance systim assist to have various technology which often recognized with smart system. One of the among others is Rolling Door Remote, method used occasionally to control speed of motor dc is Pulse- Width Modulation ( PWM) .Evocation of PWM sinyal with microcontroler have some advantage, like technique of pemrograman simple and electrics network become simplely. Target of this final duty is design system arrangement of rotation for the motor of dc use Remote Control base on Atmega16 mcrocontroler. By using microcontroller get input of remote will be processed to utilize to get value of duty PWM sinyal cycle, used as this value of reference generating of PWM.
RANCANG BANGUN ROLLING DOOR MENGGUNAKAN CONTROL REMOTE ( SOFTWARE ) Oleh : DENI ARIYONO NRP 7305 030 32 Proyek Akhir Ini Digunakan Sebagai Salah Satu Syarat Untuk Mendapatkan Gelar Ahli Madya (A.Md) Di Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Surabaya Disetujui Oleh : Tim Penguji Proyek Akhir : Dosen Pembimbing :
1.
1.
2.
3.
2.
3.
Reny Rachmawati NIP. 132 233 200 Mengetahui : Ketua Jurusan Elektro Industri
KATA PENGANTAR
Bismillahirrohmaanirrohiim, Alhamdulillah, haya dengan perkenan ,rahmat dan hidayahnya dari Allah SWT, sehingga saya dapat menyelesaikan Tugas Akhir yang yang berjudul: RANCANG BANGUN ROLLING DOOR MENGGUNAKAN CONTROL REMOTE Tugas akhir ini disusun untuk memenuhi sebagian persyaratan dalam menyelesaikan pendidikan gelar diploma 3 Teknik Elektro Industri pada Politeknik Elektronika Negeri Surabaya. Tugas akhir ini dirancang berdasarkan teori dan praktikum yang diperoleh selama masa perkuliahan dan berbagai literature penunjangnya. Penulis berharap kiranya Tugas Akhir ini dapat memberikan manfaat yang positif bagi perkembangan ilmu pengetahuan dan teknologi.
Penulis
9. DJ POO terima kasih atas masukan masukan yang telah diberikan 10.Pati Coy Steven Coy atas Job-Jobannya yang selalu membuat pikiran saya frezz terussss 11. My Cweety Love yang memberi banyak support baik secara moril maupun materil 12. Bapak Mugiarto dan seluruh warga GDS yang telah membantu memberikan ide briliant untuk terciptanya alat ini 13. Seluruh warga ELIN 05 JOSSS atas kekompakan, persaudaraan dan bantuannya
14. Dan semua pihak yang telah memberikan motivasi, inovasi yang tidak dapat ditulis disini satu persatu
DAFTAR ISI JUDUL LEMBAR PENGESAHAN ABSTRAK............................................................................. i ABSTRACT.......................................................................... ii KATA PENGANTAR.......................................................... iii UCAPAN TERIMA KASIH..................................................iv DAFTAR ISI.......vii DAFTAR GAMBAR.....viii DAFTAR TABEL....ix BAB I PENDAHULUAN 1.1. Latar Belakang .......................................................1 1.2. Tujuan....................................................................1 1.3. Permasalahan .........................................................1 1.4. Batasan Masalah ....................................................2 1.5. Ruang Lingkup ......................................................2 1.6. Metodologi.............................................................2 1.7. Sistematika.............................................................2 1.8. Tinjauan Pustaka ....................................................3 BAB II TEORI PENUNJANG 2.1.Umum.....................................................................4 2.2.Mikrokontroller ......................................................4 i. Bagian Dari Mikrokontroller......4 ii. Central Processing Unit.....................4 iii. Random Access Memory...5 iv. Read Only Memory....5 v. Input Output Unit...5 2.3.Mikrokontroller AVR ATMEGA 16.....6 2.3.1.Konfigurasi Pin-Pin ATMEGA 16..8 2.3.2.Download Program ......................................10 2.3.3.Code Vision AVR ........................................10
BAB III PERANCANGAN DAN PEMBUATAN ALAT 3.1.Konfigurasi System.................16 3.2.Flowchart.........17 3.3.Perancangan Mikrokontroller ................................18 vi. Perancangan ATMEGA 16...18 vii. Perancangan Minimum System.....18 BAB IV PENGUJIAN DAN HASIL 4.1. Tujuan.....20 4.2. Pengujian Remote Control....................................20 4.3. Pengujian PWM......21 4.4. Pengujian Minimum Sistem...................................23 4.5. Pengujian Sensor Rotary Encoder..25 4.6. Pengujian Driver.....27 BAB V PENUTUP 5.1. Kesimpulan.....28 5.2. Saran...29 DAFTAR PUSTAKA..30 LAMPIRAN
DAFTAR GAMBAR
Gambar 2. 1. Blok diagram ATMEGA 16..............................7 Gambar 2. 2. Pin ATMEGA 16 kemasan 40 PIN...................8 Gambar 2. 3. Alur interface Atmega......................................10 Gambar 2. 4. Code Vision AVR.............................................11 Gambar 2. 5. Blok Penginisialisasian Program......................12 Gambar 2. 6. Bagian Penulisan Program...............................12 Gambar 2. 7. Software Code Vision AVR.............................13 Gambar2. 8. Create Project Baru........................13 Gambar 2. 9. Pilihan untuk menggunakan Code Wizard.......14 Gambar 2. 10. Mensetting chip, Input/Output....14 Gambar 2. 11. Menghasilkan kode program...........................15 Gambar 3. 1. Konfigurasi system............................................16 Gambar 3. 2. Flowchart program utama.................................17 Gambar 3. 3. Rangkaian System............................................19 Gambar 4. 2. Tampilan PWM dengan Mikrokontroller.....22 Gambar 4. 3. Rangkaian uji Minimum Sistem.......................24 Gambar 4. 4. Flowchart Counter............................................26
DAFTAR TABEL Tabel 2.1 Bagian Umum Mikrokontroller.................................4 Tabel 4.1 Input Output Remote Control..................................20 Tabel 4.2 Data Pengujian PWM............................................23
1.2. TUJUAN Tujuan utama dari pembuatan rancang bangun Rolling Door menggunakan control remote ini dalam perencanaan perangkat lunak adalah mendapatkan tingkat kepresisian dan ketepatan dalam menggulung, sehingga Rolling Door dapat membuka atau menutup sesuai setting melalui penekanan pada tombol remote. Sedangkan tujuan khusus dari pembuaatan proyek akhir ini adalah untuk memenuhi syarat kelulusan dari Politeknik Elektronika Negeri Surabaya. 1.3. PERMASALAHAN Permasalahan yang akan dibahas didalam proyek akhir ini adalah pemrograman mikrokontroller sebagai proses otomatisasi dari Alat
Rancang Bangun Rolling Door menggunakan control remote Secara Otomatis. Data yang dimasukkan (diinputkan) dan diproses kedalam Mikrokontroller akan menghasilkan tingkat ketelitian yang lebih baik daripada proses manual. 1.4. BATASAN MASALAH Pada proyek akhir yang berjudul rancang bangun Roling Door menggunakan remote, kami hanya menekankan pada: 1. Motor DC mendapatkan supply sesuai nilai tegangan nominal. 2. Proses pemberhentian motor, apabila jumlah setting counter telah sama seperti yang telah diinputkan. 3. Penekanan pada remote menentukan arah putaran motor . 1.5. RUANG LINGKUP Pada proyek akhir yang berjudul Rancang Bangun Rolling Door menggunakan control remote, diperlukan teori penunjang yang meliputi: 1. Rancang bangun sensor 2. Mesin listrik dc Sedangkan untuk software diperlukan teori penunjang yang meliputi: 1. Mikrokontroller 2. Pemrograman bahasa C 1.6. METODOLOGI Metodologi yang digunakan dalam penyelesaian proyek akhir ini antara lain sebagai berikut : 1. Study Literatur 2. Perencanaan alat 3. Penyediaan komponen 4. Pembuatan alat 5. Pembuatan software 6. Pengujian alat 7. Pengambilan data 8. Penyusunan laporan
1.7. SISTEMATIKA LAPORAN Pembahasan pada buku dan laporan proyek akhir ini dibagi dalam lima bab yang meliputi: BAB I : PENDAHULUAN Berisi latarbelakang, batasan masalah, permasalahan maksud dan tujuan, ruang lingkup, metodologi, dan sistematika laporan. BAB II : TEORI PENUNJANG Berisi tentang teori-teori yang melandasi dalam pembuatan proyek akhir ini. Antara lain meliputi tentang arsitektur Mikrokontroller, codevision AVR, dan piranti output yang ada didalamnya. BAB II : PERENCANAAN DAN PEMBUATAN ALAT Berisi tentang uaraian mengenai proses perencanaan dai system yang akan digunakan serta proses pembuatan perangkat keras dan perangkat lunak dari system yang telah direncanakan. BAB IV:PENGUJIAN DAN ANALISA Berisi tentang pengujian alat yang dilakukan dengan cara mengambil data melalui percobaan yang dilakukan dengan metode yang akan digunakan BAB V : KESIMPULAN DAN SARAN Berisi kesimpulan-kesimpulan dari hasil pengujian dan saran untuk pengembangan selanjutnya. 1.8. TINJAUAN PUSTAKA Tinjauan pustaka pada proyek akhir ini mengacu pada buku yang berjudul C&AVR dan AT MEGA 16 yang berisi tentang bab pengaturan PWM dengan berbagai kombinasi frekwensi dan Duty Cycle. Sedangkan dalam study pustaka Sartrio Hanindhito, pembangkitan PWM menggunakan setting secara manual melalui pengaturan 2 pin. Sedangkan pada proyek akhir ini mengacu pada buku karya Andik Tri Susanto yang berjudul Kursi Roda Elektrik yang juga menggunakan setting internal mikrokontroller dalam
pembangkitan PWM. Berbeda dengan buku Karya Satrio Hanindhito yang pembangkitan PWM menggunakan perbandingan time high pin 1 dengan time low pin 2. Dengan menggunakan perbandingan 2 pin ini maka perhitungannya lebih rumit dalam penentuan duty cycle karena harus mensetting 2 pin terlebih dahulu. Sedangkan pada proyek akhir yang kami buat untuk pembangkitan PWM menggunakan langsung setting dari internal pada mikrokontroller. Dengan adanya langsung setting internal akan lebih mudah dan praktis dalam menentukan nilai duty cycle. Tingkat akurasi pada pengaturan duty cycle lebih tinggi karena hanya menggunakan perbandingan angka dari angka 256 untuk setting PWM.
2.2. MIKROKONTROLLER
Mikrokontroller adalah suatu komponen yang dapat mengolah data-data digital, dan dapat digunakan sebagai alat untuk mengontrol suatu sistem. Mikrokontroller merupakan terobosan baru dalam bidang semikonduktor dengan kandungan transistor yang lebih banyak namun dapat dikemas dalam bentuk yang kecil yaitu sebuah chip IC.
Untuk masing-masing bagian dari Mikrokontroller akan dibahas pada sub bab berikut ini.
(bit per bit). Adapun cara kerjaya adalah mengubah data masukan paralel menjadi serial. 2. Paralel input/output (PIO) yaitu piranti input/output yang dapat mengirim dan menerima data serempak (parallel). PIO ini dapat menyediakan perantara masukan dan keluaran dasar untuk data paralel 8 bit.
Advanced RISC Architecture a)130 Powerful Instructions Most Single Clock Cycle
Execution b) 32 x 8 General Purpose Working Registers c) Fully Static Operation
d) Up to 16 MIPS Throughput at 16 MHz e) On-chip 2-cycle Multiplier Dengan semua keistimewaan yang dimiliki di atas, maka pembuatan alat dengan menggunakan Mikrokontroller ATMEGA16 menjadi sangat sederhana, karena tidak memerlukan IC pendukung yang lebih banyak block diagram Mikrokontroller ATMEGA 16 dapat dilihat pada gambar 2.2. :
2.3.1.
Gambar 2. 3 Pin ATMEGA 16 kemasan 40-pin Diskripsi pin ATMEGA 16 sebagai berikut: VCC : Supply tegangan digital. GND : Ground PORTA : Menjalankan analog input ke A/D converter. Port A juga berfungsi sebagai 8 bit directional I/O port jika A/D converter tidak digunakan. Ketika pin PA0-PA7 digunakan input dan secara eksternal pull -low , mereka seperti sumber arus jika internal pull- up resistor diaktifkan. Pin port A adalah tri-states ketika kondisi sebuah reset menjadi aktif, sekalipun clocknya tidak jalan. PORTB : Port B adalah 8 bit bi-directional I/O port dengan Internal pull-up resistor. Buffer output port B ini mempunyai karakteristik symmetrical drive dengan kapabilitas source dan sink yang tinggi.Sebagai input, pin port B adalah
eksternal pull-low seperti sumber arus jika pull-up resistor aktif. Pin port B adalah tri-states ketika kondisi sebuah reset menjadi aktif, sekalipun clocknya tidak jalan. PORTC : Port C adalah 8 bit bi-directional I/O port dengan Internal pull-up resistor. Buffer output port B ini mempunyai karakteristik symmetrical drive dengan kapabilitas source dan sink yang tinggi.Sebagai input, pin port B adalah eksternal pull-low seperti sumber arus jika pull-up resistor aktif. Pin port B adalah tri-states ketika kondisi sebuah reset menjadi aktif, sekalipun clocknya tidak jalan.Jika interface JTAG enable, pull up resistor di pin PC5(TDI), PC3(TMS), dan PC2(TCK) akan aktif sekalipun reset terjadi PORTD : Port D adalah 8 bit bi-directional I/O port dengan Internal pull-up resistor .Buffer output port D ini mempunyai karakteristik symmetrical drive dengan kapabilitas source dan sink yang tinggi.Sebagai input, pin port D adalah eksternal pull-low seperti sumber arus jika pull-up resistor aktif. Pin port D adalah tri-states ketika kondisi sebuah reset menjadi aktif, sekalipun clocknya tidak jalan. RESET : Sebuah low level pada pin akan lebih lama daripada lebar pulsa minimum akan menghasilkan reset meskipun clock tidak berjalan. XTAL1 : Input inverting penguat Oscilator dan input internal clock operasi rangkaian. XTAL2 : Output dari inverting penguat Oscilator. AVCC : Pin supply tegangan untuk PortA dan A/D converter .Sebaiknya eksternalnya
dihubungkan ke VCC meskipun ADC tidak digunakan. Jika ADC digunakan seharusnya dihubungkan ke VCC melalui low pas filter. AREF : yaitu pin referensi analog untuk A/D konverter.
2.3.2.
Download Program
Pengujian Rangkaian Mikrokontroller AVR ATmega16 dengan menghubungkan DB 25 ke personal komputer agar program yang telah terbuat dapat diaplikasikan pada sistem yang telah dirancang
Gambar 2.4 Alur interface Atmega16 2.3.3. Code Vision AVR Merupakan suatu software yang digunakan dalam penulisan program yang nantinya akan di download pada Mikrokontroller ATMEGA 16. Dapat dilihat seperti pada struktur program dibawah ini :
Gambar 2.5 Code Vision AVR Dalam penggunaan Mikrokontroller AVR menggunakan software CodeVision AVR. Seperti umumnya Mikrokontroller, program untuk Mikrokontroller AVR ditulis menggunakan bahasa assembly. CodeVision AVR merupakan software Ccross compiler, dimana program dapat ditulis menggunakan bahasa-C. dengan menggunakan pemrograman bahasa-C diharapkan waktu desain (developing time) akan menjadi lebih singkat. Setelah program dalam bahasa-C ditulis dan dilakukan kompilasi tidak terdapat kesalahan (error) maka proses download dapat dilakukan. Mikrokontroller AVR mendukung Sistem download secara ISP (In-Sistem Programming) Dalam menggunakan program ini terlebih dahulu diperlukan inisialisasi chip yang digunakan, clock, I/O port, dan segala hal diperlukan dalam mendesain suatu pemrograman pada umumnya. Blok inisialisasi dapat dilihat pada gambar 2.6 di bawah ini:
Gambar 2.6 Blok Penginisialisasian Program Setelah penginisialisasian chip maka selanjutnya Generate, Save and Exit. Selanjutnya yaitu penulusan program pada blok bagian yang telah tersedia, seperti ditunjukkan pada gambar 2.6 berikut:
CodeVision
Dalam pemrogran CodeVision AVC C compiler kita dilengkapi dengan bermacam macam fitur fitur untuk penyetingan pada pemrograman. Misalkan dalam menentukan Pin Input/Output, untuk setting LCD, Timer/Counter, komunikasi serial, seting chip yang digunakan. Langkah-langkan dalam memulai project baru dengan CodeVision C compiler adalah sebagai berikut: 1) Jalankan software CodeVision AVR
Gambar 2.8 Software Code Vision AVR 2) Buatlah project baru Pilih File New, Pilih project lalu tekan tombol OK
Gambar 2.9 Create Project Baru 3) Kemudian muncul dialog apakah pengguna akan membut project baru. pilih yes
Gambar 2.10 Pilihan untuk menggunakan Code Wizard 4) Pilih crystal yang digunakan, Port Input/Output yang digunakan, Timer dan lainlain sesuai dengan kebutuhan dalam pemrograman
Gambar 2.12 Menghasilkan kode program 6) Kemudian lanjut pemrograman pada compiler dengan penulisan layar CodeVision C
Optocoupler
Sensor Posisi
Load
Perancangan Sistem
Pada sistem ini hanya menggunakan 1 buah moicrocontroller, yaitu Atmega 16. Optocoupler akan menghitung setiap kali motor berputar. Apabila nilai yang diinputkan melalui Remote telah sama dengan jumlah putaran motor, maka secara mekanis dan otomatis akan berhenti. Hal ini disebabkan karena adanya sensor Rotary Encoder yang terpasang pada as motor, dan difungsikan sebagai counter penerima sinyal melalui infra merah.
3.2. FLOWCHART
Flowchart rancangan pembuatan perangkat lunak :
Start
InisialisasiI / O
PutarKanan 1/2
Putar Kananfull
PutarKiri full
Motor Off
END
Gambar 3.2 menunjukan rencana flowchart yang akan dibuat. Sistem dapat diatur besar tegangan dan besar frekuensi kerja sesuai yang diinginkan. Penentuan dari besar tegangan dan frekuensi kerja diinputkan melalui penekanan tombol pada remote. Penginisialisasian I/O (input output) berupa interupt timer, port input dan output. Pada kondisi awal motor dalam keadaan Off, sebelum ada masukan dari remote. Setelah ada masukan dari remote, mikro akan mengaktifkan salah satu dari port input 0-7, maka pembangkitan PWM akan dikeluarkan pada port output Pin D.7. Pada keadaan ini port output ke rangkaian Driver on, dengan demikian motor berputar ke kanan atau ke kiri. Setelah inputan pada interupt sesuai set point, maka motor berhenti dan semua sistem akan stand by menunggu inputan selanjutnya.
3.3. PERANCANGAN MIKROKONTROLLER Sistem Mikrokontroller AVR Atmega 16 pada sistem pengaturan disini dimaksudkan untuk mendapatkan sistem Mikrokontroller yang sesuai dengan kebutuhan dan menghubungkan Mikrokontroller yang berisi algoritma dengan peralatan lain yang berfungsi untuk membaca data dari set point maupun dari optocoupler. Sehingga proses penggulungan ulang Rolling Door atau putaran motor akan sama dengan setpointnya 3.3.1. Perancangan Mikrokontroller AVR Atmega 16. Dalam proyek akhir ini digunakannya Mikrokontroller AVR Atmega 16 dengan ketentuan pinpin yang digunakan adalah sebagai berikut : Mikrokontroller AVR ATMEGA 16 8 bit, memory SRAM 512 bytes, EEPROM 52 bytes, 8 Kb ISP. Clock yang digunakan 11.0594 Mhz 32 Programmable I/O lines Tegangan operasi 4.5 V 5.5 V
No. 1. 2. 3. 4.
Output
Vout
Input Mikrokontroller
Analisa pengujian Remote Control : Pengujian integrasi ini dilakukan melalui penekanan tombol Pin 7 pada Remote Control, Output pada receiver sebesar 5 Volt sebagai input dari Mikrokontroller. Dalam hal ini input Mikrokontroller disetting dalam kondisi High. Berikut adalah penginisialisasiannya :
// Port C initialization // Func7=In Func6=In Func5=In Func2=In Func1=In Func0=In Func4=In Func3=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0xFF; DDRC=0x00;
Pada saat tidak ada penekanan pada tombol Remote maka Receiver tidak akan mengeluarkan tegangna sebesar 5Volt, sehingga Mikrokontroller tidak mendapatkan Input dari Receiver. Maka Sistem tidak bekerja.
List programnya sebagai berikut : // Timer/Counter 2 initialization // Clock source: Sistem Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x61; TCNT2=0x00; OCR2=0x00; Pada minimum Sistem menggunakan Crystal 11.0594 MHz, sehingga Output frekuensi PWM sebesar 21 KHz.
Gambar 4.2 Tampilan PWM Dengan Mikrokontroller Pada Gambar 4.2 menggunakan Volt/Div 2 Volt dan T/Div 20 us. Maka nilai frekuensi yang dihasilkannya :
Vout Pengukuran
Vout Teori
Error(%)
18
19,2 V 20,8 V
70 75 80 85 90
22 V 23,2V 26 V 27 V 29 V
22,4 V 24 V
Dari data diatas tegangan keluaran buck converter memiliki persen error rata-rata sebesar 1,99%.
Berikut adalah list program dari Duty Cycle 75 % : void naik1(void) //MOTOR NAIK KEATAS 1/2 { while(1) { //MOTOR NAIK KEATAS 1/2 OCR2=192; PORTD.0=1; PORTD.1=0; PORTD.2=0;
program tersebut tidak terdapat error. Untuk running program, caranya hubungkan langsung antara PC dan Mikrokontroller melalui kabel serial PC dan rangkaian dwonloader kemudian lakukan Down Load program. Peralatan yang digunakan untuk pengujian Minimum Sistem : 1.DC power supply +5V. 2.Modul mikrokontroler ATmega16. 3.Modul simulasi LED. 4.Kabel secukupnya. 5.Seperangkat PC. 6.Software CodeWizardAVR V1.24.0 Standard. Rangkaian yang digunakan untuk melakukan pengujian Sistem minimum adalah sebagai berikut :
Gambar 4.4. Rangkaian Pengujian Minimum Sistem Pada pengujian ini digunakan LED sebagai simulasi dari pin Output Microconttroller, dan menggunakan push button sebagai simulasi dari pin Input. Pengujian dilakukan pada masingmasing pin yang ada pada pin Mikrokontroller, jika pada saat ada penekanan tombol push button pada input Mikrokontroller maka LED akan menyala sebagai indikator bahwa pin tersebut masih berfungsi dengan baik. Berikut list program pegujian Minimum Sistem : void nyala1(void) //lampu 1 nyala { while(1) { //lampu 1 nyala PORTD.0=1; PORTD.1=0; PORTD.2=0;
Mikrokontroller mulai melakukan counter. Jika sesuai setting yang diinginkan maka counter tidak bekerja, dan kembali ke menu utama menunggu inputan selanjutnya. Pada Rancang Bangun Rolling Door kali ini counter di setting untuk membuka dan menutup rolling Door sesuai posisi yang diinginkan. Pada posisi tengah counter yang dibutuhkan sejumlah 6 counter, sedangkan untuk posisi full counter yang dibutuhkan sejumlah 12. Berikut gambar flowchart Counter :
Start
Output Motor
Pin B.0=0
i=i+1
Y i=5
End
% error =
= 3.3 %
2. 3.
4.
Rotary Encoder setting pada Mikrokontroller menyesuaikan dengan mekanik. Untuk koneksi antara hardware perlu diperhatikan, karena apabila salah koneksi dapat menyebabkan error (kesalahan). Penentuan Duty Cycle pada Mikrokontroller menggunakan nilai integer, dan penentuan nilai Duty Cycle dapat diatur langsung melalui program.
5.2. SARAN
Dengan memperhatikan beberapa kelemahan dan kekurangan dari proyek akhir ini secara keseluruhan dan untuk setting kecepatan pada khususnya, diberikan saran untuk sekiranya proyek akhir ini dapat dikembangkan pada masa yang akan datang agar lebih sempurna dan dapat langsung diaplikasikan dalam keseharian guna membantu dalam pekerjaan. Adapun beberapa saran tersebut yaitu: 1. Pada saat proses penggulungan harus diperhatikan rantai pada ger yang terpasang pada As motor DC dengan Rolling Door tidak boleh kendor. 2. Pada alat ini proses otomatis hanya pada proses pemberhentian putaran motor. Setting sensor Rotary Encoder pada pemberhentian motor menyesuaikan dengan mekanik. Jika sewaktu-waktu terjadi error atau kerusakan pada sensor Rotary Encoder, maka Rolling Door akan terus membuka ataupun menutup mengikuti motor tanpa terdeteksi oleh sensor. Hal ini tentu dapat merusak pintu maupun motor, oleh sebab itu untuk sekiranya proyek akhir ini dapat dikembangkan pada masa yang akan datang haruslah dipasang limit swicth pada batas atas maupun batas bawah. Hal ini dikarenakan untuk mengantisipasi apabila terjadi error pada sensor maka motor akan tetap berhenti pada batas-batas yang sesuai pada settingan awal.
DAFTAR PUSTAKA
1. 2. 3. 4. 5. CodeVisionAVR. www.hpinfotech.com Data sheet ATMEL AVR ATMEGA 16 Mikrokontroller. www.atmel.com www.delta-electronic.com www.innovativeelectronic.com Modul praktikum Pembangkitan Pulsa PWM , Elin Pens ITS Surabaya. Hussein Ali A, ST, MEng, Pengantar Mikrokontroller , Politeknik Elektronika Negri Surabaya, 2007 Sartrio Hanindhito, Pengaturan Kecepatan Motor DC Pada Miniatur Crane untuk Akselerasi Dinamis (Driver), Politeknik Elektronika Negri Surabaya, 2007
6.
7.
LAMPIRAN : /************************************************ ***** This program was produced by the CodeWizardAVR V1.25.7a Standard Automatic Program Generator Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 7/25/2008 Author : DENNI Company : DENNI Corp Comments:
Chip type : ATmega16L Program type : Application Clock frequency : 4.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 ************************************************ *****/ #include <mega16.h> #include <stdio.h> #include <math.h> #include <delay.h> unsigned int i; void naik1(void); void UTAMA(void); void naik2(void); void turun1(void); void turun2(void); void berhenti1(void); // Declare your global variables here
void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0xFF; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0xFF; // Timer/Counter 0 initialization
// Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x61; TCNT2=0x00;
OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; PORTD.2=1; while (1) { UTAMA(); }; } void UTAMA(void) { while(1) { PORTD.2=1; i=0; if(PINC.0==1) { naik1(); } if(PINC.1==1) { naik2(); }; if(PINC.2==1)
{ turun1(); }; if(PINC.3==1) { turun2(); } }; } void naik1(void) //MOTOR NAIK KEATAS 1/2 { while(1) { //MOTOR NAIK KEATAS 1/2 OCR2=0xC0; PORTD.0=1; PORTD.1=0; PORTD.2=0; if(PINB.0==0) { while(1) { if(PINB.0==1) { i=i+1; if(i==6)berhenti1();//MOTOR OFF SETELAH 1/2 else naik1(); } } } }; } void turun1(void) { while(1) { //MOTOR TURUN 1/2 OCR2=0xC0;
PORTD.0=0; PORTD.1=1; PORTD.2=0; if(PINB.0==0) { while(1) { if(PINB.0==1) { i=i+1; if(i==6)berhenti1();//MOTOR OFF SETELAH 1/2 else turun1(); } } } }; } void naik2(void) { while(1) { //MOTOR NAIK KEATAS FULL OCR2=0xC0; PORTD.0=1; PORTD.1=0; PORTD.2=0; if(PINB.0==0) { while(1) { if(PINB.0==1) { i=i+1; if(i==12)berhenti1();//MOTOR NAIK KEATAS FULL else naik2(); }
} } }; } void turun2(void) { while(1) { //MOTOR TURUN FULL OCR2=0xC0; PORTD.0=0; PORTD.1=1; PORTD.2=0; if(PINB.0==0) { while(1) { if(PINB.0==1) { i=i+1; if(i==12)berhenti1();//MOTOR TURUN FULL else turun2(); } } } }; } void berhenti1(void) { while(1) { OCR2=0x00; PORTD.0=0; PORTD.1=0; PORTD.2=1; //REM BEKERJA OCR2=0; i=0; delay_ms(10);
UTAMA(); }; }