Anda di halaman 1dari 10

1

LAPORAN
PRAKTIKUM KOMPARATOR ANALOG DALAM MIKROKONTROLER
ATmega8535

Disusun untuk Memenuhi Tugas Matakuliah LAB ELKA-01


Yang Dibimbing oleh Bapak Mahfud Jiono., S.Pd., M.Eng.

Oleh

Oggie Sabila Hendradwika ( 160534611673 )

OFFERING C

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK ELEKTRO
SEPTEMBER 2018
2
MODUL II
KOMPARATOR ANALOG DALAM MIKROKONTROLER ATmega8535

TUJUAN
 Mahasiswa dapat menjelaskan cara menggunakan Komparator Analog dalam
mikrokontroler ATmega8535.
 Mahasiswa dapat mempraktekkan pembandingan data analog dengan Komparator
Analog dalam mikrokontroler ATmega 8535.

EEPROM
Komparator Analog membandingkan input di kaki input positif AIN0 (PORTB.2) dan
input negatif AIN1 (PORTB.3). Ketika tegangan input positif AIN0 lebih besar daripada
tegangan input negatifi AIN1, maka output Analog Comparator-ACO akan berlogika 1.
Keluaran komparator dapat memicu fungsi Timer/Counter 1 Input Capture. Selain itu,
komparator analog dapat memicu interrupt yang sumbernya berasal dari output komparator.
Keluaran komparator dapat membangkitkan interrupt jika logikanya falling edge, rising edge
atau toggle.
Register yang digunakan untuk mengakses Komparator Analog ada 2 yaitu:
- SFIOR - Special Function IO Register
- ACSR – Analog Comparator Control and Status Register

 SFIOR - Special Function IO Register

 Bit 3 – ACME: Analog Comparator Multiplexer Enable


Jika bit ini diberi logika 1 dan ADC tidak diaktifkan (ADEN dan ADCSRA diberi logika 0),
maka ADC multiplekser akan memilih input negatif Komparator Analog. Jika bit ini
diberi logika 0, AIN1 digunakan sebagai input negatif Komparator Analog.
ADC0..7 dapat digunakan untuk menggantikan input negatif komparator analog. Jika
multiplekser ADC digunakan untuk memilih input tersebut, maka sebagai
konsekuensinya ADC harus dinonaktifkan. Jika bit ACME diaktifkan dan ADC
dinonaktifkan, maka MUX2..0 dalam ADMUX akan memilih pin input untuk
menggantikan input negatif komparator analog, seperti dalam Tabel 2.1. Jika ACME
diberi logika 0 atau ADEn diberi logika 1, maka AIN1 mendapat masukan dari input
negatif komparator analog.

Tabel 2.1 Analog Comparator Multiplexed Input


3

 ACSR – Analog Comparator Control and Status Register

 Bit 7 – ACD: Analog Comparator Disable


Jika bit ini diberi logika 1,maka Komparator Analog dinonaktifkan. Ketika mengubah
bit ADC, Interrupt Komparator Analog harus dinonaktifkan dengan memberi logika 0
pada bit ACIE supaya tidak terjadi interrupt ketika bit ini diubah.
 Bit 6 – ACBG: Analog Comparator Bandgap Select
Jika bit ini di-set, tegangan referensi yang tetap akan menggantikan input positif
Komparator Analog. Jika di-clear maka AIN0 digunakan sebagai input positif
Komparator Analog.
 Bit 5 – ACO: Analog Comparator Output
Output Komparator Analog disinkronkan dan terhubung ke ACO.Sinkronisasi
membutuhkan 1-2 siklus clock.
 Bit 4 – ACI: Analog Comparator Interrupt Flag
Bit ini di-set oleh hardware jika output komparator memicu mode interrupt yang
didefinisakn oleh ACIS1 dan ACIS0. Rutin Analog Comparator Interrupt dieksekusi jika
bit ACIE dan bit I dalam SREG diset. ACI di-clear oleh hardware ketika mengeksekusi
interrupt tersebut atau dengan menulis logika 1 ke flag tersebut.
 Bit 3 – ACIE: Analog Comparator Interrupt Enable
Jika bit ACIE dan Bit I dalam SREG diberi logika 1 maka Analog Comparator Interrupt
diaktifkan.
 Bit 2 – ACIC: Analog Comparator Input Capture Enable
Jika diberi logika 1, maka bit ini akan mengaktifkan fungsi Input Capture dalam
Timer/Counter1 untuk ditrigger oleh Komparator Analog. Outpur komparator secara
langsung akan terhubung dengan logika Input Capture dan membuat komparator
menggunakan fitur noise canceler dan pemilihan egde pada interrupt
Timer/Cpunter1 Input Capture. Untuk membuat komparator memicu
Timer/Counter1 Input Capture Interrupt, maka bit TICIE1 dalam register TIMSK harus
diset.
 Bit 1,0 – ACIS1, ACIS0: Analog Comparator Interrupt Mode Select
Bit ini menentukan even komparator mana yang memicu Analog Comparator
Interrupt. Ketika bit ACIS1/ACIS0 diubah, Analog Comparator interrupt harus
dinonaktifkan dengan memberi logika 0 di bit Interrupt Enable dalam register ACSR
supaya tidak terjadi interrupt ketika bit tersebut diubah.

Tabel 2.2 Setting ACIS1/ACIS0

ALAT DAN BAHAN YANG DIGUNAKAN


 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
 1 set modul praktikum mikrokontroler
4
 1 buah multimeter digital

PROSEDUR

1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 2.1. Hubungkan soket
jumper PORTC pada minimum system dengan soket jumper LED/OUTPUT pada I/O.

Kabel Kabel hitam


Kabel USB downloader Minimum I/O
ISP Downloader
system AVR

Gambar 2.1 Diagram antarmuka mikrokontroler dengan I/O.

2. Buka program Code Vision AVR


3. Buatlah project baru. Setelah mengeset chip dan clock, set bagian PORTC sebagai
output dengan output value = 0. Set juga pada tab Analog Comparator seperti berikut
ini.

4. Kemudian simpanlah file tersebut sehingga pada program bagian inisialisasi terlihat
sebagai berikut:

// Port C initialization
PORTC=0x00;
DDRC=0xFF;

// Analog Comparator initialization


// Analog Comparator: On
// The Analog Comparator's positive input is
// connected to the Bandgap Voltage Reference
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x40;
SFIOR=0x00;

5. Buat program untuk menyalakan LED dengan pola tertentu jika ACO (ACSR.5) berlogika
0 dan menyalakan LED dengan pola yang lain jika ACO (ACSR.5) berlogika 1.
5
6. Hubungkan AIN1 (PORTB.3) ke output potensiometer. Ukur tegangan di AIN0
(PORTB.2) kemudian catat di Tabel 2.3. Putar potensiometer supaya tegangan di AIN1
lebih kecil daripada AIN0. Lihat nyala LED dan catat di Tabel 2.3.
7. Putar potensiometer supaya tegangan di AIN1 lebih besar daripada AIN0. Lihat nyala
LED dan catat di Tabel 2.3.
8. Buatlah project baru. Setelah mengeset chip dan clock, set bagian PORTC sebagai
output dengan output value = 0. Set juga pada tab Analog Comparator seperti berikut
ini.

9. Kemudian simpanlah file tersebut sehingga pada program bagian inisialisasi terlihat
sebagai berikut:

// Port C initialization
PORTC=0x00;
DDRC=0xFF;

// connected to the ADC multiplexer


// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x40;
SFIOR=0x08;

10. Tambahkan setting ADMUX untuk pemilihan input ADC Multiplexer:


ADMUX=0x00; // input ADC dari PORTA.0(ADC channel 0)

11. Buat program untuk menyalakan LED dengan pola tertentu jika ACO (ACSR.5) berlogika
0 dan menyalakan LED dengan pola yang lain jika ACO (ACSR.5) berlogika 1.
12. Hubungkan ADC0 (PORTA.0) ke output potensiometer. Ukur tegangan di AIN0
(PORTB.2) kemudian catat di Tabel 2.4. Putar potensiometer supaya tegangan di ADC0
lebih kecil daripada AIN0. Lihat nyala LED dan catat di Tabel 2.4.
13. Putar potensiometer supaya tegangan di ADC0 lebih besar daripada AIN0. Lihat nyala
LED dan catat di Tabel 2.4.
14. Rakitlah rangkaian sensor optocoupler seperti dalam Gambar 2.2 di project board.
Hubungkan keluaran sensor ke input AIN0 (PORTB.2) dan hubungkan AIN1 (PORTB.3)
ke output potensiometer.

Gambar 2.2 Rangkaian sensor optocoupler


6

15. Buatlah project baru. Setelah mengeset chip dan clock, set bagian PORTC sebagai
output dengan output value = 0. Set juga pada tab Analog Comparator seperti berikut
ini.

16. Kemudian simpanlah file tersebut sehingga pada program bagian inisialisasi terlihat
sebagai berikut:

// Port B initialization
PORTB=0x00;
DDRB=0xFF;

// Analog Comparator initialization


// Analog Comparator: On
// Interrupt on Rising Output Edge
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x0B;
SFIOR=0x00;

17. Buat program utama untuk menyalakan LED dengan pola tertentu dan program dalam
Analog Comparator interrupt service routine untuk menyalakan LED dengan pola yang
lain.

// Analog Comparator interrupt service routine


interrupt [ANA_COMP] void ana_comp_isr(void)
{
// Place your code here

18. Ukur tegangan output sensor ketika sensor optocoupler terhalang dan sensor
optocoupler tidak terhalang kemudian catat di Tabel 2.5. Set tegangan potensiometer
supaya berada di antara kedua tegangan tersebut.
19. Lihat nyala LED ketika sensor optocoupler tidak terhalang, terhalang, dan tidak
terhalang, kemudian catat di Tabel 2.6.
20. Ulangi langkah 14-18 untuk Mode Interrupt Falling Edge dan Toggle.
7

DATA HASIL PERCOBAAN

1. Program Komparator Analog dengan Bandgap Reference


#include <mega8535.h>

void main(void)
{

PORTC=0x00;
DDRC=0xFF;

ACSR=0x40;
SFIOR=0x00;

while (1)
{
if(ACSR&(1<<ACO))
PORTC=0XF0;
else
PORTC=0X0F;
}
}

2.
Tabel 2.3 Komparator Analog dengan Bandgap Reference
No Tegangan AIN0 (V) Tegangan AIN1 (V) Nyala LED
1

0.850 V 0.1 mV

0xF0
2

0.771 V 0.1 mV

0x0F

3. Program Komparator Analog dengan Bandgap Reference dan ADC Multiplexer


#include <mega8535.h>

void main(void)
{

PORTC=0x00;
DDRC=0xFF;

ACSR=0x40;
SFIOR=0x08;

ADMUX=0X00;

while (1)
{
if(ACSR&(1<<ACO))
8
PORTC=0XF0;
else
PORTC=0X0F;
}
}

4.
Tabel 2.4 Komparator Analog dengan Bandgap Reference dan ADC Multiplexer
No Tegangan AIN0 (V) Tegangan ADC0 (V) Nyala LED
1

0.511 V 0.3 mV

0xF0
2

0.434 V 0.2 mV

0x0F

5. Program Komparator Analog dengan Interrupt


a) Rising Output Edge
#include <mega8535.h>
#include <delay.h>

interrupt [ANA_COMP] void ana_comp_isr(void)


{
PORTC=0XF0;
delay_ms(200);
}

void main(void)
{
PORTC=0x00;
DDRC=0xFF;
ACSR=0x0B;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")

while (1)
{
PORTC=0X0F;
}
}

b) Falling Output Edge


#include <mega8535.h>
#include <delay.h>

interrupt [ANA_COMP] void ana_comp_isr(void)


{
PORTC=0XF0;
delay_ms(200);
}
9

void main(void)
{
PORTC=0x00;
DDRC=0xFF;
ACSR=0x0A;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")

while (1)
{
PORTC=0X0F;
}
}

c) Output Toggle
#include <mega8535.h>
#include <delay.h>

interrupt [ANA_COMP] void ana_comp_isr(void)


{
PORTC=0XF0;
delay_ms(200);
}

void main(void)
{
PORTC=0x00;
DDRC=0xFF;
ACSR=0x08;
SFIOR=0x00;

// Global enable interrupts


#asm("sei")

while (1)
{
PORTC=0X0F;
}
}

6.
Tabel 2.5 Pengukuran Tegangan
Tegangan ketika Tegangan
Tegangan ketika
sensor tidak referensi/potensiometer
sensor terhalang (V)
terhalang (V) (V)
258,4 V 4,87 V 2,5 V

Tabel 2.6 Komparator Analog dengan Interrupt


No Interrupt Mode Kondisi sensor Nyala LED
Tidak terhalang
Rising Output
1 Terhalang
Edge
Tidak terhalang
Tidak terhalang
Falling Output
2 Terhalang
Edge
Tidak terhalang
3 Output Toggle Tidak terhalang
10
Terhalang
Tidak terhalang

ANALISIS DATA

1. Simpulkan prinsip kerja Komparator Analog yang ada di dalam mikrokontroler.


2. Sebutkan pilihan input Komparator Analog baik input positif maupun input negatif.
3. Simpulkan hasil praktikum yang tercantum dalam Tabel 2.6.