BAB II
LANDASAN TEORI
Mikrokontroler
2.1
Mikroprosesor adalah sebuah IC (Integrated Circuit) yang digunakan
sebagai otak/pengolah utama dalam sebuah sistem komputer yang merupakan
hasil dari pertumbuhan teknologi semikonduktor. Pertama kali diperkenalkan pada tahun 1971 oleh Intel Corporation, yaitu Intel 4004 yang mempunyai
arsitektur 4-bit. Dengan penambahan beberapa periferal (memori, peranti I/O,
dan sebagainya), Intel 4004 dapat diubah menjadi sebuah sistem komputer kecil.
Setelah itu teknologi mikroprosessor berkembang sangat cepat dengan diperkenalkannya mikroprosessor baru oleh intel, yaitu 8080 (berarsitektur 8-bit), 8085, dan kemudian 8086 (berarsitektur 16-bit). Perusahaan semikonduktor lain juga mengembangkan mikroprosesor yang lain, antara lain Motorola dengan M6800 dan Zilog dengan Z80. Dalam sebuah mikrokomputer (PC= Personal Computer merupakan salah satu jenis mikrokomputer), sebuah mikroprosessor merupakan CPU (Central Processing Unit) sistem. Jadi pada PC, mikroprosesor digunakan sebagai pengolah utama pada semua kerja komputer, yaitu untuk menjalankan perangkat lunak, memecahkan persoalan-persoalan aritmatika, mengendaliakan proses Input/ Output , dan sebagainya. Secara umum, mikroprosesor dengan piranti pendukungnya dikatakan membentuk suatu mikrokomputer. Jika CPU dan peralatan pendukungnya berada pada IC yang sama, serta digunakan untuk penerapan sistem kendali maka IC tersebut disebut sebagai mikrokontroler. Contoh dari mikrokontroler adalah 8051, Motorola 68HC11, Atmel AVR, dan sebagainya. Dengan
berkembangnya
mikroprosesor/
mikrokontroler,
teknologi
elektronika mengalami banyak revolusi. Mikroprosesor dan mikrokontroler mulai banyak digunakan dalam berbagai aplikasi elektronika, antara lain di bidang otomasi industri, otomotif, sensor dan pengukuran, telekomunikasi, penerbangan, dan sebagainya. Keuntungan dari penggunaan mikroprosesor atau mikrokontroler
BAB II LANDASAN TEORI
II-2
adalah sistem yang diciptakan menjadi sangat fleksibel karena modifikasi dan
pengembangan cukup dilakukan pada perangkat lunaknya.
Dengan penambahan beberapa piranti pendukung (memori, piranti Input/Output, dan sebagainya), sebuah mikroprosesor dapat diubah menjadi sebuah mikrokomputer. Berikut adalah uraian dari masing-masing bagian. Mikroprosesor bertugas sebagai CPU ( Central Processing Unit ) atau unit
pengolah pusat keseluruhan sistem, yaitu menjalankan perangkat lunak
yang disimpan pada memori program, mengatur jalur pengiriman data
dari atau ke piranti-piranti (memori, I/O, dan sebagainya), mengolah
data-data yang ada pada perangkat lunak, dan sebagainya. ROM (Read Only Memory ) berguna untuk menyimpan perangkat lunak yang akan dijalankan oleh mikrokomputer. RAM ( Random Access Memory ) berguna untuk menyimpan data sementara yang mungkin diperlukan oleh mikrokomputer sewaktu menjalankan perangkat lunak, misalnya menyimpan nilai-nilai pada variabel. Piranti I/O untuk menghubungkan sistem dengan dunia luar (piranti di luar sistem mikrokomputer). Jadi, tugasnya adalah untuk mengirimkan dan menerima data dari atau ke luar sistem. Contohnya pada PC, salah satu piranti I/O bertugas menerima masukan data dari keyboard, serta piranti I/O yang lain bertugas mengirimkan data ke printer untuk dicetak dan sebagainya. Clock atau denyut berguna untuk menyinkronkan kerja piranti-piranti dalam sistem elektronik. Pembangkitnya bisa berupa rangkaian RC, resonator keramik, osilator kristal, IC pewaktu 555 atau VCO (osilator terkendali tegangan). Mikroprosesor tidak dapat berdiri sendiri karena kerjanya sangatlah
bergantung pada piranti-piranti pendukung lainnya. Akibat ketergantungannya yang besar pada piranti-piranti pendukung tersebut maka mikroprosesor menjadi kurang efisien lagi. Perusahaan-perusahaan semikonduktor lalu menciptakan IC mikroprosesor jenis lain yang mana di dalam IC mikroprosesor tersebut sudah terdapat piranti-piranti pendukungnya yang kemudian dinamai mikrkontroler.
II-3
BAB II LANDASAN TEORI
Mikrokontroler juga sering juga disebut sebagai “ mikrokomputer dalam sebuah
chip” ( single chip mikrocomputer ). Dengan kata lain, mikrokontroler adalah
solusi satu chip yang secara drastis mengurangi jumlah komponen dan biaya desain. Meski kurang efisien dibanding mikrokontroler, untuk penggunaan tertentu mikroprosesor tetap mempunyai kelebihan-kelebihan , antara lain lebih
cepat dan lebih upgradable (karena semua piranti tambahan diletakkan di luar sehingga bisa diganti).
Tabel 2.1 Jenis Mikroprosesor dan mikrokontroler
JENIS
Mikroprosesor
VENDOR
KELUARGA
Intel
80x86
VARIANS 8086, 8088, 802866, 80386, Pentium
Mikroprosesor
Motorola
6800
6800
Mikroprosesor
Zilog
Z80
Z80
Mikrokontroler
Intel
MCS-51
8051, 8052, 8031, 8032, 8751, 8752
Mikrokontroler
Intel
MCS-96
8096
Mikrokontroler
Motorola
68HCxx
68HC11, 68HC25
Mikrokontroler
Atmel
MCS-51
89C51, 89C52, 89C55, 89S52
Mikrokontroler
Siemens
MCS-51
80C515
Mikrokontroler
Atmel
AVR
Attiny 2313, ATmega 8515, 8535, 16, 32
2.1.1
Karakteristik Mikrokontroler Terdapat beberapa karakter mikrokontroler yang diantaranya:
Teknik
fabrikasi:
CMOS
–
Complementary
Metal
Oxide
Semiconductor, ini adalah teknik yang biasa dilakukan untuk memproduksi hampir semua mikrokontroler terbaru. Sifat CMOS memerlukan daya yang kecil dibanding mikrokontroler yang dibuat dengan teknik sebelumnya memungkinkan untuk dioperasikan menggunakan baterai.
Arsitektur a. Von-Neuman: Mikrokontroler yang didesain berdasarkan arsitektur ini memiliki sebuah data bus yang dipergunakan untuk fetch
II-4
BAB II LANDASAN TEORI
instruksi dan data. Program (instruksi) dan data disimpan pada
memori utama secara bersama-sama. Ketika kontroler mengalamati
suatu alamat di memori utama, hal pertama yang dilakukan adalah instruksi tersebut sehingga memperlambat operasi mikrokontroler.
b. Harvard: Arsitektur ini memiliki data bus dan instruksi yang
terpisah sehingga memungkinkan eksekusi dilakukan secara
bersamaan. Secara teoritis, hal ini memungkinkan eksekusi yang
lebih cepat, tetapi di lain pihak memerlukan desain perangkat keras
yang lebih kompleks
Instruksi a. CISC: Saat ini hampir semua mikrikontroleradalah mikrokontroler
CISC (Complete Instruction Set Computer), biasanya memiliki lebih dari 100 instruksi. Keunggulan dari CISC ini adalah adanya instruksi
yang
memungkinkaan
bekerja
seperti
programmer
sebuah
untuk
makro
sehingga
menggunakan
sebuah
instrukdi menggantikan beberapa instruksi sederhana lainnya. b. RISC:
Daat
ini
industri
cenderung
menggunakan
desain
mikroprosessor RISC (Reduced Instruction Set Computer). Dengan menggunakan jumlah instruksi yang lebih sedikit, memungkinkan lahan
pada
chip
(silicon
real-estate)
digunakan
untuk
meningkatkan kemampuan chip. Keuntungan dari RISC adalah kesederhanaan desain, chip yang lebih kecil, jumlah pin sedikit dan sangat sedikit mengkonsumsi daya. Sebagai contoh, beberapa tipe AVR hanya memiliki 130 instruksi . Arsitektur Harvard memungkinkan akses program dan data yang bersamaan. Instruction Pipelining menungkatkan kecepatan eksekusi. Orthogonal instruction set untuk kemudahan dalam programming memungkinkan tiap instruksi untuk dioperasikan pada register atau digunakan pada beberapa mode pengalamatan, instruksi-instruksi tidak mempunyai kombinasi tertentudan juga tanpa pengecualian.
2.1.2
Gambaran Umum Mikrokontroler AVR ATmega 8535/16/32
BAB II LANDASAN TEORI
II-5
AVR merupakan mikrokontroler dengan arsitektur RISC (Reduced
Instruction Set Computer) dengan lebar bus data 8 bit. Frekuensi kerja
mikrokontroler AVR ini pada dasarnya sama dengan frekuensi osilator sehingga hal tersebut menyebabkan kecepatan kerja AVR untuk frekuensi osilator yang sama akan dua belas kali lebih cepat dibandingkan dengan mikrokontroler
keluarga AT89S51/52. Dengan instruksi yang sangat fariatif (mirip dengan sistem CISC-Complex Instruction Set Computer) serta jumlah register serba guna (General Purpose Register) sebanyak 32 buah yang semuanya terhubung secara langsung ke ALU
(Arithmatic Logic Unit), kecepatan operasi mikrokontroler AVR ini dapat
mencapai 16 MIPS (enam belas juta instruksi per detik), sebuah kecepatan yang sangat tinggi untuk ukuran mikrokontroler 8-bit yang ada di pasaran sampai saat ini. Untuk memenuhi kebutuhan dan aplikasi industri yang sangat beragam, mikrokontroler keluarga AVR ini muncul dipasaran dengan tiga seri utama, yaitu TinyAVR, AVR, classicAVR, dan megaAVR . Keseluruhan seri AVR ini pada dasarnya memiliki organisasi memori dan set instruksi yang sama. Perbedaan yang ada pada kenyataannya hanya merefleksikan tambahan-tambahan fitur yang ditawarkan saja(contoh dengan adanya tambahan ADC internal pada seri AVR tertentu, jumlah port I/O serta memori yang berbeda). Diantara ketiganya, mega AVR umumnya memiliki fitur yang paling lengkap, disusul oleh AVR, dan terakhir TinyAVR.
A. Fitur ATmega 8535 Performa tinggi, Low-Power 8-bit Miktokontroler Mikrokontroler dengan arsitektur RISC 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 Throughout at 16 MHz. e. On-chip 2-cycle Multiplier.
BAB II LANDASAN TEORI
II-6
Nonvolatile Program dan memori data. a. 8K Bytes of In-System Self-Programmable Flash, Endurance: 10,000 Write/Erase Cycles.
b. Optional Boot Code Section with Independent Lock Bits In-
System Programming by On-chip Boot Program True ReadWhile-Write Operation.
c. 512 Bytes EEPROM, Endurance: 100,000 Write/Erase
Cycles
d. 512 Bytes EEPROM.
e. Programming Lock for Software Security. Fitur pada periferal a. Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes. b. One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture mode. c. Real Time Counter with Separate Oscillator. d. Four PWM Channels. e. 8-channel, 10-bit ADC, 8 Single-ended Channels, 7 Differential Channels for TQFP Package Only. 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x for TQFP Packages Only. f. Byte-oriented Two-wire Serial Interface. g. Programmable Serial USART. h. Master/Slave SPI Serial Interface. i. Programmable Watchdog Timer with Separate On-chip Oscillator. j. On-chip Analog Comparator. Fitur Spesial Mikrokontroler a. Power-on Reset and Programmable Brown-out Detection. b. Internal Calibrated RC Oscillator. c. External and Internal Interrupt Sources.
II-7
BAB II LANDASAN TEORI
d. Six Sleep Modes: Idle, ADC Noise Reduction, Power-save,
I/O dan Packages
a. 32 Programmable I/O Lines
b. 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad QFN/MLF
Operasi Tegangan
a. 2.7 - 5.5V for ATmega8535L
Power-down, Standby and Extended Standby.
b. ATmega8535 Kecepatan a. 0 - 8 MHz for ATmega8535L b. 0 - 16 MHz for ATmega8535
B. Fitur ATmega 16 High-performance,
Low-power
Atmel®
AVR®
8-bit
Microcontroller Advanced RISC Architecture a. 131 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. Up to 16 MIPS Throughput at 16 MHz High Endurance Non-volatile Memory segments a. 16 Kbytes of In-System Self-programmable Flash program memory b. 512 Bytes EEPROM c. 1 Kbyte Internal SRAM d. Write/Erase Cycles: 10,000 Flash/100,000 EEPROM e. Data retention: 20 years at 85°C/100 years at 25°C f. Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program
BAB II LANDASAN TEORI
II-8
True Read-While-Write Operation
g. Programming Lock for Software Security JTAG (IEEE std. 1149.1 Compliant) Interface
a. True Read-While-Write Operation
b. Extensive On-chip Debug Support c. Programming of Flash, EEPROM, Fuses, and Lock Bits
through the JTAG Interface
Peripheral Features
a. Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
b. One 16-bit Timer/Counter with Separate Prescaler, Compare
Mode, and Capture mode c. Real Time Counter with Separate Oscillator d. Four PWM Channels e. 8-channel, 10-bit ADC 8 Single-ended Channels 7 Differential Channels in TQFP Package Only 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x f. Byte-oriented Two-wire Serial Interface g. Programmable Serial USART h. Master/Slave SPI Serial Interface i. Programmable Watchdog Timer with Separate On-chip Oscillator j. On-chip Analog Comparator
Special Microcontroller Features a. Power-on Reset and Programmable Brown-out Detection b. Internal Calibrated RC Oscillator c. External and Internal Interrupt Sources d. Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby
I/O and Packages
II-9
BAB II LANDASAN TEORI
a. 32 Programmable I/O Lines
b. 40-pin PDIP, 44-lead TQFP, and 44-pad QFN/MLF
Operating Voltages
a. 2.7V - 5.5V for ATmega16L
b. 4.5V - 5.5V for ATmega16
Speed Grades a. 0 - 8 MHz for ATmega16L
b. 0 - 16 MHz for ATmega16
Power Consumption @ 1 MHz, 3V, and 25°C for ATmega16L a. Active: 1.1 mA
b. Idle Mode: 0.35 mA
c. Power-down Mode: < 1 μA
C. Fitur ATmega32 High-performance,
Low-power
Atmel®AVR®
8-bit
Microcontroller Advanced RISC Architecture a. 131 Powerful Instructions – Most Single-clock Cycle Execution b. 32 × 8 General Purpose Working Registers c. Fully Static Operation d. Up to 16 MIPS Throughput at 16MHz e. On-chip 2-cycle Multiplier
High Endurance Non-volatile Memory segments a. 32Kbytes of In-System Self-programmable Flash program memory b. 1024Bytes EEPROM c. 2Kbytes Internal SRAM d. Write/Erase Cycles: 10,000 Flash/100,000 EEPROM e. Data retention: 20 years at 85°C/100 years at 25°C(1) f. Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program
BAB II LANDASAN TEORI
II-10
True Read-While-Write Operation
g. Programming Lock for Software Security JTAG (IEEE std. 1149.1 Compliant) Interface
a. Boundary-scan Capabilities According to the JTAG Standard
b. Extensive On-chip Debug Support c. Programming of Flash, EEPROM, Fuses, and Lock Bits
through the JTAG Interface
Peripheral Features a. Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
b. One 16-bit Timer/Counter with Separate Prescaler, Compare
Mode, and Capture mode c. Real Time Counter with Separate Oscillator d. Four PWM Channels e. 8-channel, 10-bit ADC f. Byte-oriented Two-wire Serial Interface g. Programmable Serial USART h. Master/Slave SPI Serial Interface i. Programmable Watchdog Timer with Separate On-chip Oscillator j. On-chip Analog Comparator
Special Microcontroller Features a. Power-on Reset and Programmable Brown-out Detection b. Internal Calibrated RC Oscillator c. External and Internal Interrupt Sources d. Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby and Extended Standby
I/O and Packages a. 32 Programmable I/O Lines b. 40-pin PDIP, 44-lead TQFP, and 44-pad QFN/MLF
Operating Voltages a. 2.7V - 5.5V for ATmega32L
BAB II LANDASAN TEORI
b. 4.5V - 5.5V for ATmega32
Speed Grades a. 0 - 8MHz for ATmega32L
b. 0 - 16MHz for ATmega32
Power Consumption at 1MHz, 3V, 25°C a. Active: 1.1mA
b. Idle Mode: 0.35mA
c. Power-down Mode: < 1μA
II-11
II-12
BAB II LANDASAN TEORI
Gambar 2.1 Blok Diagram ATmega8535/16/32
IC ATmega 8535, 16, dan 32 memiliki banyak kesamaan, oleh karena itu ketiga IC ini dapat dipasang pada satu sistem minumum, tetapi ketiga IC ini tetap memiliki tiga perbedaan yang tidak bisa diabaikan seperti ditunjukkan pada tabel 2.x dibawah ini:
II-13
BAB II LANDASAN TEORI
Tabel 2.2 Perbandingan parameter antara ATmega8535, ATmega16, dan ATmea32
Parameter
ATmega16
ATmega32
ATmega8535
Flash (Kbytes): Pin Count: Max. Operating Frequency: CPU: Max I/O Pins: Ext Interrupts: SPI: TWI (I2C): UART: CAN: ADC channels: ADC Resolution (bits): ADC Speed (ksps): Analog Comparators: DAC Channels: DAC Resolution (bits): SRAM (Kbytes): EEPROM (Bytes): Self Program Memory: DRAM Memory: NAND Interface: Temp. Range (deg C): I/O Supply Class: Operating Voltage (Vcc): Timers: PWM Channels: 32kHz RTC: Calibrated RC Oscillator:
16 Kbytes 44
32 Kbytes 44
8 Kbytes 44
16 MHz
16 MHz
16 MHz
8-bit AVR 32 3 1 1 1 0 8
8-bit AVR 32 3 1 1 1 0 8
8-bit AVR 32 3 1 1 1 0 8
10
10
10
15
15
15
1
1
1
0
0
0
0
0
0
1 512
2 1024
0.5 512
YES
YES
YES
No No
No No
No No
-40 to 85
-40 to 85
-40 to 85
2.7 to 5.5
2.7 to 5.5
2.7 to 5.5
2.7 to 5.5
2.7 to 5.5
2.7 to 5.5
3 4 Yes
3 4 Yes
3 4 Yes
Yes
Yes
Yes
Tabel 2.3 Perbandingan alokasi pin ATmega 8535/16/32
II-14
BAB II LANDASAN TEORI
Port
Port A
Port B
Port C
Port D
ATmega16
ATmega32
ATmega8535
PA0 (ADC0)
PA0 (ADC0)
PA0 (ADC0)
PA1 (ADC1)
PA1 (ADC1)
PA1 (ADC1)
PA2 (ADC2)
PA2 (ADC2)
PA2 (ADC2)
PA3 (ADC3)
PA3 (ADC3)
PA3 (ADC3)
PA4 (ADC4)
PA4 (ADC4)
PA4 (ADC4)
PA5 (ADC5)
PA5 (ADC5)
PA5 (ADC5)
PA6 (ADC6)
PA6 (ADC6)
PA6 (ADC6)
PA7 (ADC7)
PA7 (ADC7)
PA7 (ADC7)
PB0 (XCK/T0)
PB0 (XCK/T0)
PB0 (XCK/T0)
PB1 (T1)
PB1 (T1)
PB1 (T1)
PB2
PB2
PB2 (INT2/AIN0)
(INT2/AIN0)
(INT2/AIN0)
PB3 (OC0/AIN1)
PB3 (OC0/AIN1)
PB3 (OC0/AIN1)
PB4 (SS)
PB4 (SS)
PB4 (SS)
PB5 (MOSI)
PB5 (MOSI)
PB5 (MOSI)
PB6 (MISO)
PB6 (MISO)
PB6 (MISO)
PB7 (SCK)
PB7 (SCK)
PB7 (SCK)
PC0 ( SCL)
PC0 ( SCL)
PC0 ( SCL)
PC1 (SDA)
PC1 (SDA)
PC1 (SDA)
PC2 (TCK )
PC2 (TCK )
PC2
PC3 (TMS)
PC3 (TMS)
PC3
PC4 (TDO)
PC4 (TDO)
PC4
PC5 (TDI)
PC5 (TDI)
PC5
PC6 (TOSC1 )
PC6 (TOSC1 )
PC6 (TOSC1 )
PC7 (TOSC2)
PC7 (TOSC2)
PC7 (TOSC2)
PD0 (RXD)
PD0 (RXD)
PD0 (RXD)
PD1 (TXD)
PD1 (TXD)
PD1 (TXD)
II-15
BAB II LANDASAN TEORI
PD2 (INT0)
PD2 (INT0)
PD2 (INT0)
PD3 (INT1)
PD3 (INT1)
PD3 (INT1)
PD4 (OCI1B)
PD4 (OCI1B)
PD4 (OCI1B)
PD5 (OCI1A)
PD5 (OCI1A)
PD5 (OCI1A)
PD6 (ICP1)
PD6 (ICP1)
PD6 (ICP1)
PD7 (OC2)
PD7 (OC2)
PD7 (OC2)
Tabel 2.4 Konfigurasi Pin ATmega16/32
BAB II LANDASAN TEORI
II-16
VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
GND merupakan pin ground
Port A (PA0...PA7) Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus diatur terlebih dahulu sebelum port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, semua pin 9 port A juga digunakan untuk masukan sinyal analog bagi A/D converter.
Port B (PB0...PB7) Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus diatur terlebih dahulu sebelum port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1
II-17
BAB II LANDASAN TEORI
jika sebagai output. Pin-pin port B juga memiliki untuk fungsi-fungsi
alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
Tabel 2.5 Fungsi khusus Port B
Port C (PC0...PC7) Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus diatur terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai osilator untuk timer/counter 2.
Port D (PD0...PD7) Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus diatur terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin 11 memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1
II-18
BAB II LANDASAN TEORI
jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi
fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
Tabel 2.6 Konfigurasi Port D ATMega32L
RESET merupakan pin yang digunakan untuk me-reset mikrokontroler
XTAL1 dan XTAL2 merupakan pin masukan clock eksternal
AVCC merupakan pin masukan untuk tegangan ADC
AREF merupakan pin masukan tegangan referensi
2.1.3
Inti CPU AVR ATmega8535/16/32
BAB II LANDASAN TEORI
II-19
Gambar 2.2 Inti CPU AVR ATmega8535/16/32
Inti CPU diperlihatkan pada Gambar 2.4 yang menunjukkan kedudukan masing-masing modul tersebut tergabung menjadi satu dengan sebuah jalur data sebesar 8-bit sehingga pada chip mikrokontroler dengan fitur yang lebih banyak tidak perlu mengubah jalur data, tetapi dapat diatasi dengan mengubah fungsi modul status dan control seiring dengan bertambahnya modul. 2.1.4
PETA MEMORI ATMEGA 8535/16/32
A. Register kegunaan umum R0-R31 Untuk keperluan umum, AVR memiliki 32 register bantu (R0R31), masing-masing sebesar 8-bit yang menempati alamat memory data $0000 - $001F. Semua register bantu ini dapat digunakan langsung karena terhubung langsung dengan ALU, tetapi juga memiliki fungsi yang berbeda-beda. Pasangan R1 dan R0 berfungsi untuk menampung hasil
II-20
BAB II LANDASAN TEORI
perhitungan aritmatika R16-R31 dapat digunakan untuk menampung data
secara “immediate”.
Memori yang ada pada mikrokontroler ATmega32 ada beberap
macam , misalnya General Working Register (register kegunaan umum) sebanyak 32 byte, seperti yang ditunjukkan pada gambar 2.8 :
Gambar 2.3 Register kegunaan umum
B. Stack Point Register Sebagian besar stack digunakan untuk menyimpan data temporer, untuk menyimpan varibel lokal dan untuk menyimpan alamat memori setelah terjadi interupsi dan subroutine. Alamat SP harus dimulai diatas $60. Alamatnya akan dikurangi satu ketika ada data masuk ke dalam stack, didorong dengan intstruksi PUSH dan dikurangi sebanyak 2 ketika dimasukkan alamat untuk kembali saat menerima instruksi interupsi atau operasi memanggil subrutin. SP akan dinaikkan satu ketika data diambil dari stack dengan instruksi POP, dan akan dinaikkan 2 ketika data diambil dari stack, instruksi RET dari sebuah subrutin, atau RETI dari subroutin interupsi.
BAB II LANDASAN TEORI
II-21
C. Register I/O Register I/O, yaitu register yang berungsi mengatur fungsi modul-
modul pada mikrokontroler, menempati 64 alamat mulai dari $0020
sampai dengan $005F. Dapat dibayangkan register I/O ini sebagai SFR (Special Function Register) yang terdapat pada AT89S52/51. Alamat berikutnya, yaitu $0060 sampai $085F sebesar 2 Kilobyte berfungsi sebagai SRAM internal. Alamat $085F adalah akhir dari alamat SRAM internal atau disebut RAMEND. Kelompok register ini berfungsi sebagai pengatur kerja fitur-fitur dan peripheral yang terdapat pada AVR, misalnya untuk mengatur kerja interupsi maka digunakan register GICR pada alamat $3B, PORTA sampai dengan PORTD juga terdapat pada register I/O.
D. FLASH PEROM Memori ini mempunyai kegunaan menyimpan kode-kode instruksi sehingga merupakan memori dengan kapasitas terbesar diantara memori yang ada di dalam sebuah chip mikrokontroler. Memori program yang terletak pada memori jenis ini tersusun dalam 1 word atau 2 byte dengan lebar kode instruksi sebesar 16-bit atau 32-bit. ATmega32 memiliki 32 Kilobyte x 16 bit dengan alamat dari $000 sampai dengan $3FFF. Mode pengalamatan memori ini ditangani oleh program counter (PC) sebesar 12 bit. Untuk keperluan keamanan perangkat lunak, lahan memori Flash PEROM dibagi menjadi 2 bagian, bagian Boot Program dan bagian Application Program. Memori ini mampu bertahan hingga 10.000 kali hapus/tulis programnya. Program Counter ATmega 32 mempunyai lebar 14 bit sehingga dapat mengalamati 16K lokasi memori program . Tabel konstanta dapat dialokasikan ke setiap alamat dalam memori program tidak ada ketentuan tertentu.
II-22
BAB II LANDASAN TEORI
Gambar 2.4 Flash PEROM ATmega32
E. EEPROM ATmega32 berisi 1024 byte memori data EEPROM atau memori yang dapat ditulis dan dihapus secara elektrik. Memori ini diorganisasikan agar dapat diakses baca dan ditulis dalam satu byte. EEPROM mempunyai ketahanan, sedikitnya 100.000 kali hapus/tulis.
2.2
PUSH BUTTON Switch Push Button adalah saklar tekan yang berfungsi untuk
menghubungkan atau memisahkan bagian – bagian dari suatu instalasi listrik satu sama lain (suatu sistem saklar tekan push button terdiri dari saklar tekan start. Stop reset dan saklar tekan untuk emergency. Push button memiliki kontak NC (normally close) dan NO (normally open). Prinsip kerja Push Button adalah apabila dalam keadaan normal tidak ditekan maka kontak tidak berubah, apabila ditekan maka kontak NC akan berfungsi sebagai stop (memberhentikan) dan kontak NO akan berfungsi sebagai start (menjalankan) biasanya digunakan pada sistem pengontrolan motor – motor induksi untuk menjalankan mematikan motor pada industri – industri. Push button dibedakan menjadi beberapa tipe, yaitu: a. Tipe normally open (NO)
II-23
BAB II LANDASAN TEORI
Tombol ini disebut juga dengan tombol start karena kontak akan
menutup bila ditekan dan kembali terbuka bila dilepaskan. Bila
tombol ditekan maka kontak bergerak akan menyentuh kontak tetap sehingga arus listrik akan mengalir.
2.5 Tipe push button normally open
b. Tipe normally close (NC)
Tombol ini disebut juga dengan tombol stop karena kontak akan membuka bila ditekan dan kembali tertutup bila dilepaskan. Kontak bergerak akan lepas dari kontak tetap sehingga arus listrik akan terputus.
Gambar 2.6 Tipe push button normally close
2.3
ADC ATmega8535/16/32 memiliki fitur sebuah ADC Succesive Approximation
10 bit. ADC terhubung dengan sebuah analog multiplexer 8-chanel yang dapat dihubungkan dengan 8 input tegangan single-ended pada pin Port A. Input tegangan single-ended mengacu pada 0 V (GND). ADC terdiri dari sebuah rangkaian Sample and Hold yang memastikan tegangan input pada ADC ditahan pada level konstan selama konversi. Diagram blok dari ADC ditunjukkan pada gambar 2.7. ADC memiliki pin tegangan supply analog terpisah yaitu AVCC. AVCC tidak boleh berbeda lebih dari ± 0,3 V dari VCC.
II-24
BAB II LANDASAN TEORI
Tegangan referensi internal dengan nominal 2,56 V atau AVCC
disediakan dalam chip. Referensi tegangan dapat dihubungkan secara eksternal
pada pin AREF oleh sebuah kapasitor untuk pencegah noise yang lebih baik.
Gambar 2.7
Diagram Blok Analog-to-Digital Converter
ADC mengkonversi tegangan input analog ke sebuah nilai digital 10 bit melalui Successive Approximation. Nilai minimum mewakili GND dan nilai maksimum mewakili tegangan pada pin AREF dikurangi 1 LSB. Sebagai pilihan, tegangan referensi AVCC atau 2,56 V internal dapat dihubungkan ke AREF dengan menuliskan pada bit REFSn dalam register ADMUX. Tegangan referensi
BAB II LANDASAN TEORI
II-25
internal harus di-decouple oleh sebuah kapasitor eksternal pada pin AREF untuk
meningkatkan kekebalan terhadap noise.
Channel input analog dan differential gain dipilih dengan menuliskan pada bit MUX dalam ADMUX. Setiap pin input ADC dapat dipilih sebagai single-ended pada ADC. Pemilihan pin input ADC dapat dipilih sebagai input
positif dan negative pada differential gain amplifier. ADC diaktifkan dengan menge-set bit ADC enable (ADEN) dalam ADCSRA. Pilihan referensi tegangan dan channel input tidak akan menimbulkan efek sampai ADEN di-set. ADC tidak mengkonsumsi daya ketika ADEN di-clear, sehingga direkomendasikan untuk memastikan ADC sebelum memasuki mode
power saving sleep. ADC membangkitkan hasil 10-bit yang ditampilkan pada ADC Data Register, ADCH dan ADCL. Secara default, hasil ditampilkan teratur kanan, akan tetapi secara pilihan dapat ditampilkan teratur kiri dengan menge-set bit ADLAR dalam ADMUX. Jika hasil teratur kiri dan tidak lebih kepresisian 8-bit diperlukan, cukup membaca ADCH. Jika tidak, ADCL harus dibaca terlebih dahulu kemudian ADCH untuk memastikan isi register data berasal dari konversi yang sama. Sekali ADCL dibaca, akses ADC ke register data ditutup. Konversi tunggal dimulai dengan menuliskan logic 1 pada bit Start Conversion, ADSC. Bit ini tetap tinggi selama konversi sedang berjalan dan diclear oleh hardware ketika konversi selesai. Jika channel data berbeda dipilih ketika konversi sedang berjalan, ADC akan menyelesaikan konversi yang sedang berjalan sebelum mengganti channel. Sebagai alternatif, sebuah konversi dapat dipicu otomatis oleh berbagai seumber. Pemicu otomatis dihasilkan dengan menge-set bit ADC auto trigger enable, ADATE dalam ADCSRA. Sumber pemicu dipilih dengan mengatur bir ADC trigger select, ADTS dalam SFIOR. Pada gambar 2.15. ditunjukkan diagram blok logika ADC auto trigger.
II-26
BAB II LANDASAN TEORI
Gambar 2.8 Logika ADC Auto Trigger
Gambar 2.9 Prescaler ADC
Secara default, rangkaian Successive Aproximation memerlukan frekuensi clock input antara 50 KHz sampai 200 KHz untuk mendapatkan resolusi maksimum. Jika hanya diperlukan resolusi yang lebih rendah dari 10-bit, frekuensi input clock ADC dapat dinaikkan sampai diatas 200 KHz. Gambar 2.16. menunjukkan diagram blok ADC prescaler. Mode ADC memiliki sebuah prescaler yang menghasilkan clock ADC dari frekuensi CPU diatas 100 KHz. Prescaling di-set oleh bit ADPS dalam ADCSRA. Prescaler mulai menghitung dari saat ADC dinyalakan dengan mengeset bit ADEN dalam ADCSRA. Prescaler tetap berjalan selama bit ADEN set, dan tetap reset ketika ADEN clear.
II-27
BAB II LANDASAN TEORI
Setelah konversi selesai (ADIF tinggi), hasil konversi disimpan dalam
register hasil ADC (ADCL, ADCH).
Untuk konversi single-ended, hasilnya didapat dengan persamaan dibawah ini:
ADC
VIN 1024 VREF
Dimana VIN adalah tegangan pada pin input yang diilih dan VREF adalah tegangan referensi yang dipilih. 0 x 000 mewakili ground analog, dan 0 x 3FF mewakili tegangan referensi yang dipilih dikurangi 1 LSB.
2.4
LM35
Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan. Meskipun tegangan sensor ini dapat mencapai 30 volt akan tetapi yang diberikan kesensor adalah sebesar 5 Volt, sehingga dapat digunakan dengan catu daya tunggal dengan ketentuan bahwa LM35 hanya membutuhkan arus sebesar 60 µA hal ini berarti LM35 mempunyai kemampuan menghasilkan panas (selfheating) dari sensor yang dapat menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 ºC pada suhu 25 ºC . Tiga pin LM35 menujukan fungsi masing-masing pin diantaranya, pin 1 berfungsi sebagai sumber tegangan kerja dari LM35, pin 2 atau tengah digunakan sebagai tegangan keluaran atau Vout dengan jangkauan kerja dari 0 Volt sampai dengan 1,5 Volt dengan tegangan operasi sensor LM35 yang dapat digunakan antar 4 Volt sampai 30 Volt. Keluaran sensor ini akan naik sebesar 10 mV setiap derajad celcius sehingga diperoleh persamaan sebagai berikut : VLM35 = Suhu* 10 mV
II-28
BAB II LANDASAN TEORI
Secara prinsip sensor akan melakukan penginderaan pada saat perubahan
suhu setiap suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Pada penempatannya LM35 dapat ditempelkan dengan perekat atau dapat pula disemen pada permukaan
akan
tetapi
suhunya
akan sedikit
berkurang sekitar
0,01 ºC karena terserap pada suhu permukaan tersebut. Dengan cara seperti ini diharapkan selisih antara suhu udara dan suhu permukaan dapat dideteksi oleh sensor LM35 sama dengan suhu disekitarnya, jika suhu udara disekitarnya jauh tinggi atau jauh lebih rendah dari suhu permukaan, maka LM35 berada pada lebih
suhu permukaan dan suhu udara disekitarnya .
Jarak yang jauh diperlukan penghubung yang tidak terpengaruh oleh interferensi dari luar, dengan demikian digunakan kabel selubung yang ditanahkan sehingga dapat bertindak sebagai suatu antenna penerima dan simpangan didalamnya, juga dapat bertindak sebagai perata arus yang mengkoreksi pada kasus yang sedemikian, dengan mengunakan metode bypass kapasitor dari Vin untuk ditanahkan. Berikut ini adalah karakteristik dari sensor LM35. Berikut adalah point-point penting spesifikasi LM35: 1. Memiliki
sensitivitas
suhu,
dengan faktor skala linier
antara
tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius. 2. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC seperti terlihat pada gambar 2.2. 3. Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC. 4. Bekerja pada tegangan 4 sampai 30 volt. 5. Memiliki arus rendah yaitu kurang dari 60 µA. 6. Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam. 7. Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA. 8. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
II-29
BAB II LANDASAN TEORI
2.5
Keypad 4x4 Keypad Matriks adalah tombol-tombol yang disusun secara maktriks
(baris x kolom) sehingga dapat mengurangi penggunaan pin input. Sebagai
contoh, Keypad Matriks 4×4 cukup menggunakan 8 pin untuk 16 tombol. Hal tersebut dimungkinkan karena rangkaian tombol disusun secara horizontal
membentuk baris dan secara vertikal membentuk kolom:
Gambar 2.10 Keypad 4x4 Namun demikian, sebagai konsekuensi dari penggunaan bersama satu jalur (semisal baris satu (B1) ), maka tidak dimungkinkan pengecekkan dua tombol sekaligus dalam satu slot waktu. Proses pengecekkan dari tombol yang dirangkai secara maktriks adalah dengan teknik scanning, yaitu proses pengecekkan yang dilakukan dengan cara memberikan umpan-data pada satu bagian dan mengecek feedback (umpan-balik) – nya pada bagian yang lain. Dalam hal ini, pemberian umpan-data dilakukan pada bagian baris dan pengecekkan umpan-balik pada bagian kolom. Pada saat pemberian umpan-data pada satu baris, maka baris yang lain harus dalam kondisi inversi-nya. Tombol yang ditekan dapat diketahui dengan melihat asal data dan di kolom mana data tersebut terdeteksi:
2.6
Seven Segment
II-30
BAB II LANDASAN TEORI
Seven
Segment
adalah
tujuh
segmen-segmen
yang
digunakan
menampilkan angka. Seven segment merupakan display visual yang umum
digunakan dalam dunia digital. Seven segment sering dijumpai pada jam digital, penujuk antrian, display angka digital dan termometer digital. Penggunaan secara umum adalah untuk menampilkan informasi secara visual mengenai data-data
yang sedang diolah oleh suatu rangkaian digital. Seven segment ini tersusun atas 7 buah LED yang disusun membentuk angka 8 yang penyusunnya menggunakan diberikan lebel dari „a‟ sampai „g‟ dan satu lagi untuk dot point (DP). Setiap segmen ini terdiri dari 1 atau 2 Light Emitting Diode ( LED ). salah satu terminal LED dihubungkan menjadi satu
sebagai kaki common.
Gambar 2.11 Seven segment
Jenis-jenis Seven Segment : 1.
Jenis Common Anoda Semua anoda dari LED dalam seven segment disatukan secara parallel dan semua itu dihubungkan ke VCC, dan kemudian LED dihubungkan melalui tahanan pembatas arus keluar dari penggerak LED. Karena dihubungkan ke
II-31
BAB II LANDASAN TEORI
VCC, maka common anoda ini berada pada kondisi aktif low (led akan
menyala/aktif bila diberi logika 0).
2. Jenis Common Cathoda Merupakan kebalikan dari Common Anoda. Disini semua katoda disatukan
secara parallel dan dihubungkan ke ground. Karena seluruh katoda dihubungkan ke ground, maka common cathode ini berada pada kondisi
aktif high (led akan menyala/aktif bila diberi logika 1).
Gambar 2.12 Common pada seven segment
1.7
LED LED adalah singkatan dari Light Emiting Dioda, merupakan komponen
yang dapat mengeluarkan emisi cahaya.LED merupakan produk temuan lain setelah dioda. Strukturnya juga sama dengan dioda, tetapi belakangan ditemukan bahwa elektron yang menerjang sambungan P-N juga melepaskan energi berupa energi panas dan energi cahaya. LED dibuat agar lebih efisien jika mengeluarkan cahaya. Untuk mendapatkna emisi cahaya pada semikonduktor, doping yang pakai adalah galium, arsenic dan phosporus. Jenis doping yang berbeda menghasilkan warna cahaya yang berbeda pula.
II-32
BAB II LANDASAN TEORI
Gambar 2.13 Simbol LED
Karakteristik chip LED pada umumnya adalah sama dengan karakteristik
diode yang hanya memerlukan tegangan tertentu untuk dapat beroperasi. Namun bila diberikan tegangan yang terlalu besar, LED akan rusak walaupun tegangan yang diberikan adalah tegangan maju.
Tegangan yang diperlukan sebuah diode untuk dapat beroperasi adalah
tegangan maju (Vf).
1.8
LCD Lyquid Crystal Display (LCD) merupakan salah satu alat untuk tampilan, memiliki bermacam ukuran mulai dari 1 sampai 4 baris, 16 sampai 40 karakter per baris, dan 5x7 atau 5x10 dot display fonts. Meskipun LCD memiliki bermacam ukuran tetapi penggunaannya standar. Pada umumnya LCD memiliki 16 pin yang terbagi atas jalur data, kontrol, power, dan backlight. Tabel 2.6
Konfigurasi pin LCD karakter 16x2
No. Pin
Simbol
Level
Fungsi
1
VSS
GND
Ground
2
VDD
+5V
Tegangan Supply LCD
3
VEE
4
RS
H/L
Register Select, H = Baca, L = instruksi
5
R/W
H/L
Read/Write, H = baca, L = tulis
6
E
Pulsa L-H-L Enable Signal
7
DB0
H/L
Data Bit 0
8
DB1
H/L
Data Bit 1
9
DB2
H/L
Data Bit 2
10
DB3
H/L
Data Bit 3
11
DB4
H/L
Data Bit 4
12
DB5
H/L
Data Bit 5
13
DB6
H/L
Data Bit 6
14
DB7
H/L
Data Bit 7
Pengaturan kontras LCD
II-33
BAB II LANDASAN TEORI
15
16
A(+)
+5V
Led Backlight(+)
A(-)
0V
Led Backlight(-)
Jalur kontrol LCD terdiri dari: Register Select Control (RS). Jika RS berlogika 0 maka akan terjadi proses
menulis instruksi/command register. Dan sebaliknya, jika RS berlogika 1 maka
akan terjadi proses membaca status busyflag dan alamat counter LCD. Enable Control (E). Merupakan sinyal awal untuk membaca/menulis LCD. Proses
transaksi data/command terjadi saat transisi E dari logika 1 ke logika 0. Read/Write Control (R/W). Pada saat R/W berlogika 0 terjadi proses menulis dan
saat berlogika 1 terjadi proses membaca. Konfigurasi pin dari LCD ditunjukkan
pada Gambar dibawah ini:
Gambar 2.14 Pin LCD Modul LCD memiliki karakteristik sebagai berikut: • Terdapat 16 x 2 karakter huruf yang bisa ditampilkan. • Setiap huruf terdiri dari 5x7 dot-matrix cursor. • Terdapat 192 macam karakter. • Terdapat 80 x 8 bit display RAM (maksimal 80 karakter). • Memiliki kemampuan penulisan dengan 8 bit maupun dengan 4 bit. • Dibangun dengan osilator lokal. • Satu sumber tegangan 5 volt. • Otomatis reset saat tegangan dihidupkan. • Bekerja pada suhu 0oC sampai 55oC. 1.9
LCD grafis 128x64 pixel LCD Grafik adalah modul penampil yang memiliki 128x64 pixel.
Penampil modul LCD grafik ini memiliki 20 pin yang 14 diantaranya dihubungkan pada mikrokontroler, sedangkan 6 kaki lainnya dipakai sebagai
II-34
BAB II LANDASAN TEORI
tegangancatu positif, ground, mengatur contrast dari modul LCD dan mengatur
lampu latar belakang (backlight)
Proses menampilkan meliputi proses mapping dan proses penulisan data pada modul LCD. Modul LCD yang dipakai terbagi menjadi dua bagian utama dengan ukuran 64x64 titik dan terbagi lagi menjadi baris (dalam byte) dan kolom
sesuai yang terlihat pada gambar 2.7. Untuk itu , saat akan melakukan penulisan pada modul LCD harus ditentukan dahulu posisinya (mapping). Baru kemudian dikirimkan data-data yang bisa menggambarkan bentuk isyarat yang diukur. Tabel 2.7 Pin-pin pada LCD
Nomor Symbol Pin 1 VSS
0V
Tegangan catu nol volt
2
VDD
5V
Tegangan catu untuk LCD
3
Vo
Variabel
Tegangan untuk kontras layar LCD
4
D/I
H/L
H: data L: Instruksi
5
R/W
H/L
H:
Level
Kegunaan
Baca
(modul
LCD
ke
mikrokontroler) L: Tulis (mikrokontroler ke modul LCD) 6
E
H
Sinyal Enable
7…14
DB0…DB7
H/L
Data bit 0…7
15
CS1
L
Pemilih kolom 1-64
16
CS2
L
Pemilih 65-128
17
RES
L
Sinyal reset
18
Vout
Variabel
Tegangan negatif untuk kontras layar LCD
19
A
Variabel
Tegangan catu positif untuk lampu latar belakang
20
K
Variabel
Tegangan catu negatif untuk lampu latar belakang
II-35
BAB II LANDASAN TEORI
1.10
MOTOR DC Motor listrik merupakan perangkat elektromagnetis yang mengubah energi
listrik menjadi energi mekanik. Energi mekanik ini digunakan untuk, misalnya memutar impeller pompa, fan atau blower, menggerakan kompresor, mengangkat
bahan,dll. Motor listrik digunakan juga di rumah (mixer, bor listrik, fan angin)
dan di industri. Motor listrik kadangkala disebut “kuda kerja” nya industri sebab diperkirakan bahwa motormotor menggunakan sekitar 70% beban listrik total di industri. Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor dc
disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Jika terjadi putaran pada kumparan jangkar dalam pada medan magnet, maka akan timbul tegangan (GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga merupakan tegangan bolak-balik. Prinsip kerja dari arus searah adalah membalik phasa
tegangan dari gelombang yang
mempunyai nilai positif dengan menggunakan komutator, dengan demikian arus yang berbalik arah dengan kumparan jangkar yang berputar dalam medan magnet. Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutub-kutub magnet permanen.
Gambar 2.15 Motor DC
Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang menyentuh komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan pada gambar di atas disebut angker dinamo. Angker dinamo adalah sebutan untuk komponen yang berputar di antara medan magnet. Jika arus
BAB II LANDASAN TEORI
II-36
lewat pada suatu konduktor, timbul medan magnet di sekitar konduktor. Arah
medan magnet ditentukan oleh arah aliran arus pada konduktor. Gambar 2.16 Medan magnet yang membawa arus mengelilingi konduktor
Aturan Genggaman Tangan Kanan bisa dipakai untuk menentukan arah garis fluks di sekitar konduktor. Genggam konduktor dengan tangan kanan dengan jempol mengarah pada arah aliran arus, maka jari-jari anda akan menunjukkan arah garis fluks. Gambar 3 menunjukkan medan magnet yang terbentuk di sekitar konduktor berubah arah karena bentuk U.
1.11
Motor Servo Motor servo adalah sebuah motor dengan sistem closed feedback di mana
posisi dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo. Motor ini terdiri dari sebuah motor, serangkaian gear, potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo. Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Tampak pada gambar dengan pulsa 1.5 mS pada periode selebar 2 mS maka sudut dari sumbu motor akan berada pada posisi tengah. Semakin lebar pulsa OFF maka akan semakin besar gerakan sumbu ke arah jarum jam dan semakin kecil pulsa OFF maka akan semakin besar gerakan sumbu ke arah yang berlawanan dengan jarum jam. Motor servo biasanya hanya bergerak mencapai sudut tertentu saja dan tidak kontinyu seperti motor DC maupun motor stepper. Walau demikian, untuk beberapa keperluan tertentu, motor servo dapat dimodifikasi agar bergerak kontinyu. Pada robot, motor ini sering digunakan untuk bagian kaki, lengan atau
II-37
BAB II LANDASAN TEORI
bagianbagian lain yang mempunyai gerakan terbatas dan membutuhkan torsi
cukup besar.
Motor servo adalah motor yang mampu bekerja dua arah (CW dan CCW) dimana arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan pengaturan duty cycle sinyal PWM pada bagian pin kontrolnya.
Motor Servo tampak pada gambar 2.16
Gambar 2.16 Motor Servo 180o
Motor Servo merupakan sebuah motor DC yang memiliki rangkaian control elektronik dan internal gear untuk mengendalikan pergerakan dan sudut angularnya. Sistem Mekanik Motor Servo tampak pada gambar 2.17.
Gambar 2.17 Motor Servo yang terdiri dari motor DC dan potensiometer
Motor servo adalah motor yang berputar lambat, dimana biasanya ditunjukkan oleh rate putarannya yang lambat, namun demikian memiliki torsi yang kuat karena internal gearnya. Lebih dalam dapat digambarkan bahwa sebuah motor servo memiliki :
BAB II LANDASAN TEORI
II-38
3 jalur kabel : power, ground, dan control
Sinyal control mengendalikan posisi
Operasional dari servo motor dikendalikan oleh sebuah pulsa
selebar ± 20 ms, dimana lebar pulsa antara 0.5 ms dan 2 ms menyatakan akhir dari range sudut maksimum.
Konstruksi didalamnya meliputi internal gear, potensiometer, dan feedback control.
Mode pensinyalan motor servo tampak pada gambar 2.18
Gambar 2.18 Pensinyalan Motor Servo
Contoh dimana bila diberikan pulsa dengan besar 1.5ms mencapai gerakan 90 derajat, maka bila kita berikan data kurang dari 1.5 ms maka posisi mendekati 0 derajat dan bila kita berikan data lebih dari 1.5 ms maka posisi mendekati 180 derajat. Contoh Posisi dan Waktu Pemberian Pulsa tampak pada gambar 2.19.
II-39
BAB II LANDASAN TEORI
Gambar 2.19 Contoh Posisi dan Waktu Pemberian Pulsa
Terdapat tiga utas kabel dengan warnamerah, hitam, dan putih. Kabel
merah dan hitam harus dihubungkan dengan sumber tegangan 4-6 Volt DC agar motor servo dapat bekerja normal. Sedangkan kabel berwarna putih adalah kabel data yang dipakai untuk mengatur arah gerak dan posisi servo. Pergerakan motor servo terhadap perubahan lebar pulsa tampak pada gambar 2.20.
Gambar 2.20 Pergerakkan motor servo terhadap perubahan lebar pulsa
1.12
Motor Stepper Stepper motor merupakan motor elektronik yang digerakkan berdasarkan
step-step tertentu yang dipicu dengan adanya medan magnet dalam kumparan motor tersebut. Bagian dalam motor stepper terbagi atas dua bagian, bagian yang pertama ialah bagian magnet permanen (rotor) yang terletak pada inti dari motor tersebut, sedangkan bagian kedua merupakan variable magnet yang berada di sekeliling magnet permanen
(stator) yang berfungsi menggerakan magnet
II-40
BAB II LANDASAN TEORI
permanen sehingga motor dapat berputar. Keistimewaan dari motor ini adalah
mempunyai derajat putar yang pasti untuk setiap stepnya. Gambar 2.21 Rangkaian dalam Motor Stepper
Ada beberapa cara untuk menggerakan motor stepper antara lainnya: 1. Half Step 2. Full Step Full Step Full Step adalah cara menggerakan motor stepper dengan mengaktifkan salah satu coil pada motor stepper, untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.
Gambar 2.22 Motor Stepper Full Step
Half Step
BAB II LANDASAN TEORI
II-41
Half Step adalah cara menggerakan motor stepper sedemikian rupa
sehingga pergerakkan motor lebih halus, untuk lebih jelasnya dapat dilihat pada gambar dibawah ini.
Gambar 2.23 Motor Stepper Half Step
BAB II LANDASAN TEORI
II-42
1.13
Komunikasi Serial USART (Universal Synchronous Asynchronous serial Receiver and
Transmitter) merupakan protokol komunikasi serial yang terdapat pada mikrokontroler AVR. Dengan memanfaatkan fitur ini kita dapat berhubungan dengan “dunia luar”. Dengan USART kita bisa menghubungkan mikrokontroler
dengan PC, hape, GPS atau bahkan modem, dan banyak lagi peralatan yang dapat dihubungkan dengan mikrokontroler dengan menggunakan fasilitas USART.
Komunikasi dengan menggunakan USART dapat dilakukan dengan dua cara yaitu dengan mode sinkron dimana pengirim data mengeluarkan pulsa/clock untuk sinkronisasi data, dan yang kedua dengan mode asinkron, dimana pengirim
data tidak mengeluarkan pulsa/clock, tetapi untuk proses sinkronisasi memerlukan inisialisasi, agar data yang diterima sama dengan data yang dikirimkan. Pada proses inisialisasi ini setiap perangkat yang terhubung harus memiliki baud rate (laju data) yang sama. Pada mikrokontroler AVR untuk mengaktifkan dan mengeset komunikasi USART dilakukan dengan cara mengaktifkan register2 yang digunakan untuk komunikasi USART. Register2 yang dipakai antara lain:
UDR : merupakan register 8 bit yang terdiri dari 2 buah dengan alamat yang sama, yang digunakan sebagai tempat untuk menyimpan data yang akan dikirimkan (TXB) atau tempat data diterima (RXB) sebelum data tersebut dibaca.
1.14
I2C Sistem jalur data I2C adalah suatu standar protocol sitem komunikasi data
serial yang dikembangkan oleh Philips dan cukup popular karena penggunaannya cukup mudah. Pada komunikasi I2C data dikirimkan secara serial melalui sebuah
BAB II LANDASAN TEORI
II-43
jalur data dua buah arah I2C. karena menggunakan jalur data I2C, maka hanya
memerlukan dua buah pin saja untuk berkomunikasi, yaitu pin untuk data dan pin
untuk sinyal clock.
Pada dasarnya, system I2C terbagi atas dua bagian, yaitu suatu device
yang bertindak sebagai pengontrol atau master dan suatu device yang dikontrol
atau slave. Master dan slave saling berkomunikasi melalui jalur data bus I2C. alat yang mengendalikan komunikasi disebut master dan alat yang dikendalikan oleh master disebut slave.
Pada satu jalur data I2C yang sama, dapat terdapat slave lebih dari satu.
Oleh karena itu, I2CBus harus dikendalikan master yang dapat membangkitkan
serial clock (SCL), mengontrol system komunikasi data (SDA), dan dapat menghasilkan kondisi-kondisi “START” dan “STOP”. Terdapat beberap macam jenis kondisi pada jalur data I2C, jenis kondisi tersebut antara lain : 1. Bus not busy : jalur data (SDA) dan Clock (SCL) berlogika high. 2. Start data transfer : suatu perubahan kondisi pada jalur data, dari logka low ke logika high. Ketika jalur data sedang berlogika high, menndakan kondisi START. 3. Stop data transfer : suatu perubahan kondisi pada jalur data, dari logika low ke logika high. Ketika jalur data sedang berlogika high, menandakan kondisi STOP. 4. Data valid : suatu kondisi ketika jalur data menandakan data valid, yaitu ketika setelah kondisi START, jalur data tetap stabil selama periode high sinyal clock. Data pada jalur data harus berubah selama periode LOW dari sinyal clock. Terdapat satu pulsa clock untuk setiap bit data. Setiap proses pengiriman data dimulai dengan kondisi START dan diakhiri dengan kondisi STOP. Banyaknya jumlah byte data yang ditransfer diantara kondisi START dan STOP tersebut tidak terbatas, dan diatur oleh master. 5. Acknowledge : setiap device yang dituju bila telah menerima data dengan benar, akan membangkitkan kondisi acknowledge setiap menerima byte data. Device yang membangkitkan acknowledge
II-44
BAB II LANDASAN TEORI
harus membangkitkan logika low pada jalur data selama sebuah
pulsa clock. Untuk mengakhiri suatu proses pengiriman data, master harus memberikan suatu tanda dengan tidak memberikan
tanda acknowledge, melainkan memberikan tanda STOP pada slave. kesimpulan nya adalah komunikasi I2C dapat memenuhi target desain elektronika saat ini, dengan karakter hardware dan
master atau slave protocol yang sederhana tetapi tangguh. jika
digunkan device yang telah dilengkapi dengan kemampuan I2C
secara
komunikasi baik single master maupun multi master, tetapi bagi
built-in,
akan
sangat
mudah
untuk
melaksanakan
device yang tidak, masih dapat mengemulasikan I2C protocol pada
pin-pin I/O-nya asalkan memenuhi syarat karakter hardware dengan cukup mudah untuk single master tapi sedikit rumit untuk multi master.
1.15
EEPROM I2C Serial EEPROM tipe 24xx adalah merupakan memori serial yang
menggunakan teknologi I2C di mana dengan adanya penggunaan teknologi tersebut, jumlah I/O yang digunakan untuk meng-akses memori tersebut semakin sedikit. Hal ini sangat bermanfaat bagi sebuah sistem yang memerlukan banyak I/O. Penggunaan I/O yang semakin sedikit untuk mengakses memori, akan menyediakan lebih banyak I/O yang dapat digunakan untuk keperluan lain. I2C adalah teknologi komunikasi serial yang ditemukan oleh Philips pada tahun 1992 dan direvisi hingga versi 2.1 yang terbaru pada tahun 2000. Teknologi ini hanya menggunakan 2 buah jalur I/O yaitu SDA dan SCL.
Gambar 2.24
Transfer Data I2C
SDA merupakan jalur data pada komunikasi I2C sedangkan SCL merupakan jalur clock di mana sinyal clock akan selalu muncul untuk setiap bit dari pengiriman data. Komunikasi I2C diciptakan oleh Philips bukan hanya untuk
BAB II LANDASAN TEORI
II-45
Serial EEPROM melainkan juga diperuntukkan bagi komponen-komponen lain
yang mempunyai kemampuan untuk diakses secara I2C. Oleh karena itu, untuk
membedakan antara Serial EEPROM dengan komponen-komponen yang lain digunakan Slave Address yang menunjukkan identitas dari komponen tersebut. Dalam hal ini Serial EEPROM mempunyai kode 1010.
Jenis Serial EEPROM I2C
Serial EEPROM I2C berdasarkan pengalamatannya terdiri dari 2 jenis
yaitu pengalamatan 8 bit yang digunakan untuk Serial EEPROM dengan kapasitas
memori sebesar 128 byte hingga 2Kb dan pengalamatan 16 bit untuk Serial
EEPROM 4Kb hingga 512Kb.
Tabel 2.8 Perbandingan Kapasitas EEPROM
Pada pengalamatan 16 bit terdapat 3 buah paket 8 bit data yang harus dikirimkan ke Serial EEPROM yaitu Control byte, High Byte Address dan Low Byte Address, sedangkan pada pengalamatan 8 bit hanya diperlukan 2 buah paket
II-46
BAB II LANDASAN TEORI
8 bit data yaitu Control Byte dan Byte Address saja. Control byte terdiri dari
Slave Address, Device Select Bus bit-bit pengatur alamat dari Serial EEPROM
dalam satu jalur bus, R/W bit penentu proses penulisan atau pembacaan data dari Serial EEPROM.
Akses data Serial EEPROM
Pembacaan maupun penulisan data ke dalam Serial EEPROM, selalu diawali dengan pengiriman Control Byte dan Address Byte. Hanya pada penulisan data akan dilanjutkan dengan pengiriman data 8 bit, sedangkan sebaliknya pada
pembacaan akan dilanjutkan dengan pengambilan data 8 bit. Bit R/W pada
Control Byte akan berlogika 1 untuk pembacaan data dan berlogika 0 untuk penulisan data.
Penulisan data Penulisan data pada Serial EEPROM I2C dapat dilakukan secara byte maupun secara page. Pada penulisan secara byte dilakukan dengan mengirimkan control byte, alamat tujuan dan data sedangkan pada penulisan secara page dilakukan hanya dengan mengirimkan alamat tujuan awal saja yang kemudian dilanjutkan dengan 32 byte data yang akan menempati lokasi secara berurutan mulai dari alamat tujuan awal.
Gambar 2.25 Penulisan secara byte
II-47
BAB II LANDASAN TEORI
Gambar 2.26 Penulisan secara page
Pembacaan data
Pembacaan data dapat dilakukan secara Current Address Read (pembacaan alamat saat ini) maupun random read (pembacaan secara acak). Pada Current Address Read, data yang dibaca adalah data pada
alamat yang terakhir kali diakses saat itu, sedangkan pada pembacaan secara acak dilakukan dengan mengirimkan Control Byte dan alamat tujuan terlebih dahulu. Untuk pembacaan secara sequential, dilakukan dengan control byte dan dilanjutkan dengan data-data yang berada mulai dari alamat yang terakhir diakses saat itu berturut-turut hingga sinyal stop bit dikeluarkan.
Gambar 2.27 Penulisan secara Current Read
Gambar 2.28
Pembacaan secara Random Read
II-48
BAB II LANDASAN TEORI
Gambar 2.29
Penulisan secara Sequential Read
1.16
RTC I2C Real Time Clock adalah jam di komputer yang umumnya berupa sirkuit
terpadu sebagai pemelihara waktu. RTC umumnya catu daya terpisah dari daya
komputer (umumnya serupa baterai lilin) sehingga dapat tetap berfungsi ketika catu daya komputer terputus. Kebanyakan RTC menggunakan oskilator Kristal. Jenis RTC yang kami gunakan adalah DS1307 yang mempunyai spesifikasi sebagai berikut : a. RTC menyimpan data-data detik,menit,jam,tanggal,bulan,hari dalam seminggu dan tahun valid hingga 2100. b. 56-byte,battery-backed,RAM nonvolatile (NU) RAM untuk penyimpanan. c. Antar muka serial Two-wire (I2C). d. Sinyal luaran gelombang-kotak dan rangkaian switch. e. Konsumsi daya kurang dari 500 nA menggunakan mode baterai cadangan dengan operasional osilator.
I2C merupakan standar komunikasi menggunakan 2 kabel dengan kecepatan yang cukup tinggi maka antara IC yang satu dengan yang lainnya dapat berkomunikasi dengan baik. Dengam memanfaatkan jalur bus dan address yang bervariasi maka I2C mampu mengalami banyak device. I2C terdiri dari beberapa bagian yaitu :
Transmitter : bagian yang mengirimkan data ke bus.
Recevier : bagian yang menerima data dari bus.
Master : bagian yang melakukan transfer, mengenerate clock dan membatalkan transfer data.
II-49
BAB II LANDASAN TEORI
Arbitration : produsen yang memerlukan atau membatasi Multi Master dan membuat hanya satu dari dua master yang dapat mengatur bus
sehingga tidak terjadi corrupt pada data.
Synchronization : produsen yang mencocokkan antara sinyal clock dan beberapa device.
Gambar 2.30 Konfigurasi I2C dengan lebih dari dua device
Pada gambar 2.30 komunikasi antara 2 mikrokontroller A dan Mikrokontroller B dan device-device lainnya (Gate Array, LCD Driver, ADC, Static RAM/ EEPROM) dilakukan dengan menggunakan 2 jalur (SDA dan SCL). SDA merupakan Serial Data Line yang merupakan jalur untuk mengirimkan data-data secara serial. Sedangkan SCL merupakan Serial Clock Line yang berfungsi untuk mengirimkan Clock yang berfungsi untuk sinkronisasi dan menandakan pengiriman paket-paket data. Berikut merupakan timing diagram dari I2C.
Gambar 2.31 Timing diagram I2C
II-50
BAB II LANDASAN TEORI
Komunikasi
antar
IC
dengan
menggunakan
metode
I2C
harus
memperhatikan beberapa hal antara lainnya pada awal SDA mengirimkan transisi data dari high ke low “falling edge” sedangkan SCL harus berada pada kondisi
high. Kondisi ini menandakan mulainya pengiriman data “start condition”.
Selanjutnya pengiriman address yang ditandakan dengan SCL yang akan
mengirimkan transisi data dari high ke low dan ke high lagi. Selanjutnya
pengiriman status untuk menulis atau membaca data yang ditandai dengan tansisi data SCL dari low ke high. Setelah mendapatkan ack dari IC tujuan yang ditandai
dengan satu clock penuh pada SCL, maka data akan dapat dikirimkan menuju IC
tujuan dengan transisi SCL dari low ke high “rising edge” , ACK dapat diartikan
sebagai penanda ketika data berhasil diterima oleh IC tujuan. “Stop condition” atau penanda bahwa semua data telah dikirimkan, ditandai dengan perubahan SDA dari low ke high “rising edge” yang diikuti dengan logic high pada SCL. Berikut ini merupakan paket-paket data yang digunakan dalam komunikasi I2C Untuk melakukan penulisan dari master menuju ke slave device maka beberapa paket data dibutuhkan untuk melakukan proses tersebut antara lainnya: start bit, address, R/W, ACK, Data yang hendak dikirimkan, ACK dan pengiriman data yang selanjutnya, ACK dan stop bit. Untuk perintah R/W master device harus menunggu ACK dari slave device yang menandakan bahwa perintah R/W berhasil diterima dan di konfirmasi. Demikian juga halnya untuk data yang dikirimkan harus menunggu ACK dari slave device jika pengiriman berhasil dilakukan maka ditandai dengan adanya ACK jika tidak master device harus mengirimkan data tersebut kembali. Sedangkan untuk melakukan pembacaan yang harus dilakukan ialah hanya mengganti perintah untuk pembacaan (logic high) setelah data pertama didaptkan maka master mengirimkan ACK ke slave device, untuk data yang selanjutnya yang diterima, master tidak perlu mengirimkan ACK. Istilah-istilah yang digunakan dalam komunikasi dengan menggunakan I2C:
Start Condition : menentukan kapan data tersebut mulai dikirim.
Acknowledge : untuk memeriksa dan mencocokkan address yang akan diterima oleh device slave dan menentukan bagianbagian dari data yang
BAB II LANDASAN TEORI
dikirimkan dan memilah-milah ehingga tidak terjadi kesimpang siuran
antara address dan data yang dikirimkan.
Stop Condition : kondisi yang menentukan suatu data selesai dikirim.
II-51