I.
TUJUAN
a. Menjelaskan
rangkaian antarmuka mikrokontroler dengan LED.
b. Mempraktekkan
pemrograman mikrokontroleruntuk menyalakan LED.
II.
DASAR TEORI
a. LED (Light Emmiting Diode)
Light Emitting Diode atau
sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan
cahaya monokromatik ketika diberikan tegangan maju. LED merupakan
keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang
dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang
dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak
oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote
Control perangkat elektronik lainnya.
Bentuk LED mirip dengan sebuah
bohlam (bola lampu) yang kecil dan dapat dipasangkan dengan mudah ke dalam
berbagai perangkat elektronika. Berbeda dengan Lampu Pijar, LED tidak
memerlukan pembakaran filamen sehingga tidak menimbulkan panas dalam
menghasilkan cahaya. Oleh karena itu, saat ini LED (Light Emitting Diode)
yang bentuknya kecil telah banyak digunakan sebagai lampu penerang dalam LCD TV
yang mengganti lampu tube.
Cara Kerja LED (Light
Emitting Diode)
Seperti
dikatakan sebelumnya, LED merupakan keluarga dari Dioda yang terbuat dari
Semikonduktor. Cara kerjanya pun hampir sama dengan Dioda yang memiliki dua
kutub yaitu kutub Positif (P) dan Kutub Negatif (N). LED hanya akan memancarkan
cahaya apabila dialiri tegangan maju (bias forward) dari Anoda menuju ke
Katoda.
LED terdiri dari sebuah chip semikonduktor
yang di doping sehingga menciptakan junction P dan N. Yang dimaksud dengan
proses doping dalam semikonduktor adalah proses untuk menambahkan
ketidakmurnian (impurity) pada semikonduktor yang murni sehingga menghasilkan
karakteristik kelistrikan yang diinginkan. Ketika LED dialiri tegangan maju
atau bias forward yaitu dari Anoda (P) menuju ke Katoda (K), Kelebihan Elektron
pada N-Type material akan berpindah ke wilayah yang kelebihan Hole (lubang)
yaitu wilayah yang bermuatan positif (P-Type material). Saat Elektron berjumpa
dengan Hole akan melepaskan photon dan memancarkan cahaya monokromatik (satu
warna).
LED atau Light Emitting
Diode yang memancarkan cahaya ketika dialiri tegangan maju ini juga dapat
digolongkan sebagai Transduser yang dapat mengubah Energi Listrik menjadi
Energi Cahaya.
b.
Perintah Dasar Mengeluarkan Data
Sebelum
mulai menulis program dengan bahasa C, perlu diketahui bahwa mikrokontroler
ATmega8535 perlu diset isi register DDR dan PORT agar bisa digunakan
sebagaimana mestinya, seperti yang terlihat dalam Tabel 1.
Tabel 1 KonfigurasiPengaturan Port I/O
|
DDR bit = 1
|
DDR bit = 0
|
PORT bit = 1
|
Output ; High
|
Input; R pull up
|
PORT bit = 0
|
Output; Low
|
Input, Floating
|
Untuk mengirim data byte dalam bentuk bilangan decimal ke PORTX (X=A, B, C, D) digunakan statement
PORTX = desimal;
PORTB = 128;
Untuk mengirim data byte dalam bentuk bilangan biner ke PORTX (X=A, B, C, D) digunakan statement
PORTX = 0bdata;
PORTB =
0b10101010;
Untukmengirim data per bit ke PORTX.Y (X=A, B, C, D,
dan Y=0, 1, 2 , 3, 4, 5, 6, 7) digunakan statement
PORTX.Y = data;
PORTB.1 = 0;
Dimana data bias berupa 0 atau 1.
III.
ALAT DAN
BAHAN
·
1 set PC/Laptop yang sudah berisi program Code
Vision dan Khazama
·
1 buah catu daya DC +5V
·
1 buah multimeter
·
1 buah ISP Downloader AVR
·
1 buah sistem minimum AVR
·
1 buah I/O
·
1 buah kabel printer USB
·
1 buah kabel pita hitam
IV.
PROSEDUR
1.
Rangkailah peralatan yang diperlukan seperti
pada gambar dibawah. Hubungkan soket jumper PORTA pada minimum system dengan
soket jumper OUTPUT pada I/O.
2.
Buka program Code Vision AVR
3.
Buat file baru dengan cara klik File>>New,
atau klik icon Create a New File or Project, atau ketik Ctrl + N. Kemudian
muncul dialog box, pilih Project pada File Type, kemudian klik OK.
4.
Kemudian klik
No ketika muncul dialog box untuk menanyakan apakah ingin menggunakan
CodeWizardAVR
5.
Kemudian
pilih lokasi penyimpanan file dan buat folder baru dengan nama “praktikum 1”
untuk menyimpan file.
6.
Kemudian
simpan file pada folder tersebut dan berinama file dengan nama ”led“ dan klik
Save.
7.
Kemudian
muncul dialog box Configure Project. Pada subtab Code Generation pada tab C
Compiler pilih chip ATmega8535 dan ubah Clock menjadi 4 Mhz. Kemudian klik OK
8.
Buat file
Source baru dengan cara klik File>>New, atau klik icon Create
a New File or Project, atau ketik Ctrl + N. Kemudian muncul dialog box, pilih
Source pada File Type, kemudian klik OK. Kemudian Save as file Source itu
dengan nama ”led“ dan simpan
di dalam direktori yang sama yaitu di dalam folder “praktikum 1”
9.
Hubungkan
file Project dengan File Source dengan Cara klik Project>> Configure
10.
Pada dialog
box, klik Add pada tab Input Files. Kemudian pilih file yang sudah anda simpan
tadi dan klik Open. Kemudian klik OK.
11.
Jika sudah
ditambahkan, maka pada Code Navigator akan terlihat led.c.
12.
Tambahkan file header.
13.
Buat program utama dan inisialisasikan PORTA
sebagai output dan output value = 0
14.
Tuliskan program led 1 pada program utama
tepatnya tuliskan program tersebut di dalam while (1):
// Program LED1
15.
Compile program tersebut dengan cara klik
Project>> Compile atau ketik F9.
16.
Jika ada error
, koreksi program yang error dan
perbaiki. Jika sudah tidak ada yang error
build program tersebut dengan cara klik Project>> Build atau klik
Shift + F9.
17.
Hubungkan kabel usb printer antara PC/ Laptop
dengan trainer.
18.
Buka aplikasi Khanzama AVR Programmer. Pilih
ATmega8535 pada pilihan chip AVR. Kemudian buka program kompilasi led.hex
biasanya terdapat pada folder atau sub derektori..\Exe yang terdapat pada
folder “praktikum 1 “ dengan cara klik file>> Load Flash File to
Bufferatau ketik Ctrl + L kemudian klik Open.
19.
Klik Auto Program kemudian amati nyala LED dan
gambarkan nyala LED tersebut.
20.
Hapus program led 1, kemudian tuliskan program
led 2 pada program utama tepatnya tuliskan program tersebut didalam while (1):
Program LED2
21.
Compile dan Build program, jika ada yang error perbaiki
program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto
program.
22.
Amati nyala LED dan gambarkan nyala LED
tersebut.
23.
Hapus program led 2, kemudian tuliskan program
led 3 pada program utama tepatnya tuliskan program tersebut didalam while (1):
Program LED3
24.
Compile dan Build program, jika ada yang error
perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik
auto program.
25.
Amati nyala LED dan gambarkan nyala LED
tersebut.
26.
Hapus program led 3, kemudian tuliskan program
led 4 pada program utama tepatnya tuliskan program tersebut didalam while (1):
Program LED4
27.
Compile dan Build program, jika ada yang error
perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik
auto program.
28.
Amati nyala LED dan gambarkan nyala LED
tersebut.
29.
Hapus program led 4, kemudian tuliskan program
led 5 pada program utama tepatnya tuliskan program tersebut didalam while (1):
Program LED5
30.
Compile dan Build program, jika ada yang error
perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik
auto program.
31.
Amati nyala LED dan gambarkan nyala LED
tersebut.
V.
DATA HASIL
PERCOBAAN
a.
Source Code
LED 1
#include
#include
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
{
PORTA=0x0f;
delay_ms(1000);
PORTA=0xf0;
delay_ms(1000);
}
}
LED 2
#include
#include
void
main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
{
PORTA= 0b00001111;
delay_ms(1000);
PORTA=0b11110000;
delay_ms(1000);
}
}
LED 3
#include
#include
void
main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
{
PORTA= 0x55;
delay_ms(1000);
PORTA=0xaa;
delay_ms(1000);
}
}
LED 4
#include
#include
void
main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
{
PORTA= 0b11100111;
delay_ms(1000);
PORTA=0b11011011;
delay_ms(1000);
PORTA=0b10111101;
delay_ms(1000);
PORTA=0b01111110;
delay_ms(1000);
PORTA=0b10111101;
delay_ms(1000);
PORTA=0b11011011;
delay_ms(1000);
}
}
LED 5
#include
#include
void
main(void)
{
PORTA=0x00;
DDRA=0xFF;
while (1)
{
PORTA= 0b00000001;
delay_ms(1000);
PORTA=0b00000010;
delay_ms(1000);
PORTA=0b00000100;
delay_ms(1000);
PORTA=0b00001000;
delay_ms(1000);
PORTA=0b00010000;
delay_ms(1000);
PORTA=0b00100000;
delay_ms(1000);
PORTA=0b01000000;
delay_ms(1000);
PORTA=0b10000000;
delay_ms(1000);
}
}
VI.
ANALISA
1. Analisa Program LED1-LED5!
a.
Analisa program
LED 1
Pada program LED 1 menggunakan
bilangan hexadecimal pada syntax PORTA=0x0f; hal ini memiliki arti bahwa f
merupakan pengganti angka 15. Sedangkan bila ditinjau dari program PORTA=0x0f
berarti perintah untuk mengeluarkan output yang ditandai dengan LED sebagai
indicator outputnya. Pada program LED 1 ini lampu LED yang menyala pada detik
pertama menggunakan syntax PORTA=0x0f lampu yang terdapat pada bit ke 0 sampai
bit ke 3 karena memiliki angka f yang berarti jika dibiner 1111, sedangkan pada
bit ke 4 sampai bit ke 7 lampu LED akan mati karena memiliki nilai biner 0.
Selanjutnya pada detik kedua LED yang menyala adalah LED pada bit ke 4 sampai
bit ke 7 karena syntax yang digunakan PORTA=0xf0 memiliki angka f yang berarti
jika dibiner 1111, sedangkan LED pada bit ke 0 sampai bit ke 3 LED mati karena
memiliki nilai biner 0. Pergantian nyala LED ini terjadi setiap 1 detik karena
delay yang digunakan adalah 1000 ms. Hal ini dapat dilihat secara jelas pada
tabel praktikum 1.1.
b.
Analisa
program LED 2
Pada program LED 2 menggunakan bilangan biner pada
syntax PORTA=0x00. Sedangkan bila ditinjau dari program PORTA=0x00 berarti
perintah untuk mengeluarkan output yang ditandai dengan LED sebagai indicator
outputnya. Pada program LED 2 ini lampu LED yang menyala pada detik pertama
adalah lampu yang terdapat pada bit ke 0 sampai bit ke 3 karena menggunakan
syntax PORTA= 0b00001111, sedangkan
pada bit ke 4 sampai bit ke 7 lampu LED akan mati karena memiliki nilai biner
0000 sebab biner 1 berarti LED menyala dan biner 0 berarti LED mati.
Selanjutnya pada detik kedua LED yang menyala adalah LED pada bit ke 4 sampai
bit ke 7 karena memiliki angka 1 yang berarti jika dibiner 1111, sedangkan LED
pada bit ke 0 sampai bit ke 3 LED mati karena memiliki nilai biner 0000 hal ini
sesuai syntax yang digunakan yaitu PORTA=0b11110000. Pergantian nyala LED ini terjadi setiap 1 detik karena delay yang
digunakan adalah 1000 ms. Hal ini dapat dilihat secara jelas pada tabel
praktikum 1.2.
c.
Analisa
program LED 3
Pada
program LED 3 menggunkan bilangan hexadesimal. Pada detik pertama menghasilkan
syntax PORTA=0x55 hal ini memiliki artian bahwa LED yang akan menyala adalah
LED pada bit ke 0, 2, 4, 6 karena syntax PORTA=55 akan memberikan perintah pada
LED untuk menyala dengan selang-seling atau LED yang menyala dimulai dari bit
ke 0 dan langsung dilanjutkan ke bit 2 atau melompati 1 bit, karena pada detik
pertama ini yang memilki nilai biner 1 (LED menyala) adalah pada bit ke 0, 2,
4, dan 6. Dan pada detik kedua perintah syntax PORTA=0xaa memiliki artian
bahwa LED yang akan menyala adalah LED
pada bit ke 1, 3, 5, dan 7 karena pada bit ke 1, 3, 5, 7 ini memiliki nilai
biner 1 (LED menyala) atau kebalikan dari hasil output detik pertama. Pada
program LED 2 ini memiliki delay sebesar 1 detik. Hasil lebih jelas dapat
dilihat pada tabel 1.3.
d.
Analisa
program LED 4
Pada
program LED 2 ini menggunakan nilai biner. Hal ini dapat dilihat bahwa pada detik
pertama memiliki syntax PORTA=0b11100111 hal ini berarti LED yang akan menyala
adalah LED pada bit ke 0, 1, 2, 5, 6, dan 7 karena pada bit tersebut memiliki
nilai biner 1, sedangkan pada LED bit ke 3 dan 4 akan mati karena memiliki
nilai biner 0. Sedangkan padadetik kedua memiliki syntax PORTA=0b11011011 hal
ini memiliki artian bahwa LED yang akan menyala adalah LED pada bit ke 0, 1, 3,
4, 6, dan 7 karena memiliki nilai biner 1, sedangkan LED pada bit ke 2 dan 5
akan mati karena memiliki nilai biner 0. Sedangkan pada detik ke tiga memiliki syntax
PORTA=0b10111101 hal ini memiliki artian bahwa LED yang akan menyala adalah LED
pada bit ke 0,2,3,4,5dan 7 karena memiliki nilai biner 1, sedangkan pada bit ke
1 dan 6 LED akan mati karena memiliki nilai biner 0. Sedangkan pada detik ke
empat memiliki syntax PORTA=0b01111110 hal ini memiliki artian bahwa LED yang akan
menyala adalah LED pada bit ke 1,2,3,4,5dan 6 karena memiliki nilai biner 1,
sedangkan LED pada bit ke 0 dan 7 akan mati karena memiliki nilai biner 0. Sedangkan
pada detik ke lima memiliki syntax 0b10111101hal ini berarti LED yang akan
menyala adalah LED pad bit ke 0, 2, 3, 4, 5, dan 7 karena memiliki nilai biner
1, sedangkan LED pada bit ke 1 dan 6 akan mati karena memiliki nilai biner 0.
Sedangkan pada detik ke enam memiliki syntax PORTA=0b11011011 hal ini memiliki
artian bahwa LED yang menyala adalah LED pad bit ke 0, 1, 3, 4, 6, dan 7 karena
memiliki nilai biner 1, sedangkan pada bit ke 2 dan 5 LED akan mati karena
memiliki nilai biner 0. Pada program LED 4 ini memiliki delay 1 detik, jadi
setelah 1 detik LED yang menyala akan berubah. Untuk lebih jelasnya dapat
dilihat pada tabel 1.4.
e.
Analisa
program LED 5
Pada
program LED 5 menggunkan sistem bilangan biner dimana dapat dilihat bahwa pada
detik pertama memiliki syntax PORTA=0b00000001 hal ini berarti LED yang kan
menyala adalah LED pada bit ke 0 karena memiliki nilai biner 1, sedangkan pada
bit ke 1, 2, 3, 4, 5, 6, dan 7 LED akan mati karena memiliki nilai biner 0.
Sedangkan pada detik ke 2 memiliki syntax PORTA=0b00000010 hal ini berarti LED
yang akan menyala adalah pada bit ke 1 karena memiliki nilai biner 1, sedangkan
LED pada bit ke 0, 2, 3, 4, 5, 6 dan 7 LED akan mati karena memiliki nilai
biner 0. Sedangkan pada detik ke 3 memiliki syntax PORTA=0b00000100 hal ini
berarti bahwa LED yang menyala adalah LED pada bit ke 2 karena memiliki nilai
biner 1, sedangkan pada bit ke 0, 1, 3, 4, 5, 6, dan 7 LED akan mati karena
memiliki nilai biner 0. Sedangkan pada detik ke 4 memiliki syntax PORTA=0b00001000
hal ini berarti LED yang menyala adalah LED pada bit ke 3 karena memiliki nilai
biner 1, sedangkan pada bit ke 0, 1, 2,
4, 5, 6, dan 7 LED akan mati karena memiliki nilai biner 0. Sedangkan pada
detik ke 5 memiliki syntax
PORTA=0b00010000 hal ini berarti LED yang menyala adalah LED pada bit ke 4
karena memiliki nilai biner 1, sedangkan pada LED bit ke 0, 1, 2, 3, 5, 6, dan
7 akan mati karena memiliki nilai biner 0. Sedangkan pada saat detik ke 6
memiliki syntax PORTA=0b00100000 hal ini berarti bahwaLED yang menyala adalah
LED pada bit ke 5 karena memiliki nilai biner 1, sedangkan LED pada bit ke 0,
1, 2, 3, 4, 6, dan 7 akan mati karena memiliki nilai biner 0. Sedangkan pada saat
detik ke 7 memiliki syntax PORTA=0b01000000 hal ini berarti bahwa LED yang menyala
adalah LED pada bit ke 6 karena memiliki nilai biner 1, sedangkan LED pada bit
ke 0, 1, 2, 3, 4, 5, dan 7 akan mati karena memiliki nilai biner 0. Sedangkan
pada detik ke 8 memiliki syntax PORTA=0b10000000 hal ini berati LED yang
menyala adlah LED pada bit ke 7 karena memiliki nilai biner 1, sedangkan LED
pada bit ke 0, 1, 2, 3, 4, 5, dan 6 akan mati karena memiliki nilai biner 0.
Pda program LED 5 ini LED akan menyala bergantian dengan delay sebesar 1 detik.
Hasil ini akan lebih jelas bila dilihat pada tabel 1.5.
2. Persamaan dan Perbedaan PROGRAM LED1 dan PROGRAM LED 2
Persamaan
program LED 1 dan Program LED 2 adalah pada pemberian logika pada setiap byte
nya sehingga menghasilkan nyala LED yang sama pula. Sedangkan perbedaan dari
program LED 1 dan program LED 2 terletak pada penggunaan jenis bilangannya,
pada program LED 1 menggunkan bilangan heksa sedangkan pada program LED 2
menggunakan bilangan biner.
3. Instruksi yang digunakan untuk mengeluarkan data ke
LED
instruksi
yang digunakan untuk mengeluarkan data ke LED adalah PORTA=...... seperti
misalnya pada program LED 3 instruksi yang digunakan untuk mengeluarkan data ke
LED agar output dapat terlihat adalah
PORTA=
0x55;
delay_ms(1000);
PORTA=0xaa;
delay_ms(1000);
Output
LED yang akan terjadi adalah pada detik ke 1 yang menyala adalah LED pada bit
ke 0, 2, 4, dan 6, sedangkan pada detik ke 2 LED yang akan menyala adalah LED
pada bit ke 1, 3, 5, dan 7, yang memiliki delay selama 1 detik.
4. Mengapa ada jeda waktu sekitar 1 detik antara tampilan
LED yang pertama dengan yang berikutnya?
Karena
pada program kita memberikan delay sebesar 1000 ms atau 1 detik jadi tampilan
LED akan berubah pada detik berikutnya sesuai instruksi yang kita berikan,
apabila dalam program kita tidak memberi delay maka program akan menampilkan
output dari program pertama saja.
VII.
KESIMPULAN
LED (Light Emmiting Doide) adalah suatu komponen elektronika
yang bisa memancarkan cahaya monokromatik ketika diberikan suatu tegangan maju.
Pada praktikum ini LED berfungsi sebagai output sesuai dengan program yang
telah kita berikan. Pada praktikum antarmuka mikrokontroler dengan LED ini
terlebih dahuu kita harus memberikan inisialisasi pada PORT apakah berfungsi
sebagai input atau output, namun pada praktikum kali ini PORT difungsikan
sebagai output. Pada praktikum ini kiat bisa menggunakan bentuk bilangan heksa
maupun bilangan biner, apabila kita menggunakan bilangan heksa maka pada PORT
kita harus menuliskan 0x, sedangkan apabila kita ingin menggunakan bilangan
biner maka pada PORT yang tertulis haruslah 0b. Pada praktikum ini LED akan
menyala apabila memiliki nilai dari bit adalah biner 1 dan LED akan mati
apabila memiliki nilai bit biner 0. Pada progam praktikum ini kita dapat
mengatur berapa lama seang watu yang dibutuhkan agar LED dapat menyala
bergantian, yaitu dengan cara kita mengatur delay yang ada.
VIII.
DAFTAR
PUSTAKA
·
http://teknikelektronika.com/pengertian-led-light-emitting-diode-cara-kerja/, diakses tanggal 13 September 2016.
Tidak ada komentar:
Posting Komentar