PERCOBAAN 6
APLIKASI LANJUTAN MIKROKONTROLER AVR
Oleh :
KELOMPOK 26
LABORATORIUM ELEKTRONIKA
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS DIPONEGORO
Aplikasi Lanjutan Mikrokontroler AVR
1. Tujuan Percobaan
1. Mempelajari dasar-dasar teknik opto-isolation dengan komponen Opto-
TRIAC.
2. Mempelajari proses pembangkitan sinyal audio secara digital dengan
metode Direct Digital Synthesis (DDS).
3. Mengetahui cara mengendalikan rangkaian bertegangan tinggi secara
terisolasi dengan rangkaian bertegangan rendah.
4. Mengaplikasikan metode DDS untuk menghasilkan nada dengan
mikrokontroler AVR.
2. Dasar Teori
2.1 Optocoupler
Optocoupler adalah komponen elektronika yang berfungsi sebagai
penghubung berdasarkan cahaya optik. Pada dasarnya optocoupler terdiri dari 2 bagian
utama yaitu transmitter yang berfungsi sebagai pengirim cahaya optik dan receiver
yang berfungsi sebagai pendeteksi sumber cahaya. Masing-masing bagian optocoupler
(transmitter dan receiver) tidak memiliki hubungan konduktif rangkaian secara
langsung tetapi dibuat sedemikian rupa dalam satu kemasan komponen.
Optocoupler dengan kombinasi LED-phototransistor adalah optocoupler
yang terdiri dari sebuah komponen LED (Light Emitting Diode) yang memancarkan
cahaya inframerah (IR LED) dan sebuah komponen semikonduktor yang peka terhadap
cahaya (phototransistor) sebagai bagian yang digunakan untuk mendeteksi cahaya
inframerah yang dipancarkan oleh IR LED. Gambar 1 menunjukan gambar rangkaian
optocoupler.
Gambar 1. Rangkaian optocoupler
Dari Gambar 1 dapat dijelaskan bahwa arus listrik yang mengalir melalui IR
LED akan menyebabkan IR LED memancarkan sinyal cahaya Inframerahnya.
Intensitas cahaya tergantung pada jumlah arus listrik yang mengalir pada IR LED
tersebut. Kelebihan cahaya inframerah adalah pada ketahanannya yang lebih baik jika
dibandingkan dengan cahaya yang tampak. Cahaya inframerah tidak dapat dilihat
dengan mata telanjang. Cahaya inframerah yang dipancarkan tersebut akan dideteksi
oleh phototransistor dan menyebabkan terjadinya hubungan atau switch ON pada
phototransistor. Prinsip kerja phototransistor hampir sama dengan transistor bipolar
biasa, yang membedakan adalah terminal basis (base) phototransistor merupakan
penerima yang peka terhadap cahaya.
2.2 TRIAC
TRIAC adalah perangkat semikonduktor berterminal tiga yang berfungsi
sebagai pengendali arus listrik. Nama TRIAC ini merupakan singkatan dari Triode for
Alternating Current (Trioda untuk arus bolak balik). Sama seperti SCR, TRIAC juga
tergolong sebagai Thyristor yang berfungsi sebagai pengendali atau switching. Namun,
berbeda dengan SCR yang hanya dapat dilewati arus listrik dari satu arah
(unidirectional), TRIAC memiliki kemampuan yang dapat mengalirkan arus listrik ke
kedua arah (bidirectional) ketika dipicu. Terminal Gate TRIAC hanya memerlukan
arus yang relatif rendah untuk dapat mengendalikan aliran arus listrik AC yang tinggi
dari dua arah terminalnya. TRIAC sering juga disebut dengan Bidirectional Triode
Thyristor.Pada dasarnya, sebuah TRIAC sama dengan dua buah SCR yang disusun dan
disambungkan secara antiparalel (paralel yang berlawanan arah) dengan Terminal
Gerbang atau Gate-nya dihubungkan bersama menjadi satu. Jika dilihat dari
strukturnya, TRIAC merupakan komponen elektronika yang terdiri dari 4 lapis
semikonduktor dan 3 Terminal, Ketiga Terminal tersebut diantaranya adalah MT1,
MT2 dan Gate. MT adalah singkatan dari Main Terminal.
2.3 Opto-TRIAC
Rangkaian Opto-TRIAC dapat dilihat pada Gambar 3.
Gambar 3. Opto-TRIAC
Seperti terlihat pada Gambar 3 yang merupakan diagram dari IC Opto-TRIAC.
Opto-TRIAC sendiri merupakan sebuah komponen elektronik yang digunakan untuk
mengontrol tegangan tinggi AC yang dimana dibutuhkan isolasi elektrik dengan
tegangan tinggi pada output dan tegangan rendah pada input-nya. Penggunaan Opto-
TRIAC biasa digunakan untuk beban yang bersifat induktif seperti motor AC.
Gambar 6. Konfigurasi
4. Rangkaian Percobaan
Rangkaian sistem minimum ATMEL Atmega 8535/16/32
5. Langkah Percobaan
1. Menyiapkan modul yang akan digunakan.
2. Menyiapkan software CodeVision AVR 2.05.3.
3. Merangkai modul yang akan digunakan dalam praktikum.
4. Melakukan percobaan sesuai variasi berikut ini:
void main(void)
{
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) |
(0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4)
| (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
while (1)
{
tunda=read_adc(0);
delay=191-(0.75*tunda);
}
}
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x03;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
while (1)
{
nada_g1(0.3);
jeda(0.1);
nada_g1(0.3);
jeda(0.1);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.8);
jeda(0.05);
nada_b1(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(1.2);
jeda(0.05);
. //dan seterusnya
.
.
.
break;
}
}
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(758);
}
void f2()
{
SPEAKER_OUT_0 = HIGH;
SPEAKER_OUT_1 = LOW;
delay_us(716);
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(716);
}
void g2()
{
SPEAKER_OUT_0 = HIGH;
SPEAKER_OUT_1 = LOW;
delay_us(638);
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(638);
}
void nada_c1(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(523 * (ketuk));i++)
{
c1();
};
}
void nada_c2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1047 * (ketuk));i++)
{
c2();
};
}
void nada_d2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1175 * (ketuk));i++)
{
d2();
};
}
void nada_e2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1319 * (ketuk));i++)
{
e2();
};
}
void nada_f2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1397 * (ketuk));i++)
{
f2();
};
}
void nada_g2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1567 * (ketuk));i++)
{
g2();
};
}
void jeda(float ketuk)
{
delay_ms(2000 * (ketuk));
}
void main(void)
{
DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3)
| (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) |
(0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
while (1)
{
tunda=read_adc(0);
delay=191-(0.75*tunda);
}
}
7.1.2 Analisa Hasil Percobaan
Hasil percobaan dimmer beban resistif dengan potensiometer pada saat cahaya
lampu maksimal terlihat seperti Gambar 18.
Pada Gambar 18 dapat dilihat pada input yang diberikan oleh potensiometer
dengan nilai 255 lampu menyala terang, hal ini karena pada rangkaian dimmer beban
220 VAC resistif menggunakan konfigurasi active high yang dimana konfigurasi active
high ini memberikan output hasil yang berbanding lurus dengan nilai ADC yang
diberikan. Hasil percobaan pada saat cahaya lampu medium dapat dilihat pada Gambar
19.
Gambar 19. Hasil percobaan pada saat cahaya lampu medium
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x03;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
while (1)
{
nada_g1(0.3);
jeda(0.1);
nada_g1(0.3);
jeda(0.1);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_c2(0.8);
jeda(0.05);
nada_b1(0.4);
jeda(0.05);
nada_c2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(0.4);
jeda(0.05);
nada_d2(1.2);
jeda(0.05);
. //dan seterusnya
.
.
.
break;
}
}
Subrutin Penghasil Nada (tonelib.c)
#include "tonelib.h"
#include <io.h>
#include <delay.h>
void tone_wr_init()
{
DIR_OUT_0 = DIR_OUT_1 = HIGH;
}
void c1()
{
SPEAKER_OUT_0 = HIGH;
SPEAKER_OUT_1 = LOW;
delay_us(1911);
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(1911);
}
void c2()
{
SPEAKER_OUT_0 = HIGH;
SPEAKER_OUT_1 = LOW;
delay_us(955);
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(955);
}
void d2()
{
SPEAKER_OUT_0 = HIGH;
SPEAKER_OUT_1 = LOW;
delay_us(851);
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(851);
}
void e2()
{
SPEAKER_OUT_0 = HIGH;
SPEAKER_OUT_1 = LOW;
delay_us(758);
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(758);
}
void f2()
{
SPEAKER_OUT_0 = HIGH;
SPEAKER_OUT_1 = LOW;
delay_us(716);
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(716);
}
void g2()
{
SPEAKER_OUT_0 = HIGH;
SPEAKER_OUT_1 = LOW;
delay_us(638);
SPEAKER_OUT_1 = HIGH;
SPEAKER_OUT_0 = LOW;
delay_us(638);
}
void nada_c1(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(523 * (ketuk));i++)
{
c1();
};
}
void nada_c2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1047 * (ketuk));i++)
{
c2();
};
}
void nada_d2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1175 * (ketuk));i++)
{
d2();
};
}
void nada_e2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1319 * (ketuk));i++)
{
e2();
};
}
void nada_f2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1397 * (ketuk));i++)
{
f2();
};
}
void nada_g2(float ketuk)
{
unsigned int i;
for(i=0;i<(unsigned int)(1567 * (ketuk));i++)
{
g2();
};
}
void jeda(float ketuk)
{
delay_ms(2000 * (ketuk));
}
Dari ketiga variasi dapat disimpulkan yang merupakan sistem digital dapat
membangkitkan suara dengan teknik Direct Digital Synthesis.
8. Aplikasi
8.1 Direct Digital Synthesis
Frekuensi synthesizer adalah sebuah metode untuk menghasilkan sinyal analog,
biasanya sinyal sinus, dengan membangkitkan sinyal dengan waktu yang berubah –
ubah dalam bentuk digital dan kemudian bentuknya dirubah dengan digital to analog
konverter. Alat ini ditemukan di beberapa alat modern, antara lain : radio receiver, GPS
system, handphone, radio telephone, walkie – talkies, CB radio, satelit receiver, clock
generator, FM modulasi dan sebagainya. Direct Digital Synthesizer (DDS) adalah
bagian dari frekuensi synthesizer yang menggunakan metode elektronik, untuk
membuat sinyal secara digital dengan frekuensi yang berubah – ubah sesuai dengan
frekuensi acuannya. Direct Digital Synthesizer merupakan bagian penyampur sinyal
yang terdiri dari bagian digital dan bagian analog. Direct Digital Synthesizer bagian
digital juga disebut dengan Numerically Controlled Oscillator (NCO) yang terdiri dari
phase akumulator, phase truncated dan sine lookup table. Bagian analog terdiri dari
Digital to Analog Converter (DAC) dan filter. NCO merupakan blok untuk komputasi
digital, yang memberikan urutan sinyal digital saat diberikan frekuensi clock, yang
kemudian sinyal tersebut dirubah menjadi sinyal analog pada bagian analog.
.
8.3 Monitoring Suhu Atmega16 & Delphi
Sistem antar muka (interfacing) antara komputer dengan mikrokontroler sudah
banyak kita temui. Aplikasi pada industri maupun sekedar memenuhi hobi. Baik
berupa sistem controlling maupun monitoring.
Temperatur atau suhu merupakan parameter yang sering ada dalam sistem
monitoring. Ada banyak sensor yang dipakai, paling mudah dan murah adalah sensor
suhu LM35. Paket tutorial ini akan memberikan langkah – langkah membuat
monitoring suhu 2 Channel (2 Sensor) dengan mikrokontroler AVR ATmega16
ditampilkan pada LCD. Data juga dikirimkan secara serial melalui port USB ke
komputer, diolah dengan Delphi sehingga dapat ditampilkan dalam bentuk tabel dan
grafik yang cantik.
.
Fitur Hardware :
Mikrokontroler AVR ATmega16 (support ATmega8535/32)
Display LCD 2×16
3×8 Port I/O (PA, PB, PD)
Tersedia port ISP
2 buah modul sensor suhu LM35
Modul USB to SERIAL Converter
Fitur Software :
Sampling data suhu : 1 detik (dapat diubah di programnya)
Display alat : LCD
Dibuat dengan BASCOM-AVR (tersedia juga source code bahasa C) dan
Delphi 7
Tampilan tabel
Tampilan grafik
Simpan ke Notepad
Simpan ke Ms.Excel
Print data
9. Kesimpulan
1. Pada percobaan 6 ini dapat dibuktikan bahwa penggunaan optocoupler sangatlah
penting, karena menggunakan dua sistem tegangan yang berbeda yaitu tegangan 5
V DC dan 220 V AC.
2. Frekuensi synthesizer adalah sebuah metode untuk menghasilkan sinyal analog,
biasanya sinyal sinus, dengan membangkitkan sinyal dengan waktu yang berubah
– ubah dalam bentuk digital dan kemudian bentuknya dirubah dengan digital to
analog konverter.
3. Pada percobaan dimmer beban 220 VAC resistif potensiometer yang digunakan
untuk meng-input kan nilai TCNT0 dari pembacaan nilai ADC. Ketika nilai
TCNT0 bernilai 255 maka lampu menyala dengan sangat terang karena
konfigurasi rangkaiannya active high sehingga lampu tidak memiliki waktu untuk
off.
4. Ketika nilai TCNT0 bernilai diantara 64 – 254. maka lampu akan menyala dengan
relatif redup karena lampu memiliki waktu delay untuk off selama antara 0-10 ms.
5. Ketika nilai TCNT0 bernilai 63 maka lampu akan menyala redup cenderung mati
karena lampu memiliki waktu delay untuk off yang dihasilkan selama 10 ms.
6. Pada percobaan pembangkitan nada, dapat disimpulkan bahwa mikrokontroller
mebangkitkan nada dengan teknik DDS.
7. Pada percobaan pembangkitan nada, dengan bantuan software XYZ-Oscilloscope
pada smartphone Android dapat disimpulkan bahwa mikrokontroller dapat
menghasilkan suara melalui buzzer pasif.
8. Mikrokontroller dapat menghasilkan sebuah nada dengan membangkitkan
frekuensi yang kemudian outputnya dikirim ke buzzer pasif.
DAFTAR PUSTAKA
Andrianto, Heri. 2015. Pemograman Mikrokontroler AVR Atmega16 Menggunakan
Bahasa C (CodeVisionAVR), Bandung: Informatika
Bandung.
Haryatno, Joko. 2009. Jurnal. Design to develop the system appliance of detergent and
hand dryer automatically use microcontroller AT89s52.
Bandung.
https://sumuttekno.com/4-variabel-dan-tipe-data-bahasa-c/
http://zonaelektro.net/adc-analog-to-digital-converter/
http://nurcahyokun.blogspot.com/2015/03/cara-kerja-komunikasi-usart-dan-uart.html
LAMPIRAN
LABORATORIUM ELEKTRONIKA
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS DIPONEGORO