BAB II LANDASAN TEORI 2.1 Mikrokontroller Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM, memori program, atau keduanya), dan perlengkapan input output. Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun bisa pula menulis hal-hal sebaliknya. Begitu pula jika Anda sudah mahir membaca dan menulis data maka Anda dapat membuat program untuk membuat suatu sistem pengaturan otomatik menggunakan mikrokontroler sesuai keinginan Anda. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini. Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara automatis, seperti sistem kontrol mesin, remote controls, mesin kantor, peralatan Universitas Sumatera Utara
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
BAB II
LANDASAN TEORI
2.1 Mikrokontroller
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah
chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil
RAM, memori program, atau keduanya), dan perlengkapan input output.
Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang
mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis
dan dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca
dan menulis data. Sekedar contoh, bayangkan diri Anda saat mulai belajar
membaca dan menulis, ketika Anda sudah bisa melakukan hal itu Anda bisa
membaca tulisan apapun baik buku, cerpen, artikel dan sebagainya, dan Andapun
bisa pula menulis hal-hal sebaliknya. Begitu pula jika Anda sudah mahir
membaca dan menulis data maka Anda dapat membuat program untuk membuat
suatu sistem pengaturan otomatik menggunakan mikrokontroler sesuai keinginan
Anda. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk
mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya.
Secara harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem
elektronik yang sebelumnya banyak memerlukan komponen-komponen
pendukung seperti IC TTL dan CMOS dapat direduksi/diperkecil dan akhirnya
terpusat serta dikendalikan oleh mikrokontroler ini.
Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara
automatis, seperti sistem kontrol mesin, remote controls, mesin kantor, peralatan
Universitas Sumatera Utara
rumah tangga, alat berat, dan mainan. Dengan mengurangi ukuran, biaya, dan
konsumsi tenaga dibandingkan dengan mendesain menggunakan mikroprosesor
memori, dan alat input output yang terpisah, kehadiran mikrokontroler membuat
kontrol elektrik untuk berbagai proses menjadi lebih ekonomis. Dengan
penggunaan mikrokontroler ini maka :
• Sistem elektronik akan menjadi lebih ringkas
• Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar
dari sistem adalah perangkat lunak yang mudah dimodifikasi
• Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak
Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut
memerlukan komponen eksternal yang kemudian disebut dengan sistem
minimum. Untuk membuat sistem minimal paling tidak dibutuhkan sistem clock
dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan sistem
clock internal, sehingga tanpa rangkaian eksternal pun mikrokontroler sudah
beroperasi.
Yang dimaksud dengan sistem minimal adalah sebuah rangkaian mikrokontroler
yang sudah dapat digunakan untuk menjalankan sebuah aplikasi. Sebuah IC
mikrokontroler tidakakan berarti bila hanya berdiri sendiri. Pada dasarnya sebuah
sistem minimal mikrokontroler AVR memiliki prinsip yang sama.
Universitas Sumatera Utara
2.1.1 Fitur AVR ATMega328
ATMega328 adalah mikrokontroller keluaran dari atmel yang
mempunyai arsitektur RISC (Reduce Instruction Set Computer) yang
dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC
(Completed Instruction Set Computer).
Mikrokontroller ini memiliki beberapa fitur antara lain :
130 macam instruksi yang hampir semuanya dieksekusi dalam satu
siklus clock.
32 x 8-bit register serba guna.
Kecepatan mencapai 16 MIPS dengan clock 16 MHz.
32 KB Flash memory dan pada arduino memiliki bootloader yang
menggunakan 2 KB dari flash memori sebagai bootloader.
Memiliki EEPROM (Electrically Erasable Programmable Read
Only Memory) sebesar 1KB sebagai tempat penyimpanan data
semi permanent karena EEPROM tetap dapat menyimpan data
meskipun catu daya dimatikan.
Memiliki SRAM (Static Random Access Memory) sebesar 2KB.
Memiliki pin I/O digital sebanyak 14 pin 6 diantaranya PWM
(Pulse Width Modulation) output.
Master / Slave SPI Serial interface.
Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu memisahkan
memori untuk kode program dan memori untuk data sehingga dapat
memaksimalkan kerja dan parallelism.
Universitas Sumatera Utara
Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal,
dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari
memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat
dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan
untuk mendukung operasi pada ALU ( Arithmatic Logic unit ) yang dapat
dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai
3 buah register pointer 16-bit pada mode pengalamatan tidak langsung untuk
mengambil data pada ruang memori data.
Ketiga register pointer 16-bit ini disebut dengan register X ( gabungan
R26 dan R27 ), register Y ( gabungan R28 dan R29 ), dan register Z ( gabungan
R30 dan R31 ). Hampir semua instruksi AVR memiliki format 16-bit. Setiap
alamat memori program terdiri dari instruksi 16-bit atau 32-bit.
Selain register serba guna di atas, terdapat register lain yang terpetakan dengan
teknik memory mapped I/O selebar 64 byte. Beberapa register ini digunakan untuk
fungsi khusus antara lain sebagai register control Timer/ Counter, Interupsi, ADC,
USART, SPI, EEPROM, dan fungsi I/O lainnya. Register – register ini
menempati memori pada alamat 0x20h – 0x5Fh.
Universitas Sumatera Utara
Berikut ini adalah tampilan architecture ATmega 328 :
Gambar 2.1.1a Architecture ATmega328
Universitas Sumatera Utara
2.1.2 Konfigurasi PIN ATMega328
Gambar 2.1.2a Konfigurasi Pin ATMega328
Table 2.1.2b Konfigurasi Port B
Universitas Sumatera Utara
Table 2.1.2c Konfigurasi Port C
Tabel 2.1.2d Konfigurasi Port D
Universitas Sumatera Utara
2.2 Arduino Uno
Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328.
Arduino memiliki 14 pin input/output yang mana 6 pin dapat digunakan sebagai
output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power,
kepala ICSP, dan tombol reset. Arduino mampu men-support mikrokontroller;
dapat dikoneksikan dengan komputer menggunakan kabel USB.
Gambar 2.2a Board Arduino ATmega328
Apakah arduino? Arduino adalah merupakan sebuah board minimum
system mikrokontroler yang bersifat open source. Didalam rangkaian board
arduino terdapat mikrokontroler AVR seri ATMega 328 yang merupakan produk
dari Atmel.
Universitas Sumatera Utara
Arduino memiliki kelebihan tersendiri disbanding board mikrokontroler
yang lain selain bersifat open source, arduino juga mempunyai bahasa
pemrogramanya sendiri yang berupa bahasa C. Selain itu dalam board arduino
sendiri sudah terdapat loader yang berupa USB sehingga memudahkan kita ketika
kita memprogram mikrokontroler didalam arduino. Sedangkan pada kebanyakan
board mikrokontroler yang lain yang masih membutuhkan rangkaian loader
terpisah untuk memasukkan program ketika kita memprogram mikrokontroler.
Port USB tersebut selain untuk loader ketika memprogram, bisa juga difungsikan
sebagai port komunikasi serial.
Arduino menyediakan 20 pin I/O, yang terdiri dari 6 pin input analog dan
14 pin digital input/output. Untuk 6 pin analog sendiri bisa juga difungsikan
sebagai output digital jika diperlukan output digital tambahan selain 14 pin yang
sudah tersedia. Untuk mengubah pin analog menjadi digital cukup mengubah
konfigurasi pin pada program. Dalam board kita bisa lihat pin digital diberi
keterangan 0-13, jadi untuk menggunakan pin analog menjadi output digital, pin
analog yang pada keterangan board 0-5 kita ubah menjadi pin 14-19. dengan kata
lain pin analog 0-5 berfungsi juga sebagi pin output digital 14-16.
Sifat open source arduino juga banyak memberikan keuntungan tersendiri
untuk kita dalam menggunakan board ini, karena dengan sifat open source
komponen yang kita pakai tidak hanya tergantung pada satu merek, namun
memungkinkan kita bisa memakai semua komponen yang ada dipasaran.
Bahasa pemrograman arduino merupakan bahasa C yang sudah
disederhanakan syntax bahasa pemrogramannya sehingga mempermudah kita
dalam mempelajari dan mendalami mikrokontro
Universitas Sumatera Utara
Berikut ini adalah konfigurasi dari arduino duemilanove 328 :
Mikronkontroler ATmega328
Beroperasi pada tegangan 5V
Tegangan input (rekomendasi) 7 - 12V
Batas tegangan input 6 - 20V
Pin digital input/output 14 (6 mendukung output PWM)
Pin analog input 6
Arus pin per input/output 40 mA
Arus untuk pin 3.3V adalah 50 mA
Flash Memory 32 KB (ATmega328) yang mana 2 KB digunakan oleh
bootloader
SRAM 2 KB (ATmega328)
EEPROM 1KB (ATmega328)
Kecepatan clock 16 MHz
• Power
Arduino dapat diberikan power melalui koneksi USB atau power supply.
Powernya diselek secara otomatis. Power supply dapat menggunakan adaptor DC
atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada
koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply
dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan
menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika
menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas
dan menyebabkan kerusakan pada board. Rekomendasi tegangan ada
Universitas Sumatera Utara
pada 7 sampai 12 volt.
Penjelasan pada pin power adalah sebagai berikut :
Vin
Tegangan input ke board arduino ketika menggunakan tegangan
dari luar (seperti yang disebutkan 5 volt dari koneksi USB atau
tegangan yang diregulasikan). Pengguna dapat memberikan
tegangan melalui pin ini, atau jika tegangan suplai menggunakan
power jack, aksesnya menggunakan pin ini.
5V
Regulasi power supply digunakan untuk power mikrokontroller
dan komponen lainnya pada board. 5V dapat melalui Vin
menggunakan regulator pada board, atau supply oleh USB atau
supply regulasi 5V lainnya.
3V3
Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus
maximumnya adalah 50mA
Pin Ground
berfungsi sebagai jalur ground pada arduino
Universitas Sumatera Utara
• Memori
ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2
KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk
SRAM dan 1 KB untuk EEPROM.
• Input dan Output
Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau
output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead().
Input/output dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau
menerima maximum 40 mA dan memiliki internal pull-up resistor
(disconnected oleh default) 20-50 KOhms.
Beberapa pin memiliki fungsi sebagai berikut :
Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan
mengirim (TX) TTL data serial. Pin ini terhubung pada pin yang
koresponding dari USB FTDI ke TTL chip serial.
Interupt eksternal : 2 dan 3. Pin ini dapat dikonfigurasikan untuk
trigger sebuah interap pada low value, rising atau falling edge, atau
perubahan nilai.
PWM : 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM