LAWAL4

19
PRAKTIKUM MIKROPROSESOR MODUL IV PWM, PID dan USART LAPORAN AWAL NAMA : Mukh Yasin Nur Supriyadi NPM : 140303130001 WAKTU : Senin, 24 November 2014, 16.30 – 18.00 ASSISTEN : Ahmad dan Fajar

description

pemrograman

Transcript of LAWAL4

PRAKTIKUM MIKROPROSESORMODUL IVPWM, PID dan USARTLAPORAN AWAL

NAMA: Mukh Yasin Nur Supriyadi NPM : 140303130001 WAKTU: Senin, 24 November 2014, 16.30 18.00 ASSISTEN : Ahmad dan Fajar

LABORATORIUM HARDWAREPROGRAM STUDI TEKNIK KOMPUTERFMIPA UNPAD2014MODUL IVPWM, PID dan USART

I. Tujuan Praktikum Praktikan mampu memahami konsep PID. Praktikan mampu membuat robot line follower Praktikan mampu memahami cara melakukan inisialisasi pada komunikasi serial USART mikrokontroler AVR.

II. Teori Dasar2.1. PWM (Pulse Width Modulation)Secara umum PWM adalah sebuah cara memanipulasi lebar sinyal atau tegangan yang dinyatakan dengan pulsa dalam suatu perioda, yang digunakan untuk mentransfer data pada telekomunikasi ataupun mengatur tegangan sumber yang konstan untuk mendapatkan tegangan rata-rata yang berbeda. Penggunaan PWM ini sangat banyak, mulai dari permodulasian data untuk telekomunikasi, pengontrolan daya atau tegangan yang masuk ke beban, regulator tegangan, audio effect dan penguatan, serta aplikasi-aplikasi lainya.Teknik yang bisa digunakan untuk mengontrol daya ke perangkat listrik. PWM digunakan untuk mendapatkan output analog dengan cara digital. PWM merupakan metoda untuk mengatur kecepatan perputaran motor dengan cara mengatur persentase lebar pulsa high terhadap perioda dari suatu sinyal persegi dalam bentuk tegangan periodik yang diberikan ke motor sebagai sumber daya. Semakin besar perbandingan lama sinyal high dengan perioda sinyal maka semakin cepat motor berputar. Pada driver ini, sinyal PWM akan diatur secara digital yang dibangkitkan oleh mikrokontroler ATMega8535.Driver motor digunakan untuk menggerakan motor yang membutuhkan arus cukup besar dan tagangan motor yang berbeda dengan rangkaian digital (rangkaian mikrokontroler. Arus yang mampu dikeluarkan atau diterima (current source/sink) oleh mikrokontroler sangat kecil (dalam orde satuan miliampere) sehingga agar mikrokontroler dapat menggerakan motor diperlukan driver motor yang mampu mengalirkan sampai beberapa ampere. Beberapa motor DC mempunyai teganagn kerja yang berbeda dengan rangkaian mikrokontroler (5 volt) misalnya motor DC 6 volt, 12 volt, 24 volt dsb.Rangkaian driver motor dapat berupa rangkaian transistor, relay, rangkaian MOSFET, IC (Integrated Circuit) dsb. Dalam aplikasi ini digunakan IC L1239D yang berisi 4 channerl driver dengan kemampuan mengalirkan arus sebesar 600 mA per channel. Tegangan kerja IC L239D dari 6 volt sampai dengan 36 volt dan arus impuls tak berulang maksimum sebesar 1,2 ampere.Cara kerja IC L2393 sebagai berikut: Arah putar motor kiri diatur oleh PORTB.6 dan PORTB.7 Arah putar motor kanan diatur oleh PORTB.3 dan PORTB.2 Kecepatan motor kiri (EN1) diatur oleh register OC1A (PORTD.5) Kecepatan motor kanan (EN2) diatur oleh register OC1B (PORTD.4)

Penggunaan PWMPWM sebagai data keluaran suatu perangkat PWM dapat digunakan sebagai data dari suatu perangkat, data direpresentasikan dengan lebar pulsa positif (Tp). PWM sebagai data masukan kendali suatu perangkat. Selain sebagai data keluaran, PWM pun dapat digunakan sebagai data masukan sebagai pengendali suatu perangkat. Salah satu perangkat yang menggunakan data PWM sebagai data masukanya adalah Motor DC Servo. PWM sebagai pengendali kecepatan motor DC bersikat. Motor DC Bersikat atau Motor DC yang biasa ditemui dipasaran yang memiliki kutub A dan kutub B yang jika diberikan beda potensial diantara keduanya, maka Motor DC akan berputar. Pada prinsipnya, Motor DC jenis ini aka nada waktu antara saat beda potensial diantara keduanya dihilangkan dan waktu berhentinya. Prinsip inilah yang digunakan untuk mengendalikan kecepatan motor DC jenis ini dengan PWM, semakin besar lebar pulsa positif dari PWM maka akan semakin cepat putaran Motor DC. Untuk mendapatkan putaran Motor DC yang halus, maka diperlukan penyesuaian Frekuensi (Perioda Total) PWM-nya.

2.2. PIDPID (Propotional Integral Derevative) merupakan kontroler untuk menentukan presisi suatu sistem intrumentasi dengan karakteristik adanya umpan balik pada sistem tersebut. Komponen control PID ini terdiri dari 3 jenis yaitu proportional, integrative, dan derivative. Ketiganya dapat dipakai bersamaan maupun sendiri-sendiri tergantung respon yang kita inginkan terhadap suatu plant.1. Konstanta PropotionalKontrol P jika G(s) = Kp, maka k adalah konstanta. Jika u = G(s).e Maka U = Kp.e dengan Kp adalah kostanta propotional, Kp berlaku sebagai Gain (Penguat) saja tanpa memberikan efek dinamik pada kinerja controller. Penggunaan control P memiliki berbagai keterbatasan karena sifat control yang tidak dinamik ini. Walaupun demikian dalam aplikasi-aplikasi dasar sederhana control P ini cukup mampu untuk memperbaiki respon transien khususnya rise time dan setting time.2. Konstanta IntergatifJika G(S) adalah control 1 maka u dapat dinyatakan sebagai u(t)=[integral (t)dt] Ki, dengan dengan Ki adalah konstanta integral, dan dari persamaan diatas, G(s) dapat dinyatakan sebagai u=Kd.[deltae/deltat], jika e(t) mendekati konstan (bukan nol) maka u(t) akan menjadi sangat besar sehingga diharapkan dapat memperbaiki error. Jika e(T) mendekati nol maka efek control 1 ini akan semakin kecil. Kontrol I dapat memperbaiki sekaligu menghilangkan respon transien yang tinggi sehingga dapat menyebabkan ketidakstabilan system. Pemilihan Ki yang sangat tinggi justru dapat menyebabkan output berisolasi karena menambah orde system.

3. Konstanta DerevatifSinyal control u yang dihasilkan oleh control D dapat dinyatakan sebagai G(s)=s.Kd dari persamaan diatas, nampak bahwa sifat dari control D ini dalam konteks kecepatan atau rute error. Dengan sifat ini dapat digunakan untuk memperbaiki respon transien dengan memprediksi error yang akan terjadi. Kontrol derivative ini hanya berubah saat ada perubahan error sehingga saat error statis control ini tidak akan bereaksi, hal ini perlu yang menyebabkan kontroler derivatif tidak dapat dipakai sendiri.

Keterangan Respon SistemDalam menggunakan PID ini adalah mencari respon sesuai yang diinginkan. Semakin kecil rise time/waktu naik, kemudian perbedaan isolasi harus 5 % dari overshoot sebelumnya, dan semakin kecil error-steady state/mendekati set poin yang diinginkan maka respon tersebut dapat dikatakan berhasil.Tabel Karakteristik PengendaliRespon LoopTertutupRise Time(Waktu Naik)OvershootSetting Time(Waktu Turun)Steady-stateError

KpMenurunMeningkatPerubahan KecilMenurun

KiMenurunMeningkatMeningkatHilang

KdPerubahan kecilMenurunMenurunPerubahan Kecil

2.3. USARTKomunikasi SerialTransmisi data seri dibedakan menjadi 2 macam, yaitu komunikasi data seri sinkron dan komunikasi data asinkron, perbedaan ini tergantung pada clock pendorong data. Dalam komunikasi data seri sinkron, clock untuk shift register ikut dikirimkan bersama dengan data ser. Sebaliknya dalam komunikasi data asinkron, clock pendorong shift register tidak ikut dikirim, rangkaian penerima data bisa membangkitkan clock yang biasa dipakai untuk mendorong shift register penerima. Untuk keperluan tersebut terlebih dahulu ditentukan bahwa tidak saat pengiriman data, keadaan saluran adalah 1, saat akan mulai mengirim data byte saluran dibuat menjadi 0 dulu selama 1 periode clock pendorong, dalam 8 periode clock berikutnya dikirim data bit0, bit 1 dan seterusnya sampai dengan 8 bit, dan pada periode clock yang ke 10 saluran dikembalikan menjadi 1. Dengan demikian, data 8 bit yang dikirim diawali dengan bit start yang bernilai 0 dengan diakhiri bit stop yang bernilai 1. Bagian yang penting dari komunikasi serial adalah konektor yang digunakan untuk menghubungkan hardware dengan computer. Kegunaan RS232 adalah sebagai driver, yang mengkonversi tegangan dari hardware agar sesuai dengan tegangan pada computer sehingga dapat dibaca. RS 232 Logic High (1) -15 V s/d -3V Logic Low (0) +3 V s/d +15 V

TTL Logic High (1) +2 V s/d +5 V Logic Low (0) 0 V s/d + 0.8 vRangkaian interface menerjemahkan level tegangan RS232 ke level tegangan TTL dan sebaliknya. Rangkaian interdace tersebut menggunakan IC Max232.Untuk menghubungkan antara 2 buah PC, atau antar rangkaian mikrokontroler dengan PC biasanya menggunakan format null node, dimana pin TXD dihubungkan dengan RXD pasangan, pin sinyak ground (5) dihubungkan dengan sinyal ground dipasangan.Tabel Fungsi Kaki pada DB9PINSIGNALDESCRIPTIONI/O

1CDCarrier DetectIn

2RDReceive DataIn

3TDTransmit DataOut

4DTRData Terminal ReadyOut

5SGSignal Ground-

6DSRData Set ReadyIn

7RTSRequest To SendOut

8CTSClear To SendIn

9RIRing IndicatorIn

USART (Universal Syncronous Asyncronous Receiver Transmitter)USART ATMega 8535 memiliki beberapa keuntungan dibandingkan system UART, yaitu: Operasi full duplex (mempunyai register receive dan transmit yang terpisah) Mendukung komunikasi multiprosesor Mode kecepatan tranmisi berorde MbpsUntuk menganalisa USART, register yang perlu ditentukan nilainya, yaitu:1. UBRR (USART Baud Rare Register)UBRR merupakan register 16 bit, yang berfungsi untuk menentukan kecepatan tranmisi data yang akan digunakan. UBRRL dibagi menjadi 2 yaitu UBRRH dan UBRRL. UBRR [11...0] merupakan bit penyimpanan konstanta kecepatan komunikasi serial. UBRRH menyimpan 4 bit tertinggi, dan UBRRL menyimpan 8 bit sisanya. Data yang dimasukan ke UBRRH dan UBRRL, dihitung menggunakan rumus.

MODE OPERASIRUMUS NILAI UBR

Asinkron mode kecepatan normal(U2X=0)UBRR=

Asinkron mode kecepatan ganda(U2X=0)UBRR=

SinkronUBRR=

2. UCSRA (USART Control and Status Register A)

3. UCSRB (USART Control and Status Register B)UCSRB merupakan register 8 bit pengatur aktivasi penerima dan mengirim USART, komposisinya sebagai berikut:

Penjelasan bit penyusun register UCSRB : RXCIE : bit pengatur aktivasi interupsi penerimaan data serial TXCIE : bit pengatur aktivasi interupsi pengiriman data serial UDRIE : bit pengatur aktivasi interupsi, yang berhubungan dengan kondisi bit UDRE pada UCSRA RXEN : bit pengatur aktivasi penerimaan serial ATMega 8535 TXEN : bit pengatur aktivasi pengiriman serial ATMega 8535 UCSAZ2 : bersama sama dengan bit UCSZ1 dan UCSZ0 diregister UCSZ0 menentukan ukuran karakter serial yang dikirimkan

UCSZ[20]Ukuran karakter dalam bit

0005

0016

0107

0118

100-110Tidak digunakan

1119

4. UCSRC (USART Control and Status Register C)UCSRC merupakan register 8 bit yang digunakan untuk mengatur mode dan kecepatan komunikasi serial yang dilakukan. Komposisinya seperti gambar dibawah ini:

URSEL: merupakan bit pemilih akses antara UCSRC dan UBRR UMSEL: merupakan bit pemilih mode komunikasi serial antara sinkron dan asinkron UPM [1...0]: merupakan bit pengatur paritas USBS: merupakan bit pemilih ukuran bit stop UCSZ1 dan UCSZ0: merupakan pengatur jumlah karakter serial UCPOL: merupakan bit pengatur hubungan antara perubahan data keluaran dan data masukan serial dengan clock sinkronasi.

III. TUGAS PENDAHULUAN1. Apa fungsi PID pada motor DC?Jawab : PID (Propotional Integral Derivative) digunakan untuk menentukan presisi suatu sistem intrumentasi dengan karakteristik adanya umpan balik pada sistem tersebut.2. Adakah komponen yang lebih baik dari PWM? Jika ada sebutkan alasanya!Jawab :PID.Kedua metode (PWM dan PID) sama-sama dapat digunakan untuk mengatur motor DC, namun masing-masing mempunyai fungsi berbeda, PWM digunakan untuk mengatur kecepatan motor, sedangkan PID digunakan untuk mengetahui apakah ada error / ketidaksamaan antara output ke motor dengan input dari UC, sehingga tentu saja ada feedback untuk mengetahui error yang terjadi, biasanya PID ini digunakan untuk mengatur CoG (Centre of Grafity) sehingga robot dapat menjaga keseimbangan walau hanya menggunakan 2 roda atau 2 kaki di sisi kiri dan kanan. PID dapat mengatur kecepatan motor, namun sebenarnya anda tidak perlu menggunakan PID karena dengan PWM saja juga sudah bisa.Kesimpulanya PID dapat mengatur kecepatan motor sekaligus mengetahui apakah ada error / ketidaksamaan antara output ke motor dengan input dari UC.3. Fungsi PWM pada motor DCJawab : Teknik PWM (Pulse Width Modulation) merupakan sebuah metoda untuk mengatur kecepatan perputaran Motor DC. PWM sendiri berfungsi untuk mengatur lebar sisi negative dan positif pulsa control pada frekuensi kerja yang tetap, semakin lebar sisi positif pulsa, putaran motor DC semakin cepat, dan sebaliknya, semakin kecil sisi positif pulsanya, perputaran motor DCnya semakin lambat.4. Download dan jelaskan rangkaian komunikasi serial USART!Jawab :

Penjelasan : Pin 15 dan Pin 16 pada gambar maksudnya yaitu pin pada ICMax232nya. sedangkan untuk JP1, Pin 1 dihubungkan padaPORTD.0atau RXD, dan Pin2 dihubungkan padaPORTD.1atau RXD ada mikrokontroler, mikrokontroler yang saya gunakan disini yaituATMega8535. kalo udah dibuat rangkaiannya, maka langkah selanjutnya yaitu menghubungkan konektor DB9 ke Port serial komputer, dan jangan lupa, hubungkan juga Supply tegangan sebesar 5 Volt pada vcc, dan Ground pada rangkaianRS232dengan ground padamikrokontroler.

5. Adakah jenis komunikasi serial selain USART? Sebutkan dan jelaskan!Jawab :Komunikasi serialada dua macam,asynchronous serialdansynchronous serial.a. Synchronous serialadalah komunikasi dimana hanya ada satu pihak (pengirim atau penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersama-sama dengan data. Contoh pengunaansynchronous serialterdapat pada transmisi data keyboard.b. Asynchronous serialadalah komunikasi dimana kedua pihak (pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang ditransmisikan, tanpa clock. Agar data yang dikirim sama dengan data yang diterima, maka kedua frekuensi clock harus sama dan harus terdapat sinkronisasi. Setelah adanya sinkronisasi, pengirim akan mengirimkan datanya sesuai dengan frekuensi clock pengirim dan penerima akan membaca data sesuai dengan frekuensi clock penerima. Contoh penggunaan asynchronous serial adalah pada Universal Asynchronous Receiver Transmitter (UART) yang digunakan pada serial port (COM) komputer.

6. Jelaskan cara mengatur PWM pada Code Vision AVR!Jawab : Setelah CodeVision AVR terbuka, buat project baru dengan mengeklik "Create New File". Klik OK. lalu konfirmasi, klik YES. setelah itu akan masuk "CodeWizardAVR" disana terdapat beberapa setting seperti USART, Analog, ADC, SPI, 12C, 1Wire, 2Wire, LCD, Chip dsb. kita pilih 'CHIP'. pada bagian Chip tersebut pilih jenis mikrokontroller yang dipakai. set juga clocknya. setelah itu ke pilihan "TIMERS". pilih Timer0, karena untuk PWM yang dipakai adalah Timer0. pilih "Clock Source"nya, "Value", "Mode", serta "Output" nya juga. setelah semuanya selese, klik menu "File" lalu pilih "Generate, Save and Exit". setelah itu akan muncul jendela warning, abaikan, klik "YES". setelah itu save dengan nama bebas di folder sesuai keinginan. setelah itu muncul halaman untuk penulisan program, tulis program seperti berikut :#include #include

#define pwm OCR0 //OCR0 adalah output untuk PWM //OCR0 diberi nilai dari 0-255 //karena PWM yang digunakan adalah 8 bit

// Declare your global variables here unsigned char i=0;

void main(void){// Declare your local variables here

// setingan untuk OC0 sebagai output karena berada pada PINB.4// posisi OC0 tidak bisa diubah, harus berada pada PINB.4, coba lihat datasheet atmega32

PORTB=0x00;DDRB=0x08;

//setingan register untuk membangkitkan PWM dari Timer0// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: 8000.000 kHz// Mode: Phase correct PWM top=FFh// OC0 output: Non-Inverted PWMTCCR0=0x61;TCNT0=0x00;OCR0=0x00; while (1) { // Place your code here for(i=0;i