ALGORITMA PENGENDALI PID.docx

31
ALGORITMA PENGENDALI PID Pengendali PID merupakan salah satu jenis pengatur yang banyak digunakan. Pengendali PID merupakan salah satu algoritma sama halnya seperti algoritma pemrograman yang lainnya seperti : Fuzzy Logic, Jaringan Syaraf Tiruan (JST), Algoritma genetika, dan masih banyak yang lainnya. Pengendali PID paling banyak digunakan karena sederhana dan mudah dipelajari tuning parameternya. Lebih dari 95% proses di industri menggunakan pengendali ini. Pengendali ini merupakan gabungan dari pengendali Proportional (P), Integral (I), dan Derivative (D). Berikut ini adalah Blok diagram sistem pengendali PID: Gambar Diagram Blog Closed Loop (PID) Persamaan atau Fungsi Transfer dari Pengendali PID adalah sebagai berikut : K P = Proportional Gain K I = Integral Gain K D = Derivatif Gain

description

Makalah tentang pengendali PID pada MATLAB dengan beberapa metode

Transcript of ALGORITMA PENGENDALI PID.docx

ALGORITMA PENGENDALI PID

Pengendali PID merupakan salah satu jenis pengatur yang banyak

digunakan. Pengendali PID merupakan salah satu algoritma sama halnya

seperti algoritma pemrograman yang lainnya seperti : Fuzzy Logic, Jaringan

Syaraf Tiruan (JST), Algoritma genetika, dan masih banyak yang lainnya.

        Pengendali PID paling banyak digunakan karena sederhana dan mudah

dipelajari tuning parameternya. Lebih dari 95% proses di industri

menggunakan pengendali ini. Pengendali ini merupakan gabungan dari

pengendali Proportional (P), Integral (I), dan Derivative (D). Berikut ini adalah

Blok diagram sistem pengendali PID:

Gambar Diagram Blog Closed Loop (PID)

Persamaan atau Fungsi Transfer dari Pengendali PID adalah sebagai berikut :

        KP = Proportional Gain        KI = Integral Gain        KD = Derivatif Gain  

Gambar Keterangan Respon Sistem

Yang ingin kita lakukan dalam menggunakan Pengendali PID ini adalah kita

ingin mencari respon sistem sesuai yang kita inginkan acuan adalah seperti

keterangan gambar diatas dimana semakin kecil rise time / waktu naik,

kemudian perbedaan isolasi dalam artian harus 5% dari overshoot

sebelumnya, dan semakin kecil error-steady state atau mendekati set poin

yang kita inginkan maka respon tersebut dapat dikatakan berhasil atau

bagus.

Berikut ini adalah tabel Karakteristik masing-masing pengendali :

Respon

Loop

Tertutup

Waktu Naik

(Rise Time)Overshoot

Waktu Turun

(Settling Time)

Steady-

State Error

Kp Menurun Meningkat Perubahan Kecil

Menurun

Ki Menurun Meningkat Meningkat HilangKd Perubahan

KecilMenurun Menurun Perubahan

Kecil  

http://www.meriwardanaku.com/2010/06/mengenal-pengendali-pid-pid-controller.html

REALISASI KONTROL PID (PROPORSIONAL INTEGRAL DERIVATIF) KEDALAM BAHASA PEMROGRAMAN BAHASA CMenurut sebuah survey, bahwa 97% industri yang bergerak dibidang proses menggunakan kontrol PID dalam melakukan pengontrolannya. Luasnya penggunaan kontrol PID pada dasarnya dilatarbelakangi beberapa hal diantaranya: Kesederhanaan struktur kontrol. Hanya mempunyai 3 parameter utama yang perlu diatur (tuning).

kontrol PID memiliki sejarah yang panjang. PID telah digunakan jauh sebelum era digital berkembang (1930an)

Kontrol PID dalam banyak kasus telah terbukti menghasilkan unjuk kerja yang relatif memuaskan baik digunakan sebagai sistem regulator maupun sebagai sistem servo.

Pada awalnya kontrol PID umumnya diimplementasikan dengan menggunakan rangkaian elektronika analog. Bahkan  banyak diantaranya direalisasikan dalam komponen mekanis dan pneumatis murni.

Seiring dengan berkembangnya dunia digital (terutama mikroprosessor dan mikrokontroler) maka algoritma kontrol PID dapat direalisasikan kedalam bentuk persamaan PID digital. Yang jika diimplementasikan hanya berupa sebuah program saja yang ditanamkan kedalam embedded system (mikroprosessor atau mikrokontroler).

Berikut adalah beberapa penjelasan singkat tentang kontrol PID:

Kontrol Proporsionalkontrol proporsional berfungsi untuk memperkuat sinyal kesalahan penggerak (sinyal error), sehingga akan mempercepat keluaran sistem mencapai titik referensi. Hubungan antara input kontroler u(t) dengan sinyal error e(t) terlihat pada persamaan 1.

Kp adalah konstanta proporsional. Diagram blok kontrol proporsional ditunjukkan pada gambar 1.

  gambar 1 diagram blok kontrol proporsional

Kontrol Integral

Kontrol integral pada prinsipnya bertujuan untuk menghilangkan kesalahan keadaan tunak (offset) yang biasanya dihasilkan oleh kontrol proporsional. Hubungan antara output kontrol integral u(t) dengan sinyal error e(t) terlihat pada persamaan 2.

Ki adalah konstanta integral. Diagram blok kontrol integral ditunjukkan pada gambar 2.

 gambar 2 diagram blok kontrol integral

Kontrol Derivatif (turunan)Kontrol derivatif dapat disebut pengendali laju, karena output kontroler sebanding dengan laju perubahan sinyal error.  Hubungan antara output kontrol derivatif u(t) dengan sinyal error e(t) terlihat pada persamaan 3.

Blok kontrol derivatif ditunjukkan pada Gambar 3. Kontrol derivatif tidak akan pernah digunakan sendirian, karena kontroler ini hanya akan aktif pada periode peralihan. Pada periode peralihan, kontrol derivatif menyebabkan adanya redaman pada sistem sehingga lebih memperkecil lonjakan. Seperti pada kontrol proporsional, kontrol derivatif juga tidak dapat menghilangkan offset.

gambar 3 diagram blok kontrol derivatif

Gabungan dari ketiga kontroler tersebut menjadi kontrol PID. Diagram Blok dari kontrol PID ditunjukan pada gambar 4.

gambar 4  diagram blok kontrol PID

Sehingga persamaan untuk kontrol PID adalah:

 atau

Dengan:u(t) = sinyal output pengendali PIDKp  = konstanta proporsionalTi   = waktu integralTd  = waktu derivatifKi   = konstanta integral (Kp⁄Ti )Kd  = konstanta derivatif (Kp.Td )e(t) = sinyal error = referensi – keluaran plant = set point – nilai sensor

Untuk persamaan PID no. (4) merupakan PID bentuk independent dan persamaan no. (5) merupakan PID bentuk dependent. Istilah tersebut mengacu kepada ketergantungan setiap suku persamaan terhadap nilai Kp. Untuk persamaan no (4), jika kita melakukan peruhan nilai pada konstanta proporsional (Kp) maka tidak akan mempengaruhi konstanta parameter lainnya. Sedangkan untuk persamaan no. (5), dengan merubah nilai Kp maka akan merubah nilai dari parameter-parameter lainnya. Disini saya akan menggunakan persamaan PID bentuk independent. Jika anda ingin menggunakan persamaan dependent, maka anda tinggal memasukan nilai dari Ki=Kp/Ti dan Kd=Kp.Td

Pada persamaan-persamaan (persamaan (1) – (5)) diatas merupakan persamaan dalam kawasan waktu continuous (analog). Sedangkan agar persamaan persamaan tersebut dapat direalisasikan dalam bentuk pemrograman, maka persamaan dalam kawasan waktu continuous tersebut harus

didiskretisasi terlebih dahulu (kawasan digital). Berikut adalah diskretisasi menggunakan metode numerik rectangularmundur (backward rectangular).

Kontrol ProporsionalJika dari persamaan (1) didiskretisai maka akan menjadi: 

 

Kontrol IntegralJika dari persamaan (2) didiskretisai maka akan menjadi:

  

Tc= waktu sampling atau waktu cuplik (Sampling time)Agar lebih mengerti dari persamaan diatas, akan saya terangkan secara singkat dan jelas.

“Integral (∫) adalah suatu operator matemamis dalam kawasan kontinyu jika didiskretisasi maka akan menjadi sigma (∑), yang merupakan operator matematis dalam kawasan diskret. Dimana fungi dari operator sigma adalah menjumlahkan nilai ke i sampai dengan nilai ke k. Berdasarkan perhitungan diatas variabel error (e) yang di integralkan sehingga dalam kawasan diskret menjadi e(0)+e(1)+…+e(k-1)+e(k), atau dengan kata lain error yang sebelumnya dijumlahkan dengan error-error yang sebelumnya hingga error yang sekarang.”

Kontrol DerivatifJika dari persamaan (3) didiskretisai dengan menggunakan cara yang sama seperti kontrol integral maka akan menjadi:

 

Tc= waktu sampling atau waktu cuplik (Sampling time)Agar lebih mengerti dari persamaan diatas, akan saya terangkan secara singkat dan jelas.

“Derivatif (de/dt) adalah suatu operator matemamis dalam kawasan kontinyu jika didiskretisasi maka akan menjadi limit, yang merupakan operator matematis dalam kawasan diskret. Dimana fungi dari operator limit adalah mengurangi nilai ke k dengan nilai ke k-1. Berdasarkan perhitungan diatas

variabel error (e) yang di derivatifkan, atau dengan kata lain error yang sekarang dikurangi error yang sebelumnya.”

Waktu sampling adalah lamanya waktu yang digunakan untuk mencuplik atau mensampling nilai dari sensor.  Nilai dari sensor ini berguna untuk mendapatkan sinyal error (error(e)=set point-nilai sensor). Dimana waktu sampling ini sangat berpengaruh pada kesensitifan sistem yang akan dikontrol.

Dari persamaan-persamaan (6), (7) dan (8) sudah berupa persamaan digital yang telah didiskretisasi, sehingga bisa langsung direalisasikan kedalam bahasa pemrograman. Disini saya mengimplementasikan kedalam bahasa pemrograman C dengan compiler CodeVision AVR.

Sebelumnya kita harus menentukan terlebih dahulu nilai set point dan waktu sampling. Serta melakukan pembacaan nilai dari sensor dengan lamanya periode sesuai waktu sampling.float set_point=60, Tc=0.01;//jika setpoint bernilai 60 dan lamanya waktu sampling 0.01 detik

Dan untuk mendapatkan nilai dari sensor dapat dilakukan dengan pembacaan ADC, dan untuk mensampling nilai ADC selama 0.01 detik dapat menggunakan fitur Timeryang sudah ada pada AVR.nilai_sensor=read_adc(0);

Untuk kontrol proporsionalerror=set_point-nilai_sensor;outP=Kp*error;  //nilai Kp ditentukan melalui tuning

Untuk kontrol integralerrorI=error+error_sblmI;outI=Ki*errorI*Tc;  //nilai Ki ditentukan melalui tuningerror_sblmI=errorI;/*untuk menggeser nilai error integral sekarang menjadi nilai error hasil penjumlahan-penjumlahan sebelumnya  untuk digunakan pada rekursi berikutnya*/

Untuk kontrol derivatiferrorD=error-error_sblmD;outD=(Kd*errorD)/Tc;   //nilai Kd ditentukan melalui tuningerror_sblmD=error;/*untuk menggeser nilai error derivatif sekarang menjadi sebelumnya untuk digunakan pada rekursi berikutnya*/

Sedangkan untuk kontrol PID merupakan gabungan dari ketiga kontrol diatas, dan menjadi:outPID=outP+outI+outD;

CATATAN: nilai Kp, Ki dan Kd didapat melalui tuning dengan menggunakan metode yang sudah ada atau melalui metode try and error (coba-coba).

Berikut adalah listing program lengkapnya:

float KP=5, TI=3, TD=1, error_sblmI=0, error_sblmD=0, outPID, set_point=60, Tc=0.01, error, errorI, errorD, outP, outI, outD;

#include <mega16.h>

#define ADC_VREF_TYPE 0×40// Read the AD conversion resultunsigned int read_adc(unsigned char adc_input){ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);// Delay needed for the stabilization of the ADC input voltagedelay_us(10);// Start the AD conversionADCSRA|=0×40;// Wait for the AD conversion to completewhile ((ADCSRA & 0×10)==0);ADCSRA|=0×10;return ADCW;}

// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void){  TCNT0=0x8A; //mengunakan timer 0 untuk menghasilkan interupsi setiap 0.01 detik kemudian baca ADCnilai_sensor = read_adc(0);                                  }

void kontrol_PID(){//kendali proporsionalerror=set_point-nilai_sensor;outP=Kp*error;  //nilai Kp ditentukan melalui tuning

//kendali integralerrorI=error+error_sblmI;outI=Ki*errorI*Tc;  //nilai Ki ditentukan melalui tuningerror_sblmI=errorI;

//kendali DeferensialerrorD=error-error_sblmD;outD=(Kd*errorD)/Tc;   //nilai Kd ditentukan melalui tuning

error_sblmD=error;

//kontrol PID, merupakan gabungan dari kontrol P, I dan DoutPID=outP+outI+outD;}

void main(void){// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: 11.719 kHz// Mode: Normal top=FFh// OC0 output: DisconnectedTCCR0=0×05;TCNT0=0x8A;OCR0=0×00;

// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0×01;

// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0×80;SFIOR=0×00;

// ADC initialization// ADC Clock frequency: 750.000 kHz// ADC Voltage Reference: AVCC pin// ADC Auto Trigger Source: NoneADMUX=ADC_VREF_TYPE & 0xff;ADCSRA=0×84;

// Global enable interrupts#asm(“sei”)

while (1)      {      kontrol_PID()      };}

http://elektro-kontrol.blogspot.com/2011/06/realisasi-kontrol-pid-proporsional.html

PENGENDALI PID DENGAN MATLAB (M-FILE)

Setelah anda memahami dasar teori dari Pengendali PID dimana anda bisa

membacanya dipostingan MENGENAL PENGENDALI PID (PID CONTROLLER),

maka kali ini kita akan langsung terjun ke suatu masalah system yang kita akan

kendalikan dengan pengendali Proportional (P), Integral (I), dan Derivative (D).

        Ingat disini kita menggunakan metode heuristik atau metode coba-coba dalam

mencari nilai kp, ki, dan kd dengan patokan mencari system yang kita inginkan dan

jangan lupa dan untuk pedoman dalam memberikan nilai kp, kd, dan ki kita dapat

melihatnya pada table karakteristik masing-masing pengendali yang ada pada

postingan sebelumnya.

Contoh :

Suatu system control memiliki transfer fungsi / fungsi alih sebagai berikut :

 

Sekarang buka software matlab anda File > New > M-File, kemudian tuliskan

program seperti berikut :

num=[1];

den=[1 15 30];

step(num,den);

title('Respon Awal Sistem');

Kemudian Save ingat menyimpan file pada mtlab tidak boleh menggunakan angka,

spasi hanya boleh huruf saja, kemudian tekan F5 (Run).

Hasilnya :

Gambar Respon Awal Sistem

Penyelesaian :

Setelah melihat hasil respon awal seperti diatas sekarang kita mencoba satu

menggunakan Pengendali P, PI, PD dan PID.

1. Kendali Proporsional

Dari persamaan fungsi alih yang diketahui : 

Maka kita bentuk menjadi close loop dengan penambahan Kp didapatlah :

Jadi Program matlabnya adalah:

t=0:0.01:2;

kp=300;

num=[kp];

den=[1 15 30+kp];

step(num,den,t);

title('Respon Sistem dengan Kendali P');

Run (F5) kemudian lihat Hasilnya:

Gambar Respon Sistem dengan Kendali P

2. Kendali Proporsional dan Derivative

Fungsi Alih Closed Loop didapatkan : 

Maka Program matlabnya adalah :

t=0:0.01:2;

kp=300;

kd=10;

num=[kd kp];

den=[1 15+kd 30+kp];

step(num,den,t);

title('Respon Sistem dengan Kendali PD');

Hasil Respon Sistemnya:

Gambar Respon Sistem dengan Kendali PD

3. Kendali Proporsional dan Integral

Fungsi Alih Closed Loop didapatkan : 

 

Maka Program matlabnya adalah :

t=0:0.01:2;

kp=40;

ki=100;

num=[kp ki];

den=[1 15 30+kp ki];

step(num,den,t);

title('Respon Sistem dengan Kendali PI');

Hasil Respon Sistemnya:

Gambar Respon Sistem dengan Kendali PI

4. Kendali Proporsional , Integral dan Derivative :

Fungsi Alih Closed Loop didapatkan : 

 

Maka Program matlabnya adalah :

t=0:0.01:2;

kp=350;

ki=300;

kd=50;

num=[kd kp ki];

den=[1 15+kd 30+kp ki];

step(num,den,t);

title('Respon Sistem dengan Kendali PID');

Hasil Respon Sistemnya:

Maka Program matlabnya adalah :

t=0:0.01:2;

kp=350;

ki=300;

kd=50;

num=[kd kp ki];

den=[1 15+kd 30+kp ki];

step(num,den,t);

title('Respon Sistem dengan Kendali PID');

Hasil Respon Sistemnya:

Gambar Respon Sistem dengan Kendali PID

http://www.meriwardanaku.com/2010/06/pengendali-pid-pid-controller-dengan_07.html

PENGENDALI PID DENGAN MATLAB (SIMULINK)

Contoh :

Suatu system control memiliki transfer fungsi / fungsi alih sebagai berikut :

Sekarang buka software matlab anda Buka Simulink dengan mengKlik tanda

Simulink atau ketikkan simulink di command windows lalu enter > Setelah

berhasil >File >New >Model.

Setelah itu rangkailah gambar seperti dibawah ini

Kemudian Save dan Start Simulation (Ctrl+T).Double klik scope pada gambar kemudian muncul gambar dan klik gambar teropong (Autoscale)

Hasilnya :

Gambar Respon Awal Sistem

Sekarang kita menggunakan pengendali P, PD, PI dan PID:

1. Kendali Proporsional

Rangkailah simulink seperti gambar berikut dimana sama seperti gambar

diatas hanya saja nilai gainnya=100(Kp) :

Hasil Respon Sistemnya :

Gambar Respon Sistem dengan Kendali P

2. Kendali Proporsional dan Derivative

Rangkailah gambar di simulink seperti gambar berikut :

Kp=300 dan Kd=10

Hasil Respon Sistemnya :

Gambar Respon Sistem dengan Kendali PD

3. Kendali Proporsional dan Integral

Rangkailah gambar di simulink seperti gambar berikut :Kp=40 dan Ki=100

Hasil Respon Sistemnya :

Gambar Respon Sistem dengan Kendali PI

4. Kendali Proporsional , Integral dan Derivative (PID) :

Rangkailah gambar di simulink seperti gambar berikut :kp=350,ki=300 dan kd=50;

Hasil Respon Sistemnya :

Dari percobaan di atas dapat ditarik kesimpulan bahwa masing – masing pengendali

memiliki karakteristik sebagai berikut :

1.   Kontroler Proporsional (P)

Pengaruh pada sistem :

•     Menambah atau mengurangi kestabilan

•     Dapat memperbaiki respon transien khususnya : rise time, settling time.

•     Mengurangi waktu naik, tidak menghilangkan Error steady state

Untuk menghilangkan Ess, dibutuhkan KP besar, yang akan membuat sistem lebih tidak

stabil.

2.   Kontroler Integral (I)

Pengaruh pada sistem :

•     Menghilangkan Error Steady State

•     Respon lebih lambat (dibanding P)

•     Dapat menimbulkan ketidakstabilan (karena menambah orde sistem)

3.   Kontroler Derivatif (D)

Pengaruh pada sistem :

•     Memberikan efek redaman pada sistem yang berosilasi sehingga bisa memperbesar

pemberian nilai Kp .

•     Memperbaiki respon transien, karena memberikan aksi saat ada perubahan error.

•     D hanya berubah saat ada perubahan error, sehingga saat ada error statis D tidak beraksi

Sehingga D tidak boleh digunakan sendiri.

http://www.meriwardanaku.com/2010/06/pengendali-pid-pid-controller-dengan.html

Mikrokontroler AVR ATmega8535Mikrokontroler yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan

ruang yang kecil, dapat digunakan untuk membuat suatu aplikasi. Pada mikrokontroler, program kontrol disimpan dalam ROM

yang ukurannya relatif lebih besar, sementara RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-

register yang digunakan pada mikrokontroler yang bersangkutan.

Salah satu keluarga dari mikokontroler 8 bit AVR adalah mikrokontroler ATmega8535. ATmega8535 inilah yang akan digunakan

dalam proyek akhir ini.

Gambar 1. Blok diagram mikrokontroler AVR

Blok Diagram AVR

Bagian-bagian blok diagram di atas dapat dijelaskan sebagai berikut:

1. ALU (Arithmatic Logic Unit) adalah processor yang bertugas mengeksekusi (eksekutor) kode program yang ditunjuk oleh

program counter.

2. Program Memori adalah memori Flash PEROM yang bertugas menyimpan program (software) yang kita buat dalam

bentuk kode-kode program (berisi alamat memori beserta kode program dalam ruangan memori alamat tersebut) yang

telah dicompile berupa bilangan heksa atau biner

3. Program Counter (PC) adalah komponen yang bertugas menunjukkan ke ALU alamat program memori yang harus

diterjemahkan kode programnya dan dieksekusi. Sifat dari PC adalah linier artinya menghitung naik satu bilangan yang

bergantung alamat awalnya. Misalnya jika isi PC 0x000 maka naik satu menjadi 0x001 yang berarti menyuruh ALU

mengeksekusi kode program yang berada pada alamat 0x001 program memori. Jika isi PC dari 0x002 dipaksa (instruksi

lompatan) 0x02A maka akan naik satu menjadi 0x02B dan melakukan tugasnya begitu seterusnya.

4. 32 General Purpose Working Register (GPR) adalah register file atau register kerja (R0-R31) yang mempunyai ruangan 8-

bit. Tugas GPR adalah tempat ALU melibatkan GPR. GPR terbagi dua yaitu kelompok atas (R16-R31) dan kelompok

bawah (R0-R15), di mana kelompok bawah tidak bisa digunakan untuk mengakses data secara langsung (imidiet) data

konstan seperti instruksi assembly LDI, dan hanya bisa digunakan antar-register, SRAM, atau register I/O (register port).

Sedangkan kelompok atas sama dengan kelompok bawah hanya mempunyai kelebihan dapat mengakses data secara

langsung (imidiet) data konstan. Kelebihan lain dari GPR adalah terdapat register pasangan yang digunakan untuk

pointer (penunjuk ke alamat tertentu XH:XL(R27:R:26), YH:YL(R29:R28), ZH:ZL(R31:R30), hanya register pointer Z yang

dapat digunakan untuk menunjuk ke alamat memori program.

5. Static Random Access Memory (SRAM) adalah RAM yang bertugas menyimpan data sementara sama seperti RAM pada

umumnya mempunyai alamat dan ruangan data. Alamat terakhir dari SRAM bergantung pada kapasitas SRAM, biasanya

sudah didefinisikan pada file header dengan nama RAMEND, jadi kita tidak perlu mengingat alamat SRAM yang terakhir,

pakai saja RAMEND. RAMEND biasanya digunakan untuk membuat stack (alamat terakhir dari SRAM). Dalam bahasa C,

pembuatan stack menjadi tanggungan compiler

6. Internal Pheripheral adalah peralatan/modul internal yang ada dalam mikrokontroler seperti saluran I/O, interupsi

eksternal, Timer/Counter, USART, EEPROM dan lain-lain. Tiap peralatan internal mempunyai register port (register I/O)

yang mengendalikan peralatan internal tersebut. Kata-kata port dan I/O di atas bukan hanya pin input atau output tetapi

semua peralatan internal yang ada di dalam chip, di sini disebut port atau I/O (dengan kata lain di luar CPU adalah I/O

walaupun kenyataanya berada dalam chip)

Fitur ATmega8535

Beberapa fitur yang disediakan ATmega8535

1. 1. Performa tinggi, termasuk mikrokontroler 8-bit AVR daya rendah.

2. Arsitektur RISC yang telah maju

o 130 instruksi kuat – Most Single Clock Cycle Execution

o 32 x 8 Register kerja multifungsi

o Operasi statis penuh

o Throughput hingga 16 MIPS pada 16 MHz

o Multiplier 2-cycle on-chip

3. Program nonvolatile dan data memori

o 8K bytes In-System Self-Programmable Flash dengan kemampuan 10.000 write/erase cycle

o 512 bytes EEPROM dengan kemampuan 10.000 wirte/erase cycle

o 512 bytes RAM internal

o Penguncian program untuk keamanan sistem

4. I/O dan paket

o 32 programmable I/O lines

o 40 pin PDIP, 44-lead TQFP, 44-lead PLCC, 44-pad QFN/MLF

5. Tingkat kecepatan

o 0 – 8 MHz untuk ATmega8535L

o 0 - 16 MHz untuk ATmega8535

6. Tegangan operasi

o 2,7 – 5,5 Volt untuk ATmega8535L

o 4,5 – 5,5 Volt untuk ATmega8535

7. Fitur spesial mikrokontrolernya

o Power-on reset dan deteksi programmable brown-out

o Osilator RC kalibrasi internal

o Interupt source external dan internal

o Enam mode Sleep: Idle, ADC noise reduction, Power-save, Power-down, Stand-by, dan Extended Stand-by.

8. Fitur Pheripheral

o Dua timer/counter 8-bit dengan Separate Prescalers dan Compare Modes

o Satu timer/counter 16-bit dengan Separate Prescalers, Compare Modes, dan Capture Modes.

o Counter real time dengan osilator terpisah

o Empat channel PMW

o 8 channel, 10-bit ADC

o Serial interface dwikabel byte-oriented

o Programmable serial USART

o Master/slave SPI serial interface

o On-chip analog comparator

Gambar 2. Konfigurasi Pin ATmega8535 PDIP

Gambar 3. Konfigurasi pin ATmega8535 TQFP/MLF

Gambar 4. Konfigurasi pin ATmega8535 PLCC

Konfigurasi Pin ATmega8535

Konfigurasi pin ATmega8535 adalah sebagai berikut:

1. Vcc : Tegangan supply

2. GND : Ground

3. Port A (PA7 .. PA0) : Port A digunakan sebagai input analog ke ADC, kemudian port ini juga berfungsi sebagai sebuah port

I/O bidireksional 8-bit, jika ADC tidak digunakan port pin berfungsi sebagai resistor pull-up internal (dipilih untuk setiap

bit). Buffer output port A memiliki karakter drive yang simetrik dengan high sink (serap) dan source (catu) capability.

Ketika pin PA0 ke PA7 digunakan sebagai input pulled-low eksternal, pin-pin tersebut akan dicatu jika pull-up resistor

diaktifkan.

4. Port B (PB7 .. PB0) : Port I/O 8-bit dengan pull-up internal tiap pin. Buffer portB mempunyai kapasitas menyerap (sink)

dan mencatu (source). Khusus PB6 dapat digunakan sebagai input kristal (inverting oscillator amplifier) dan input ke

rangkaian clock internal, bergantung pada pengaturan fuse bit (ada dalam software programmer/downloader) yang

digunakan untuk memilih sumber clock. Khusus PB7 dapat digunakan output kristal (output inverting oscillator amplifier)

bergantung pada pengaturan fuse bit yang digunakan untuk memilih sumber clock. Jika sumber clock yang dipilih dari

oscillator internal, PB7 dan PB6 dapat digunakan sebagai I/O atau jika menggunakan asynchronous timer/counter2 maka

PB6 dan PB7(TOSC2 dan TOSC1) digunakan untuk saluran input counter.

5. Port C (PC5 .. PC0) : Port I/O 7-bit ([PC6], PC5…PC0) dengan resistor pullup internal tiap pin. Buffer portC mempunyai

kapasitas menyerap (sink) dan mencatu (source).

6. RESET/PC6 : Jika fuse bit RSTDISBL di "programmed", PC6 digunakan sebagai pin I/O. Jika fuse bit RSTDISBL di

"unprogrammed", PC6 digunakan sebagai pin RESET (active low).

7. Port D (PD7 .. PD0) : Port I/O 8-bit dengan resistor pull-up internal tiap pin. Buffer portC mempunyai kapasitas menyerap

(sink) dan mencatu (source).

8. AVcc adalah pin tegangan catu untuk A/D converter, PC3..PC0, dan ADC(7..6). AVcc harus dihubungkan ke Vcc, walaupun

ADC tidak digunakan. Jika ADC digunakan, maka AVcc harus dihubungkan ke Vcc melalui "low pass filter". Catatan: PC5,

PC4 digunakan catu tegangan Vcc digital.

9. AREF : untuk pin tegangan referensi analog untuk ADC

10. ADC7..6 (TQPF, QFN/MLF): Hanya ada pada kemasan TQPF dan QFN/MLF, ADC7..6 digunakan untuk pin input ADC.

http://digilib.ittelkom.ac.id/index.php?option=com_content&view=article&id=765:mikrokontroler-avr-atmega8535&catid=16:mikroprocessorkontroller&Itemid=14