53
http:// www.max-tron.com MODUL TRAINING MICROCONTROLLER FOR BEGINER  Au th or  : B.Arifianto S.T http://b-arifianto.blogspot.com [email protected] MAX-TRON 1

Training Micro Controller for Beginner (B. Arifianto

  • Upload
    sherlan

  • View
    51

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 1/52

 

http:// www.max-tron.com 

MODUL TRAININGMI CROCONTROLL ER FOR BEGINER

Author : B.Arifianto S.T

http://b-arifianto.blogspot.com

[email protected]

MAX-TRON 1

Page 2: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 2/52

 

http:// www.max-tron.com 

DAFTAR ISI

DAFTAR ISI …………………………………………………………………………… 1

BAB 1 : Introduction ………………………………………………………… 2

BAB 2 : Input/Output ………………………………………………………… 9

BAB 3 : Interrupt ………………………………………………………… 20

BAB 4 : Analog to Digital Convertion ……………………………………... 29

BAB 5 : Timer/Counter ……………………………………………….. 34

BAB 6 : Pulse Width Modulation (PWM) ……………………………. 42

BAB 7 : USART …………………………………………………………. 47

MAX-TRON 2

Page 3: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 3/52

 

http:// www.max-tron.com 

BAB 1

INTRODUCTION

Pada level yang paling sederhana, komputer adalah mesin yang didesain untuk

mengolah, menyimpan, dan mendapatkan kembali sebuah data. Data/informasi yang

menjadi bagian operasi dari sebuah komputer adalah berupa angka. Semua operasi yang

bisa dilakukan komputer seperti: web browsing, printing, dan image processing tidak lebih

merupakan kegiatan menahan, memindahkan dan mengubah/memanipulasi angka angka.

Sistem komputer dibagi menjadi dua kategori, yaitu:

1. Desktop komputer, mesin yang sering kita sebut sebagai “komputer”, komputer yang

ada di pikiran kita. Desktop komputer bisa menjalankan beragam program dengan

sistem yang diatur oleh suatu operating sistem (OS) seperti: Windows dan Linux.

Dengan menjalankan aplikasi program yang berbeda, fungsi dari desktop komputer juga

berubah.

2. Embedded komputer, komputer yang terintegrasi dengan sistem lain (ex: mekanika)

dan digunakan untuk suatu fungsi tertentu. Seperti: microwave oven, DVD player,

mainan, handphone dll. Embedded komputer pada umumnya didesain untuk satu

aplikasi saja.

Sistem komputer disusun dari banyak komponen, seperti: processor, memory, input/output

peripheral dll. Berikut adalah gambar skema sistem komputer sederhana,

Gambar 1.1: Sistem komputer sederhana

MAX-TRON 3

Page 4: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 4/52

 

http:// www.max-tron.com 

PROCESSOR

Processor/CPU (Central Processing Unit) adalah komponen dari suatu sistem

komputer yang melakukan proses manipulasi dan pengolahan (eksekusi) data

berdasarkan urutan instruksi dari memory. Instruksi yang dijalankan oleh processor disebutdengan opcodes atau machine-code.

Opcodes merupakan bahasa mesin berupa angka-angka yang kadang sulit

dimengerti oleh pengguna, untuk itu dibangun instruksi operasi processor dalam bahasa

assembly yang disebut dengan mnemonic. Urutan dari kumpulan instruksi sebuah

processor disebut dengan program. Program yang dijalankan processor bisa diubah sesuai

dengan kebutuhan aplikasi, sehingga komputer bersifat programmable.

MEMORY

Memory merupakan komponen sistem komputer yang berfungsi untuk menyimpan

data dan instruksi (program) yang dijalankan oleh processor. Ada beberapa jenis memory

yang biasa digunakan oleh suatu sistem komputer,

1. RAM (Random Acces Memory), RAM adalah “Working Memory” pada sistem komputer,

dimana CPU dapat menuliskan data untuk disimpan sementara. RAM bersifat ”volatile”,

yang berarti datanya akan hilang apabila catu daya dimatikan.

2. ROM (Read Only Memory), bersifat “non volatile”, yang berarti data tidak akan hilang

meskipun catu daya dimatikan. Tujuan utama dari ROM adalah menyimpan kode/data

yang dibutuhkan pada saat start up.

PERANGKAT INPUT/OUTPUT

Perangkat input/output atau peripheral i/o digunakan oleh processor untuk

berkomunikasi dengan dunia luar. Contoh pemakaian perangkat i/o adalah serial komunikasi

pada keyboard, dan parallel komunikasi pada printer. Perangkat i/o merupakan piranti

pengkondisi sinyal sebelum dapat diolah oleh processor atau setelah diolah processor

sehingga dapat dikeluarkan berupa output data digital. Ada 3 cara input/output untuk

berkomunikasi dengan processor,

1. Programmed i/o, processor mengirim dan menerima data pada i/o sesuai instruksi.

2. Interrupt-driven i/o, sinyal dari luar mengatur eksekusi instruksi processor. Sinyal luar

akan menghentikan eksekusi program yang dijalankan saat itu, dan menjalankan fungsi

program interrupt.

3. Direct Memory Acces (DMA), memungkinkan transfer data langsung antara peripheral

i/o dan memory tanpa keterlibatan processor. Biasanya digunakan pada sistem yang

membutuhkan transfer data cepat.

MAX-TRON 4

Page 5: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 5/52

 

http:// www.max-tron.com 

MIKROKONTROLLER

Mikrokontroller adalah piranti elektronik berupa IC (Integrated Circuit) yang

memiliki kemampuan manipulasi data (informasi) berdasarkan suatu urutan instruksi

(program) yang dibuat oleh programmer. Mikrokontroller merupakan contoh suatu sistemkomputer sederhana yang masuk dalam kategori  embedded komputer. Dalam sebuah

struktur mikrokontroller akan kita temukan juga komponen-komponen seperti: processor,

memory, clock dll.

Gambar 1.2: contoh beberapa bentuk mikrokontroller ATMEL

Kegiatan desain otomasi merupakan kegiatan memetakan sinyal input menjadi

sinyal output berdasarkan suatu fungsi kontrol agar bisa dimanfaatkan sesuai kebutuhan.

Sasaran dari pelatihan ini adalah peserta mampu menggunakan mikrokontroller untuk

membangun sendiri suatu sistem otomasi atau embedded system.

ATMEL AVR ATMEGA853 5

Sebelum belajar lebih dalam tentang aplikasi mikrokontroller, ada baiknya kita

bicarakan dulu tentang mikrokontroller yang kita gunakan. Pada pelatihan ini dipilih

mikrokontroller jenis ATMEL AVR RISC dengan pertimbangan sebagai berikut:

ATMEL AVR RISC memiliki fasilitas dan kefungsian yang lengkap dengan harga yang

relatif murah.

Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS (Million

Instruction per Second), yang berarti hanya dibutuhkan 1 clock untuk 1 eksekusi

instruksi.

MAX-TRON 5

Page 6: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 6/52

 

http:// www.max-tron.com 

Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi.

Ketersediaan kompiler C (CV AVR) yang memudahkan user memprogram

menggunakan bahasa C.

Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapamikrokontroller,

Tabel 1.1: perbandingan kecepatan processor dan efisiensi

Dari tabel diatas dapat dilihat, ketika bekerja dengan kecepatan clock yang sama

AVR 7 kali lebih cepat dibandingkan denga PIC16C74, 15 kali lebih cepat daripada 68

HC11, dan 28 kali lebih cepat dibanding 8051. Dari kemampuan dan fasilitas yang dimiliki,

AVR RISC cocok dipilih sebagai mikrokontroller untuk membangun bermacam-macam

aplikasi embedded sistem. Oleh karena itu, dalam pelatihan ini juga dipilih salah satu jenis

AVR RISC sebagai dasar pelatihan yaitu ATMEGA 8535. Chip AVR ATMEGA8535 memiliki

40 pin kaki, berikut skema kaki AT MEGA8535,

Gambar 1.3: skema mikrokontroller AVR RISC ATMEGA8535

MAX-TRON 6

Page 7: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 7/52

 

http:// www.max-tron.com 

ATMEGA8535 memiliki 4 buah port input/output 8 bit, yaitu PORTA, PORTB,

PORTC, dan PORTD. Selain sebagai input/output masing masing port juga memiliki fungsi

yang lain. PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter), PORTB

dapat difungsikan sebagai SPI (Serial Peripheral Interface) communication. Fungsi-fungsiyang lain dapat dilihat pada datasheet ATMEGA8535.

PEMROGRAMAN A TMEL A VR

Ada 2 cara untuk memprogram mikrokontroller ini, menggunakan software AVR

assembler yang berbasis pada bahasa assembly, dan menggunakan software CV AVR

(Code Vision AVR) yang berbasis pada bahasa C. Pada pelatihan ini akan digunakan cara

yang kedua dengan pertimbangan kemudahan pembuatan program dari algoritma yangtelah dibangun.

Pelatihan ini tidak menitikberatkan penggunaan bahasa C pada CV AVR, tapi lebih

pada cara dan aplikasi dari mikrokontroller. Untuk itu peserta diharapkan membaca sendiri

petunjuk pemakaian software ini. Berikut tampilan utama CVAVR,

Gambar 1.4: tampilan utama CV AVR

MAX-TRON 7

Page 8: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 8/52

 

http:// www.max-tron.com 

Untuk dapat menyimpan program yang telah kita buat pada memory mikrokontroller

dibutuhkan perangkat tambahan yang menghubungkan antara PC dan mikrokontroller.

Perangkat interface ini disebut isp_dongle yang menghubungkan port parallel PC dan port

SPI (Serial Peripheral Interface) mikrokontroller.

Gambar 1.5: Isp dongle dan Skema rangkaiannya (dicopy dari buku bamec).

Untuk memaksimalkan pemanfaatan fasilitas mikrokontroller MAX-TRON telah

mengembangkan board dan peripheral pendukung yang dapat digunakan untuk

membangun bermacam-macam aplikasi sistem digital. Salah satunya adalah Universal

controller board M.B.3.2, board yang dilengkapi dengan komponen-komponen tambahan

pendukung kerja mikrokontroller. Berikut data Universal board M.B.3.2,

MAX-TRON 8

Page 9: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 9/52

 

http:// www.max-tron.com 

MAX-TRON M.B.3.2Universal Controller Board

Feature:

High-performance, low power

AVR ATMEGA8535 8 bit mikrocontroller

4 bidirection port

8 channel ADC

2 channel servo motor controller

2 channel max-tron H-bridge controller

Master/Slave SPI serial interface

Serial USART interface

Operating voltage 9 V – 35 V

PIN Description

Gambar 1.6: skema pin universal board M.B.3.2

MAX-TRON 9

Page 10: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 10/52

 

http:// www.max-tron.com 

BAB 2

INPUT/OUTPUT

Fasilitas input/output merupakan fungsi mikrokontroller untuk dapat menerima sinyal

masukan (input) dan memberikan sinyal keluaran (output). Sinyal input maupun sinyal output

adalah berupa data digital 1 (high, mewakili tegangan 5 volt) dan 0 (low, mewakili tegangan

0 volt). Mikrokontroller ATMEGA8535 memiliki 4 buah PORT 8 bit bidirectional yang dapat

difungsikan sebagai PORT input maupun PORT output yaitu PORTA, PORTB , PORTC,

dan PORT D. Register digunakan untuk mengatur fungsi dari pin-pin pada tiap port. Register

dapat dianalogikan sebagai kumpulan switch on/off  yang digunakan untuk mengaktifkan

fungsi apa yang akan dipakai dari port mikrokontroller. Pada setiap port pin terdapat 3 buah

register 8 bit: DDRxn, PORTxn, dan PINxn.

Register  DDRxn digunakan untuk menentukan arah dari pin yang bersangkutan.

Jika DDRxn diberikan nilai 1 (high), maka pin digunakan sebagai output. Jika DDRxn

diberikan nilai 0 (low), maka pin difungsikan sebagai input.

Register PORTxn digunakan untuk mengaktifkan pull-up resistor  (pada saat pin

difungsikan sebagai input),  dan memberikan nilai keluaran pin high/low (pada saat

difungsikan sebagai output). Konfigurasi PORTxn dan DDRxn dapat dilihat pada tabel

dibawah,

Tabel 2.1: konfigurasi port pin

Tri-state adalah kondisi diantara high dan low, atau biasa disebut dengan keadaan

mengambang (floating). Kondisi tri-state sangat dihindari dalam dunia digital. 

Terlepas dari setting DDRxn, PINxn merupakan register  yang berfungsi untuk

mengetahui keadaan tiap-tiap pin pada mikrokontroller. Register ini sangat dibutuhkan

untuk membaca keadaan pin pada saat difungsikan sebagai input.

MAX-TRON 10

Page 11: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 11/52

 

http:// www.max-tron.com 

PERANGK AT K ERAS

Perangkat keras yang dibutuhkan untuk mendemonstrasikan aplikasi input/output adalah

sebagai berikut:

• ATMEGA8535 universal board + isp_dongle.

Gambar 2.1: ATMEGA8535 universal board

• Led Array (output indicator)

Gambar 2.2: skema led output indicator (dicopy dari buku bamec). 

MAX-TRON 11

Page 12: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 12/52

 

http:// www.max-tron.com 

• Push-button array (input signal)

Gambar 2.3: skema input push-button (dicopy dari buku bamec).

led array dan push-button array telah dibuat dalam 1 board input output-seperti pada

gambar berikut,

Gambar 2.4: MAX-TRON input/output board M.B.3.6

MAX-TRON 12

Page 13: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 13/52

 

http:// www.max-tron.com 

APLIKASI PRAK TIK

Berikut adalah beberapa aplikasi praktik yang nantinya dapat lebih menjelaskan

fungsi dan fasilitas input/output. Peserta diharapkan mengikuti petunjuk langkah demi

langkah.

APLIKASI 1: OUTPUT

•  Setting Hardware:

1. Hubungkan PORTC universal board dengan led array (port OUTPUT pada input/output-

board) menggunakan kabel pita.

2. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan

downloader.

3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.

•  Programming:

1. Buka CV AVR., pilih File->New->Project.  

2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3.  Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz. 

MAX-TRON 13

Page 14: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 14/52

 

http:// www.max-tron.com 

4. Klik tab Ports, pilih tab Port C seperti pada gambar, ubah setting bit 0 – bit 7 sebagai

out.

Hasil setting ini berpengaruh pada nilai register DDRxn, dan PORTxn.

5. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.

6. Buat direktori dengan nama io1.

7. Save file CV AVR dengan nama io1.cwp pada direktori io1.

8. Save file .C dengan nama io1.c pada direktori io1.

9.  Save file project dengan nama io1.prj pada direktori io1. 

•  Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan

memilih menu project >> configure.

2. Pilih tab after make, aktifkan program the chip. Terlihat tampilan seperti pada gambar

dibawah,

MAX-TRON 14

Page 15: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 15/52

 

http:// www.max-tron.com 

setting ini akan membantu kita mengotomasi untuk langsung memrogram chip ketika kita

selesai Make Project File.

•  Listing Program

1. Sekarang perhatikan kode bahasa C pada bagian setting register DDRxn, dan PORTxn,

tampak sebagai berikut,

DDRC = 0xFF yang berarti 8 bit port C difungsikan sebagai output. PORTC = 0x00 

berarti nilai awalan output adalah 0(low).

2. Nilai register PORTC diatas adalah nilai awalan pada saat mikrokontroller start-up, kita

bisa mengubah nilai output port C dengan mengubah nilai register PORTC pada looping

while.

MAX-TRON 15

Page 16: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 16/52

 

http:// www.max-tron.com 

PORTC = 0xCD, nilai output port C adalah CD dalam bentuk hexa atau 11001101 dalam

bentuk biner.

3. Program chip dengan memilih menu Project >> Make atau dengan menekan shift + F9.Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

4. Klik Program, jika ada kesalahan periksa kembali setting hardware.

5. Perhatikan led array, lampu led akan menyala 11001101 jika diurut dari Port7- Port0.

6. Ulangi langkah 2 sampai 6 dengan memberikan nilai PORTC yang berbeda beda pada

looping while. Perhatikan perubahan nyala led pada led array.

MAX-TRON 16

Page 17: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 17/52

 

http:// www.max-tron.com 

APLIKASI 2: INPUT

•  Setting hardware:

1. Hubungkan PORTC universal board dengan led array (port OUTPUT pada input/output

board ) menggunakan kabel pita.

2. Hubungkan PORTB universal board dengan push button array (port INPUT pada

input/output board ) menggunakan kabel pita.

3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan

downloader.

4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.

•  Programming:

1. Buka CV AVR., pilih File->New->Project.  2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.

4. Setting port C sebagai output (out).

5. Setting port B sebagai Input (in) dan aktifkan pull-up resistor. (lihat gambar)

6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.

7. Buat direktori dengan nama io2.

8. Save file CV AVR dengan nama io2.cwp pada direktori io2.

MAX-TRON 17

Page 18: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 18/52

 

http:// www.max-tron.com 

9. Save file .C dengan nama io2.c pada direktori io2.

10. Save file project dengan nama io2.prj pada direktori io2.

  Project Setting1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan

memilih menu project >> configure. 

2. Pilih tab after make, aktifkan program the chip.

setting ini akan membantu kita mengotomasi untuk langsung memrogram chip ketika kita

selesai Make Project File.

MAX-TRON 18

Page 19: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 19/52

 

http:// www.max-tron.com 

•  Listing Program

1. Perhatikan setting register port B dan port C.

Port B difungsikan sebagai input (DDRB = 0x00) dengan 8 bit pull-up resistor diaktifkan

(PORTB=0xFF). Port C difungsikan sebagai output (DDRC=0xFF) dengan nilai awalan

pada tiap bit 1 (high).

2. Pada listing kode diatas kita telah men-set port B sebagai input dengan pull-up resistor

dan port C sebagai output. Untuk dapat menunjukkan funggsi input mikrokontroller

tambahkan listing kode berikut pada bagian looping while.

maksud dari listing program diatas adalah kita menscan register PINB terus menerus

dari PINB.0 – PINB.7. Perhatikan bahwa untuk membaca perubahan keadaan input dari

push-button dibaca pada register PINxn bukan pada register PORTxn maupun DDRxn.

MAX-TRON 19

Page 20: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 20/52

 

http:// www.max-tron.com 

3. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9.

Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

4. Klik Program, jika ada kesalahan periksa kembali setting hardware.

5. Jika langkah langkah diatas telah dilakukan dengan benar, maka led pada port C akan

menyala sesuai dengan push-button yang ditekan pada port B.

EXERCISE

Buatlah program aplikasi agar lampu led pada input/output-board menyala berkelap kelip

dengan selang waktu tertentu.

Gunakan pengarah preprocessor delay.h dengan mengetikkan #include<delay.h>.

MAX-TRON 20

Page 21: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 21/52

 

http:// www.max-tron.com 

BAB 3

INTERRUPT

Interrupt adalah fasilitas mikrokontroller untuk menyela suatu program yang sedang

berjalan. Interrupt dapat dianalogikan sebagai hak untuk menyela pada suatu rapat. Dari

sekian banyak peserta rapat hanya 21 orang yang diberi hak untuk menyela. Jika terdapat 2

atau lebih orang yang menyela, maka orang dengan prioritas paling tinggi yang

diperbolehkan bicara. Pada ATMEGA8535 terdapat 21 fasilitas interrupt dengan prioritas

seperti pada tabel berikut.

Tabel 3.1: prioritas interrupt ATMEGA8535

Dalam bab ini peserta akan diperkenalkan dengan fasilitas eksternal interrupt

mikrokontroller INT0 dan INT1. Fasilitas ini sangat penting karena menempati urutan kedua

dan ketiga setelah RESET. Register register yang perlu disetting untuk menggunakan

fasilitas interrupt adalah MCUCR, MCUSR, GICR, dan GIFR.

MAX-TRON 21

Page 22: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 22/52

 

http:// www.max-tron.com 

PERANGK AT K ERAS

Untuk mendemonstrasikan fasilitas interrupt perangkat keras yang dibutuhkan adalah

sebagai berikut:

• ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).

• Input/output-board (led array) (mengacu pada bab 3).

• Push-button.

Gambar 3.1: push button

APLIKASI PRAK TIK

•  Setting hardware

1. Hubungkan salah satu kaki push-button pada PORTD.2 dan PORTD.3, dan kaki

lainnya pada ground.2. Hubungkan PORTB universal board dengan port OUTPUT pada input/output board ( led

array).

3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan

downloader.

4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.

•  Programming:

1. Buka CV AVR., pilih File->New->Project.  

2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.

4. Setting port B sebagai output (out).

MAX-TRON 22

Page 23: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 23/52

 

http:// www.max-tron.com 

5. Setting PORTD.2 dan PORTD.3 sebagai input(in) dan aktifkan pull-up resistor.

MAX-TRON 23

Page 24: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 24/52

 

http:// www.max-tron.com 

6. Setting External IRQ, Klik tab External IRQ Enable-kan INT0 dan INT1 dan gunakan

mode yang berbeda yaitu low level untuk INT0 dan Falling edge untuk INT1.

7. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.

8. Buat direktori dengan nama int.

9. Save file CV AVR dengan nama int.cwp pada direktori int.

10. Save file .C dengan nama int .c pada direktori int.

11. Save file project dengan nama int.prj pada direktori int.

•  Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah egenerate. Konfigurasi project dengan

memilih menu project >> configure. 

2. Pilih tab after make, aktifkan program the chip.

MAX-TRON 24

Page 25: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 25/52

 

http:// www.max-tron.com 

•  Listing Program

1. Perhatikan setting register port B dan port D. Kita telah men-set port B sebagai output,

PORTD.2 dan PORTD.3 sebagai input dengan pull-up resistor.

2. Perhatikan setting bagian external interrupt,

terlihat register yang mempengaruhi, yaitu GICR, MCUCR, MCUCSR, dan GIFR.

MAX-TRON 25

Page 26: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 26/52

 

http:// www.max-tron.com 

3. Perintah diatas hanya berfungsi untuk setting external interrupt saja, untuk

mengaktifkannya kita perlu perintah (“sei”). Perintah ini tidak hanya mengaktifkan

external interrupt saja tetapi juga internal interrupt seperti timer overflow interrupt.

Perintah ini dapat dieksekusi dengan bahasa assembly, yaitu:

4. Pada pengarah preprosesor tambahkan header baru dengan mengetik

#include<delay.h>. Pada header ini ada 2 fungsi penting yaitu delay_ms() dan

delay_us(). 

5. Sekarang kita coba untuk mendeklarasikan variable bertipe unsigned char. Pemilihan

unsigned char berdasarkan bahwa variable ini digunakan untuk register 8 bit.

Pendeklarasian variable diletakkan dibawah pengarah preprosesor seperti pada gambar.

Setelah variable dideklarasikan maka variable diberikan nilai awalan yang nantinya

digunakan pada saat start-up.

Pemberian nilai awalan dilakukan didalam fungsi main 

6. Pada bab ini kita akan coba membuat fungsi. Tujuan membuat fungsi adalah untuk lebih

menyederhanakan program serta mempermudah keterbacaan program. Ada tiga buah

fungsi yang dibuat pada program ini, yaitu: led_off, led_blink, dan led_walk. Fungsi

fungsi tersebut ditulis dibawah pengarah preprosessor seperti pada gambar.

MAX-TRON 26

Page 27: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 27/52

 

http:// www.max-tron.com 

7. Fungsi external interrupt dieksekusi apabila pin external interrupt INT0 dan INT1 

berubah kondisi (Low Level pada INT0 dan Falling  Edge pada INT1). Pada saat

external interrupt tereksekusi, maka mikrokontroller akan memanggil fungsi yang berada

didalamnya, seperti pada gambar,

fungsi led_off akan dijalankan saat INT0 tereksekusi

fungsi led_blink akan dijalankan saat INT1 tereksekusi

MAX-TRON 27

Page 28: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 28/52

 

http:// www.max-tron.com 

  jika pin external interrupt tidak mengalami perubahan kondisi (tidal dieksekusi),

mikrokontroller akan menjalankan program pada looping while.

8. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9.

Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

9. Klik Program, jika ada kesalahan periksa kembali setting hardware.

10. Jika langlah langkah diatas telah benar, maka pada input/output-board led akan berjalan

kekiri jika tidak ada yang meng-interrupt-nya. Jika INT0 ditekan seluruh led akan mati.

Jika INT1 ditekan led akan berkedip beberapa kali.

11. Perhatikan perbedaan trigger antara low level dan falling edge pada output led.

MAX-TRON 28

Page 29: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 29/52

 

http:// www.max-tron.com 

EXERCISE

Buatlah program aplikasi interrupt dengan menggunakan mode trigger lainnya (rising edge

dan any change).

 Perhatikan perbedaan masing masing mode trigger.

MAX-TRON 29

Page 30: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 30/52

 

http:// www.max-tron.com 

BAB 4

ADC (Analog t o Digi t a l Convert ion )

ADC (Analog to Digital Converter) adalah salah satu fasilitas mikrokontroller

ATMEGA8535 yang berfungsi untuk mengubah data analog menjadi data digital. ADC

memiliki 2 karakter prinsip, yaitu kecepatan sampling dan resolusi. Kecepatan sampling

suatu ADC menyatakan seberapa sering sinyal analog dikonversikan ke bentuk sinyal digital

pada selang waktu tertentu. Kecepatan sampling biasanya dinyatakan dalam sample per

second (SPS).

Gambar 4.1: ADC dengan kecepatan sampling rendah dan kecepatan sampling tinggi

Resolusi ADC menentukan ketelitian nilai hasil konversi ADC. Sebagai contoh:

ADC 8 bit akan memiliki output 8 bit data digital, ini berarti sinyal input dapat dinyatakan

dalam 255 (2n

– 1) nilai diskrit. ADC 12 bit memiliki 12 bit output data digital, ini berarti sinyal

input dapat dinyatakan dalam 4096 nilai diskrit. Dari contoh diatas ADC 12 bit akan

memberikan ketelitian nilai hasil konversi yang jauh lebih baik daripada ADC 8 bit.

Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk besaran

yang merupakan rasio perbandingan sinyal input dan tegangan referensi. Sebagai contoh,

bila tegangan referensi 5 volt, tegangan input 3 volt, rasio input terhadap referensi adalah

60%. Jadi, jika menggunakan ADC 8 bit dengan skala maksimum 255, akan didapatkan

sinyal digital sebesar 60% x 255 = 153 (bentuk decimal) atau 10011001 (bentuk biner).

MAX-TRON 30

Page 31: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 31/52

 

http:// www.max-tron.com 

ADC pada ATMEGA8535 adalah jenis 10 bit successive approximation dengan

tegangan referensi maksimum 5 volt. Pada universal board M.B.3.2 tegangan referensi

dibuat fix tidak dapat diubah yaitu 5 volt yang diambil dari tegangan sumber (Vcc).

Register-register yang harus di setting adalah ADMUX, ADCSRA, dan SFIOR.

PERANGK AT K ERAS

Perangkat keras yang dibutuhkan untuk aplikasi ADC adalah sebagai berikut:

• ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).

• Input/output board M.B.3.6 (led array) (mengacu pada bab 3).

• Potensiometer.

APLIKASI PRAK TIK

•  Setting hardware

1. Hubungkan kaki tengah potensiometer pada channel 1 port A (PORTA.0), dua kaki

lainnya pada ground dan Vcc.

2. Hubungkan PORTB universal board dengan port OUTPUT pada input/output board ( led

array).

3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan

downloader.

4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.

•  Programming:

1. Buka CV AVR., pilih File->New->Project.  

2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.

4. Setting port B sebagai output (out).

5. Setting port A sebagai ADC, klik tab ADC kemudian setting seperti pada gambar.

6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.

7. Buat direktori dengan nama adc.

MAX-TRON 31

Page 32: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 32/52

 

http:// www.max-tron.com 

8. Save file CV AVR dengan nama adc pada direktori adc.

9. Save file .C dengan nama adc.c pada direktori adc.

10. Save file project dengan nama adc.prj pada direktori adc. 

•  Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan

memilih menu project >> configure.

2. Pilih tab after make, aktifkan program the chip.

MAX-TRON 32

Page 33: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 33/52

 

http:// www.max-tron.com 

•  Listing Program

1. Perhatikan setting register port B. Kita telah men-set port B sebagai output.

2. Perhatikan bagian listing kode ADC

terlihat setting register-register yang mempengaruhi, yaitu ADMUX, ADCSRA, SFIOR.

3. Sekarang kita mendeklarasikan variable unsigned char didalam fungsi main. Dipilih

unsigned char karena tadi pada saat setting ADC (langkah ke 5) kita meng-enable-kan

box use 8 bit, yang berarti kita memilih ADC 8 bit. Berikut pendeklarasian variabelnya,

4. Nilai hasil konversi ADC ditempatkan dengan nama variable adc_data[n]. Berikut listing

kode untuk mendapatkan nilai hasil konversi ADC dan menampilkannya pada 8 bit

output port B.

5. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9.

Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

MAX-TRON 33

Page 34: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 34/52

 

http:// www.max-tron.com 

6. Klik Program, jika ada kesalahan periksa kembali setting hardware.

7. Putar putar potensiometer, jika langkah langkah diatas telah benar output pada led array

akan menunjukkan nilai dari ADC.

EXERCISE

Putar potensiometer pada posisi tertentu, lakukan perhitungan nilai hasil pembacaan ADC.

Bandingkan nilai hasil perhitungan dengan tegangan potensiometer yang dibaca dengan

menggunakan multitester. 

MAX-TRON 34

Page 35: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 35/52

 

http:// www.max-tron.com 

BAB 5

TIMER/COUNTER

Timer dan counter adalah dua fasilitas yang memiliki perangkat yang sama, seperti

halnya register penampungnya (TCNTx). Ketika difungsikan sebagai timer, maka register

penampung tersebut berisikan jumlah waktu yang terlampaui tiap selang waktu tertentu.

Besar selang waktu tersebut dapat disetting sesuai dengan kebutuhan. Jika dipakai sebagai

counter, maka register penampung tersebut digunakan untuk menyimpan data hasil

perhitungan terakhir. Saat difungsikan sebagai counter, maka masuk melewati pin TO dan 

T1. Register untuk mengatur kapan timer difungsikan sebagai timer dan kapan sebagai

counter adalah TCCRx.

ATMEGA8535 memiliki fasilitas 3 buah timer/counter yaitu timer/counter0 8 bit,

timer/counter1 16 bit, dan timer/counter2 8 bit. 8 bit dan 16 bit adalah jumlah data yang

bisa ditampung pada register penampungnya. Pada bab ini akan didemonstrasikan 2

aplikasi praktik, dengan tujuan peserta bisa membedakan fungsi dari timer dan counter pada

mikrokontroller.

PERANGK AT K ERAS

Perangkat keras yang dibutuhkan untuk aplikasi timer adalah sebagai berikut:

• ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).

• Input/output-board M.B.3.6. (mengacu pada bab 3).

APLIKASI PRAK TIK

APLIKASI 1: TIMER

•  Setting hardware

1. Hubungkan PORTC universal board dengan port OUTPUT pada input/output board (led

array).

2. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan

downloader.

3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.

MAX-TRON 35

Page 36: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 36/52

 

http:// www.max-tron.com 

•  Programming:

1. Buka CV AVR., pilih File->New->Project.  

2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.4. Setting port C sebagai output (out).

5. Klik tab Timers, pilih tab timer1 kemudian setting seperti pada gambar.

6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.

7. Buat direktori dengan nama timer.8. Save file CV AVR dengan nama timer pada direktori timer.

9. Save file .C dengan nama timer.c pada direktori timer.

10. Save file project dengan nama timer.prj pada direktori timer.

•  Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan

memilih menu project >> configure. 

2. Pilih tabafter make

, aktifkanprogram the chip

.

MAX-TRON 36

Page 37: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 37/52

 

http:// www.max-tron.com 

•  Listing Program

1. Kita telah menyetting port C sebagai output, dengan nilai awal 0 (low).

2. Sekarang perhatikan bagian timer/counter0 initialization. 

pada listing diatas terlihat register register yang mempengaruhi. TCNT1H dan TCNT1L

adalah register untuk menampung jumlah hitungan waktu.

MAX-TRON 37

Page 38: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 38/52

 

http:// www.max-tron.com 

3. Pada bab ini kita akan coba membuat program dimana nilai pada port C, yang

dinyatakan dengan led pada input/output board, akan bertambah apabila timer1 

overflow. Sekarang perhatikan fungsi interrupt timer1_ovf_isr(),  fungsi ini akan

dieksekusi apabila timer1 overflow (ingat fungsi dasar interrupt!!). Tambahkan listingkode seperti berikut,

overflow adalah kondisi dimana nilai register maksimum. (kondisi register FFFF atau

65535)

4. Pada listing program diatas TCNT1H dan TCNT1L merupakan register 8 bit yang

digabung menjadi 16 bit. TCNT1H dan TCNT1L menyatakan nilai awalan dimana

hitungan mulai dilakukan.

5. Harga nilai awalan timer adalah 159F (bentuk bilangan hexa) atau 5535 (dalam bentuk

desimal). Timer1 akan overflow jika hitungan telah mencapai FFFF(hexa)/65535(biner).

6. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9.

Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

7. Klik Program, jika ada kesalahan periksa kembali setting hardware.

8. Perhatikan nyala lampu pada input/output-board. Nilai port C akan bertambah terus jika

timer1 overflow.

MAX-TRON 38

Page 39: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 39/52

 

http:// www.max-tron.com 

APLIKASI 2: COUNTER

•  Setting hardware

1. Hubungkan PORTC universal board dengan port OUTPUT pada input/output board (led

array).

2. Hubungkan PORTB universal board dengan port INPUT pada input/output board (push-

button array).

3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan

downloader.

4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.

•  Programming:

1. Buka CV AVR., pilih File->New->Project.  2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.

4. Setting port C sebagai output (out), PORTB.1 sebagai input (in) dengan pull-up

resistor.

MAX-TRON 39

Page 40: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 40/52

 

http:// www.max-tron.com 

5. Klik tab Timers, pilih tab timer1 kemudian setting seperti pada gambar.

6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.

7. Buat direktori dengan nama counter.

8. Save file CV AVR dengan nama counter pada direktori counter.

9. Save file .C dengan nama counter.c pada direktori counter.

10. Save file project dengan nama conter.prj pada direktori counter.

•  Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan

memilih menu project >> configure. 

2. Pilih tab after make, aktifkan program the chip.

.

MAX-TRON 40

Page 41: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 41/52

 

http:// www.max-tron.com 

•  Listing Program

1. Kita telah menyetting port C sebagai output, dengan nilai awal 0 (low), dan

PORTB.1(T1) sebagai input dengan pull-up resistor.

2. Sekarang perhatikan bagian timer/counter0 initialization. 

register penampung TCNT1H dan TCNT1L diberikan nilai awalan FFFA (hexa) atau

65530 (decimal). Ini berarti untuk mencapai overflow (kondisi register FFFF atau 65535)

register hanya membutuhkan 5 hitungan.

3. Perhatikan bagian fungsi interrupt timer1_ovf_isr(), dapat dilihat nilai awalan register

penampung. Interrupt akan dijalankan jika pin T1 mengalami perubahan kondisi dengan

mode rising edge sebanyak 5 kali. Tambahkan listing kode seperti dibawah.

MAX-TRON 41

Page 42: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 42/52

 

http:// www.max-tron.com 

4. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9.

Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

5. Klik Program the chip, jika ada kesalahan periksa kembali setting hardware.

6. Tekan push-button chanel 1 sebanyak 5 kali, perhatikan perubahan nyala lampu pada

led array input/output-board.

EXERCISE

Buatlah program aplikasi counter dengan mode trigger yang berbeda (falling edge). Coba

gunakan timer/counter0 dengan mode dan hitungan yang berbeda beda.

MAX-TRON 42

Page 43: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 43/52

 

http:// www.max-tron.com 

BAB 6

PWM (Pulse Widt h Modul at ion)

PWM (Pulse Width Modulation) adalah teknik mendapatkan efek sinyal analog dari

sebuah sinyal digital yang terputus-putus. PWM dapat dibangkitkan hanya dengan

menggunakan digital i/o yang difungsikan sebagai output.

Gambar 6.1: contoh PWM dengan duty cycle 50%

Pada contoh gelombang diatas, perbandingan waktu antara sinyal high (1) dan

sinyal low (0) adalah sama. Gelombang diatas dikatakan memiliki duty cycle 50%. Duty

cycle adalah perbandingan antara lebar sinyal high (1) dengan lebar keseluruhan siklus

(cycle). Jika amplitudo gelombang PWM adalah 5 volt, maka tegangan rata rata (seolah olah

analog) yang kita dapatkan adalah 2,5 volt. Berikut contoh gelombang PWM dengan duty

cycle 10%, jika amplitudo gelombang 5 volt maka akan didapatkan tegangan rata rata

analog 0,5 volt.

Gambar 6.2: contoh PWM dengan duty cycle 10%

Pada ATMEGA8535 ada 2 cara membangkitkan PWM, yang pertama PWM dapat

dibangkitkan dari port input/outputnya yang difungsikan sebagai output. Yang kedua adalah

dengan memanfaatkan fasilitas PWM dari fungsi timer/counter yang telah disediakan.

Dengan adanya fasilitas ini proses pengaturan waktu high/low sinyal digital tidak akan

mengganggu urutan program lain yang sedang dieksekusi oleh processor. Selain itu,

dengan menggunakan fasilitas ini kita tinggal memasukkan berapa porsi periode waktu on

dan off gelombang PWM pada sebuah register. OCR1A, OCR1B dan OCR2 adalah register

tempat mengatur duty cycle PWM.

Pada bab ini akan diperagakan bagaimana cara mendapatkan sinyal analog dari

sebuah sinyal digital dengan menggunakan teknik PWM.

MAX-TRON 43

Page 44: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 44/52

 

http:// www.max-tron.com 

PERANGK AT K ERAS

Perangkat keras yang dibutuhkan untuk aplikasi PWM adalah sebagai berikut:

• ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).

• Single conector.

• Input/output-board.

APLIKASI PRAK TIK

•  Setting hardware

1. Hubungkan PORTD.4 dan PORTD.5 pada port OUTPUT input/output-board

menggunakan single conector.

2. Hubungkan SPI port pada universal board dengan port parallel PC menggunakandownloader.

3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.

•  Programming:

1. Buka CV AVR., pilih File->New->Project.  

2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.

4. Setting PORTD.4 (OC1B) dan PORTD.5 (OC1A) sebagai output (out).

MAX-TRON 44

Page 45: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 45/52

 

http:// www.max-tron.com 

5. Klik tab Timers, pilih tab timer1 kemudian setting seperti pada gambar. Perhatikan

setting mode non-inverted pada out A dan mode inverted pada out B.

6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.

7. Buat direktori dengan nama pwm.

8. Save file CV AVR dengan nama pwm pada direktori pwm.

9. Save file .C dengan nama pwm.c pada direktori pwm.

10. Save file project dengan nama pwm.prj pada direktori pwm.

•  Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan

memilih menu project >> configure. 

2. Pilih tab after make, aktifkan program the chip.

MAX-TRON 45

Page 46: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 46/52

 

http:// www.max-tron.com 

•  Listing Program

1. Kita telah menyetting PORTD.4 dan PORTD.5 sebagai output, dengan nilai awal 0

(low).

2. Perhatikan register yang mempengaruhi, sama seperti register pada timer/counter pada

bab 6.

3. Untuk mengatur porsi on dan off kita berikan nilai pada register OCR1A dan OCR1B 

pada looping while. Nilai maksimum dari OCR1A dan OCR1B adalah 1023 (10bit) 

seperti pada setting kita sebelumnya (langkah 5). Tuliskan listing kode seperti dibawah,

4. Kita telah memberikan nilai 800 pada OCR1A dan 800 pada OCR1B (skala 1023).

MAX-TRON 46

Page 47: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 47/52

 

http:// www.max-tron.com 

5. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9.

Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

6. Klik Program the chip, jika ada kesalahan periksa kembali setting hardware.

7. Amati nyala lampu pada input/output-board.

8. Ulangi dengan memberikan nilai OCR1A dan OCR1B yang berbeda beda.

EXERCISE

Buatlah program aplikasi PWM untuk mengendalikan arah dan kecepatan putaran motor

listrik DC.

Gunakan motor Kontrol MAX-TRON H-bridge M.B.4.3.

MAX-TRON 47

Page 48: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 48/52

 

http:// www.max-tron.com 

BAB 7

USART

(Universa l Synchronous and Asynchronous Ser ia l

Receiver and Transmi t ter )

Untuk dapat berhubungan dengan piranti lain (ex: mikrokontroller - komputer,

mikrokontroller-mikrokontroller dll), mikrokontroller dilengkapi dengan fasilitas komunikasi.

Ada 2 jenis fasilitas komunikasi yang dikenal, yaitu komunikasi parallel dan komunikasi

serial. Sesuai dengan namanya pada komunikasi parallel transfer data dilakukan secara

serempak/bersamaan, sedangkan pada komunikasi serial data dikirim secara bergantian.

Komunikasi secara parallel memiliki kelebihan pada kecepatan transfer data, tetapi kualitas

suatu komunikasi tidak hanya ditentukan oleh kecepatannya saja, ada faktor lain yang perlu

diperhatikan yaitu jarak dan ke-praktis-an. Komunikasi parallel memerlukan jalur data yang

lebih banyak, yang berarti pengkabelan (wiring) juga akan semakin banyak. Pada

komunikasi serial biasanya hanya dibutuhkan 2 sampai 3 kabel saja, jadi bisa dikatakan

komunikasi serial lebih praktis dibanding parallel apalagi jika komunikasi dilakukan dengan jarak yang jauh.

Agar komunikasi serial dapat berjalan dengan baik dibutuhkan suatu protocol/aturan

komunikasi. Pada ATMEGA8535 terdapat beberapa protocol komunikasi serial, yaitu :

USART, SPI , dan I2C. Bab ini akan membahas protocol komunikasi USART, serta

mempraktikkan komunikasi antar dua buah mikrokontroller.

Dengan menggunakan protocol USART ada 2 jenis mode komunikasi, yaitu :

Sinkron, dan asinkron. Pada mode sinkron, mikrokontroller dan peripheral yang

berkomunikasi akan menggunakan clock/detak kerja yang sama, sedangkan pada mode

asinkron mikrokontroller dan peripheral bisa bekerja pada clock-nya masing-masing.

PERANGK AT K ERAS

Perangkat keras yang dibutuhkan untuk aplikasi ADC adalah sebagai berikut:

• ATMEGA8535 universal board + isp_dongle (mengacu pada bab 3).

• Input/output-board.

• Kabel USART.

MAX-TRON 48

Page 49: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 49/52

 

http:// www.max-tron.com 

APLIKASI PRAK TIK

Pada aplikasi ini akan didemokan komunikasi USART antara mikrokontroller satu

peserta dengan peserta lainnya.

•  Setting hardware

1. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan

downloader.

2. Hubungkan USART kabel pada USART port universal board.

3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala.

•  Programming:

1. Buka CV AVR., pilih File->New->Project.  

2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR.

3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.

4. Klik tab port, setting PORTC sebagai input dan PORTB sebagai OUTPUT.

5. Klik tab USART, setting seperti gambar dibawah.

MAX-TRON 49

Page 50: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 50/52

 

http:// www.max-tron.com 

6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit.

7. Buat direktori dengan nama usart.

8. Save file CV AVR dengan nama usart pada direktori usart.

9. Save file .C dengan nama usart.c pada direktori usart.

10. Save file project dengan nama usart.prj pada direktori usart.

•  Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan

memilih menu project >> configure. 

2. Pilih tab after make, aktifkan program the chip.

•  Listing Program

1. Perhatikan bagian atas program, pengarah preprocessor stdio.h telah ditambahkan

secara otomatis oleh codevisionwizard.

MAX-TRON 50

Page 51: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 51/52

 

http:// www.max-tron.com 

2. Perhatikan setting register DDRB, DDRC, dan PORTB. Kita telah menyetting PORTB

sebagai output dan PORTC sebagai input dengan pull up resistor.

3. Berikut adalah setting register-register yang mempengaruhi,

4. Kita akan membuat program agar informasi/data dari input mikrokontroller satu peserta

dapat ditangkap oleh mikrokontroller peserta lain dan ditampilkan pada input/output

board. Kita awali dengan mendeklarasikan variable yang akan digunakan pada fungsi

main,

5. Untuk peserta A tambahkan listing kode berikut pada looping while,

MAX-TRON 51

Page 52: Training Micro Controller for Beginner (B. Arifianto

5/7/2018 Training Micro Controller for Beginner (B. Arifianto - slidepdf.com

http://slidepdf.com/reader/full/training-micro-controller-for-beginner-b-arifianto 52/52

 

http:// www.max-tron.com 

6. Untuk peserta B tambahkan listing kode berikut pada looping while,

7. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9.

Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

8. Klik Program the chip, jika ada kesalahan periksa kembali setting hardware.

9. Jika anda peserta A, tekan push-button pada input/output, tanyakan perubahan nyala

led pada input/output-board partner anda.

10. Jika anda peserta B, amati perubahan nyala led hasil input dari partner anda.

MAX-TRON 52