Anda di halaman 1dari 41

PRAKTIKUM MIKROPROSESOR 2019

PERCOBAAN 6
APLIKASI LANJUTAN MIKROKONTROLER AVR

Oleh :

FAJAR IMAN PRASETYO 21060117120018


APRIYAN PURBA 21060117130097
M. BRYAN REGIE PRATAMA 21060117140095

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.

Gambar 2. Simbol TRIAC

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.

2.4 Solid State Relays (SSR)


Rangkaian SSR dapat dilihat pada Gambar 4.

Gambar 4. Rangkaian SSR

Gambar 4 merupakan gambar dari rangkaian SSR. Opto-TRIAC biasanya


digunakan untuk switching pada beban AC tapi pada SSR menggunakan MOSFET
transistor yang bisa switch untuk AC maupun DC. Pada tegangan rendah SSR biasanya
terdiri dari rangkaian Opto-TRIAC. Keunggulan yang terpenting pada SSR adalah
dapat mengisolasi menyeluruh pada bagian antara tegangan rendah pada input dan
tegangan tinggi pada output.

2.5 Zero Crossing


Zero Crossing merupakan rangkaian elektronis yang berfungsi untuk
mendeteksi persilangan nol yang ada pada tegangan jala-jala. Rangkaian Zero Crossing
pada gambar dibawah akan memberikan output berupa pulsa sempit pada saat terjadi
pesilangan nol pada tegangan AC yang di deteksi. Rangkaian pembentuk dari zero
crossing berupa komparator, differensiator dan schmitt trigger. Rangkaian Zero
Crossing ini diaplikasikan pada pemberian bias tegangan gate TRIAC. Rangkaian Zero
Crossing ini sering digunakan pada perangkat pengontrolan heater AC atau beban AC
yang dikendalikan menggunakan TRIAC.

Gambar 5. Rangkaian zero crossing

2.6 Dimmer Lamp


Konfigurasi dimmer lamp dapat dilihat pada Gambar 6.

Gambar 6. Konfigurasi

Dimmer lamp atau photo-darlington dapat mengasilkan penguatan dan


sensitivitas yang lebih pada umumnya, baik digunakan pada sensor yang berhubungan
dengan cahaya. Seperti yang terlihat pada Gambar 6 konfigurasi photo-darlington yaitu
dengan menghubungkan emitter pada transistor pertama Photo-darlington ke base
pada transistor kedua dan kolektor transistor pertama dihubungkan ke kolektor
transistor kedua. Pada Photo-darlington transistor, transistor pertama menjadi
photodetector demitteran nya dihubungkan dengan base pada transistor kedua. Ini akan
memberikan gain yang lebih banyak dari transistor biasa yang dapat mempunyai
frekuensi sebesar 20 kHz. Photo-darlington biasanya digunakan pada frekuensi rendah.

2.7 Teori Pitch


Pitch adalah tinggi rendah nada dalam suatu bunyian. Pitch sendiri berkaitan
dengan getaran yang dihasilkan oleh instrument maupun suara manusia. Jika
getarannya semakin banyak maka nada yang dihasilkannya pun semakin tinggi.
Sedangkan pada vokal seorang penyanyi, pitch berkaitan dengan intonasi. Pitch
berkaitan dengan frekuensi atau banyaknya getaran tiap detik. Semakin besar
frekuensinya maka semakin tinggi nada tersebut. Setiap nada mempunyai frekuensi
tertentu, nada yang dibunyikan harus memiliki pitch yang tepat sehingga suara
terdengar pas dan tidak sumbang.

Tabel 1. Hubungan antara Pitch, frekuensi, dan tangga nada

2.8 Direct Digital Synthesis (DDS)


DDS merupakan teknik yang digunakan dalam pembangkitan frekuensi radio
untuk berbagai kebutuhan. Cara kerja DDS adalah dengan menyimpan point-point pada
gelombang dalam format digital dan akan dipanggil kembali untuk membuat bentuk
gelombang. Rata rata synthesizer dapat melakukan pembentukan 1 gelombang yang
akan diatur oleh frekuensinya. Yang dimana diagram blok DDS dapat dilihat pada
Gambar 7.

Gambar 7. Blok diagram dari DDS


3. Alat dan Bahan

1. Modul utama Atmel ATMega 8535


2. Kabel jumper pelangi.
3. Kabel dan stop kontak.
4. Laptop.
5. Buzzer Pasif.
6. Rangkaian dimmer Zero Crossing dan Optocoupler.
7. Lampu Pijar 15 Watt.
8. Software CVAVR.
9. Software ProgISP.
10. Software XYZ Oscilloscope

4. Rangkaian Percobaan
 Rangkaian sistem minimum ATMEL Atmega 8535/16/32

Gambar 8. Rangkaian sistem minimum ATMEL Atmega 8535/16/32


 Rangkaian Input Analog

Gambar 9. Rangkaian input analog

4.1. Dimmer Beban 220 VAC Resistif dengan Potensiometer

Gambar 10. Dimmer beban 220 VAC resistif


4.2. Pembangkitan Nada

Gambar 11. Interkoneksi buzzer

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:

5.1. Dimmer Beban 220 VAC Resistif dengan Potensiometer


1. Menyusun listing program inisialisasi dengan CodeWizard dan listing
program utama dalam bahasa C pada softwareCodeVisionAVR seperti
berikut:
#include <mega8535.h>
#include <delay.h>

unsigned int tunda;


unsigned int delay;

interrupt [EXT_INT0] void ext_int0_isr(void)


{
PORTD.1=0;
TCCR0=TCCR0&0x00;
TCNT0=255-delay;
TCCR0=TCCR0|0x05;
}
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
PORTD.1=1;
TCCR0=TCCR0&0x00;
}
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) |(1<<ADLAR))

unsigned char read_adc(unsigned char adc_input)


{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);

while ((ADCSRA & (1<<ADIF))==0);


ADCSRA|=(1<<ADIF);
return ADCH;
}

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);

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) |


(0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4)
| (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) |


(0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4)
| (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) |
(0<<DDD3) | (0<<DDD2) | (1<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4)
| (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

while (1)

{
tunda=read_adc(0);
delay=191-(0.75*tunda);
}
}

2. Melakukan proses build/compile dan mendownload program ke


mikrokontroler ATMEL Atmega 8535 dengan modul USBAsp dan
software ProgISP.
3. Mengamati hasil percobaan dengan melihat pengaruh input terhadap
output yang terjadi pada modul.

5.2 Pembangkitan Nada


1. Menyusun listing program inisialisasi dengan CodeWizard dan listing
program utama dalam bahasa C pada software CodeVisionAVR seperti
berikut:
 Program Utama
#include <mega8535.h>
#include <tonelib.h>
void main(void)
{
tone_wr_init();

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));
}

 Library Deklarasi dan Pemanggil Fungsi Nada (tonelib.h)


#define HIGH 1
#define LOW 0
#define SPEAKER_OUT_0 PORTB.0
#define SPEAKER_OUT_1 PORTB.1
#define DIR_OUT_0 DDRB.0
void tone_wr_init();
void c1();
void c2();
void d2();
void e2();
void f2();
void g2();
void jeda(float ketuk);
#endif

2. Melakukan proses build/compile dan mendownload program ke


mikrokontroler ATMEL Atmega 8535 dengan modul USBAsp dan software
ProgISP.
3. Mendengar hasil percobaan yang dikeluarkan oleh buzzer dan mengamati
keluaran gelombangnya dengan aplikasi XYZ-Oscilloscope pada smartphone.
6. Data Percobaan
6.1 Dimmer Beban 220 VAC Resistif dengan Potensiometer

Gambar 12. Hasil percobaan pada saat cahaya lampu maksimal

Gambar 13. Hasil percobaan pada saat cahaya lampu medium


Gambar 14. Hasil percobaan pada saat cahaya lampu minimum

6.2 Pembangkitan Nada

Gambar 15. Hasil percobaan pada pembangkitan nada variasi 1


Gambar 16. Hasil percobaan pada pembangkitan nada variasi 2

Gambar 17. Hasil percobaan pada pembangkitan nada variasi 3


7. Analisa dan Pembahasan
7.1 Dimmer Beban 220 VAC Resistif dengan Potensiometer
7.1.1 Penjelasan listing program
#include <mega8535.h>
#include <delay.h>

unsigned int tunda;


unsigned int delay;

interrupt [EXT_INT0] void ext_int0_isr(void)


{
PORTD.1=0;
TCCR0=TCCR0&0x00;
TCNT0=255-delay;
TCCR0=TCCR0|0x05;
}

interrupt [TIM0_OVF] void timer0_ovf_isr(void)


{
PORTD.1=1;
TCCR0=TCCR0&0x00;
}
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (1<<ADLAR))

unsigned char read_adc(unsigned char adc_input)


{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);

while ((ADCSRA & (1<<ADIF))==0);


ADCSRA|=(1<<ADIF);
return ADCH;
}

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);

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3)


| (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) |
(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3)


| (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) |
(0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3)


| (0<<DDD2) | (1<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) |
(0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

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.

Gambar 18. Hasil percobaan pada saat cahaya lampu maksimal

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

Gambar 19 menunjukkan output yang berupa lampu beban resistif menyala


dengan redup. Lampu redup karena pada input ADC yang diberikan antara 1 - 254.
Hasil percobaan pada saat cahaya lampu minimum dapat dilihat pada Gambar 20.

Gambar 20. Hasil percobaan pada saat cahaya lampu minimum


Pada Gambar 20 Dapat dilihat pada input yang diberikan oleh potensiometer
dengan nilai 1 lampu akan menyala hampir mati, 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.

7.2 Pembangkitan Nada


7.2.1 Penjelasan listing program
 Program Utama
#include <mega8535.h>
#include <tonelib.h>
void main(void)
{
tone_wr_init();

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));
}

 Library Deklarasi dan Pemanggil Fungsi Nada (tonelib.h)


#define HIGH 1
#define LOW 0
#define SPEAKER_OUT_0 PORTB.0
#define SPEAKER_OUT_1 PORTB.1
#define DIR_OUT_0 DDRB.0
void tone_wr_init();
void c1();
void c2();
void d2();
void e2();
void f2();
void g2();
void jeda(float ketuk);
#endif
7.2.2 Analisa Hasil Percobaan
Hasil percobaan pembangkitan nada dapat dilihat pada Gambar 22, Gambar
23, dan Gambar 24 sebagai berikut:

Gambar 21. Hasil percobaan pada pembangkitan nada variasi 1

Dengan bantuan software XYZ-Oscilloscope pada smartphone Android dapat


disimpulkan bahwa mikrokontroller dapat menghasilkan suara. Dapat dilihat pada
Gambar 21 didapatkan gambar sinyal yang merepresentasikan gelombang suara variasi
pertama.Variasi kedua dapat dilihat pada Gambar 21.

Gambar 22. Hasil percobaan pada pembangkitan nada variasi 2


Dari Gambar 22 didapatkan gambar sinyal nada variasi kedua.Variasi ketiga dapat
dilihat pada Gambar 23.

Gambar 23. Hasil percobaan pada pembangkitan nada variasi 3

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.

Gambar 24. Direct digital synthesis


8.2 Remote Kontrol AVR

Aplikasi mikrokontroler AVR ini memanfaatkan Remote Control sebagai fitur


utama. Digabung dengan relay maka kita dapat menghidupkan dan mematikan lampu
AC atau peralatan elektronik lainnya secara wireless yaitu dengan remote control.
Aplikasi mikrokontroler “Remote Control AVR” terdiri dari hardware berbasis
mikrokontroler AVR Atmega8, sensor remote lengkap dengan remote control, dan
modul relay.

Gambar 25. Remot kontrol AVR

.
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.
.

Gambar 26. Monitoring suhu Atmega16 & delphi

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

Anda mungkin juga menyukai