Laman

Minggu, 04 Desember 2016

ANTARMUKA MIKROKONTROLER DENGAN LED




LAPORAN PRAKTIKUM I
ANTARMUKA MIKROKONTROLER DENGAN LED

Disusun untuk Memenuhi Matakuliah Praktikum Lab PTE-03
Dibimbing oleh Ibu Dyah Lestari, S.T., M. Eng.

Description: um warna.gif



Oleh:
Kelompok 5 :
Dwi Puri Fatmala        (150534602174)
Fahmi Ahmadi            (150534602326)
Gilang Indra Kusuma (150534603209)
Hafizhah Nashiroh      (150534603938)


UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK ELEKTRO
September  2016
ANTARMUKA MIKROKONTROLER DENGAN LED

TUJUAN
-          Menjelaskan rangkaian antarmuka mikrokontroler dengan LED.
-          Mempraktekkan pemrograman mikrokontroler untuk menyalakan LED.
DASAR TEORI
A.    LED
LED atau Light Emitting Diode adalah komponen elektronika yang dapat memancarkan cahaya monokromatik ketika diberi 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 kedalam berbagai perangkat elektronik. 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.


Simbol dan bentuk LED (Light Emmiting Diode)

Gambar 1. Bentuk LED dan Simbol LED

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 (forwad bias) dari anoda menuju katoda.

LED terdiri dari sebuah chip semikonduktor yang di doping sehingga menciptakan junction P dan N. Yang di maksud dengan proses doping  dalam semikonduktor adalah proses untuk menambahkan ketidakmurnian (impurity)pada semikonduktor murni sehingga menghasilkan karakteristik kelistrikan yang diinginkan. Ketika LED dialiri tegangan maju atau bias forwad yaitu dari anoda (P) menuju ke katoda (N). 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 proton dan memancarkan cahaya monokromatik (satu warna).

Gambar 2. Cara kerja LED

Contoh rangkaian LED dapat dilihat dalam Gambar 3. Logika 1 diberikan oleh mikrokontroler ke masukan inverter. Inverter akan memberikan logika 0 pada outputnya sehingga akan memberikan virtual ground pada kaki katoda LED. Resistor membatasi arus yang melewati LED tersebut. Nilai resistor dapat dihutung dari pesamaan (1).

                                                   (1)


Gambar 3. Rangkaian antarmuka mikrokontroler dengan LED
Gambar 4. Rangkaian LED dalam trainer I/O

Penting untuk diingat bahwa IC inverter 7404 harus digunakan karena kemampuannya untuk memberikan arus 16 mA dengan aman. Sebagai alternatif dapat digunakan transistor NPN seperti 2N2222 (PN2222 atau MPQ2222) sebagai pengganti inverter yang ditunjukkan dalam gambar 3.
Dalam trainer I/O yang digunakan rangkaian antarmuka mikrokontroler dengan LED yang dihubungkan dengan kedelapan pin sebuah port dapat dilihat dalam gambar 4. Dalam modul trainer I/O yang dipakai dalam praktikum, kedelapan rangkaian LED tersebut dihubungkan ke sebuah soket jumper bernama OUTPUT.

B.     Perintah Dasar Mengeluarkan Data
Sebelum mulai menulis program dengan bahasa C, perlu diketahui bahwa mikrokontroler AVR perlu diset isi register DDR dan PORT agar bisa digunakan sebagaimana mestinya, seperti yang terlihat dalam tabel 1.

Tabel 1. Konfigurasi Pengaturan Port I/O
Untuk mengirim data byte dalam bentuk bilangan heksadesimal ke PORTX (X=A, B, C, D) digunakan statement:

PORTX = 0xdata;
Contohnya :
PORTB = 0xaa;

Untuk mengirim data byte dalam bentuk bilangan biner ke PORTX (X=A, B, C, D) digunakan statement:

PORTX = 0bdata;
Contohnya :
PORTB = 0b10101010;

Untuk mengirim 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 ;
Dimana data bisa berupa 0 atau 1.
Contohnya :
PORTB.1 = 0;

ALAT DAN BAHAN YANG DIGUNAKAN
-          1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
-          1 buah ISP Downloader AVR
-          1 buah sistem minimum AVR
-          1 buah I/O
-          1 buah kabel printer USB
-          1 buah kabel pita hitam

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.

DATA HASIL PERCOBAAN
A.    Source Code

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

void main(void)
{
PORTA=0x00;
DDRA=0xFF;

while (1)
    {
        PORTA=0x0f;
        delay_ms (1000);
        PORTA=0xf0;
        delay_ms(1000);
       
    }
   
}


LED2
#include <mega8535.h>
#include <delay.h>
void main(void)
{
    PORTA=0x00;
    DDRA=0xFF;

while (1)
    {
    PORTA=0b00001111;
    delay_ms(1000);
    PORTA=0b11110000;
    delay_ms(1000);
    }
}
 

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

void main(void)
{
PORTA=0x00;
DDRA=0xFF;

while (1)
    {
       PORTA=0x55;
       delay_ms(1000);
       PORTA=0xaa;
       delay_ms(1000);


       
    }
   
}


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

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

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

void main(void)
{
PORTA=0x00;
DDRA=0xFF;

while (1)
    {
      PORTA=0b00000001; PORTA.2=1;
      delay_ms(1000);
      PORTA=0b00000010; PORTA.1=1;
      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);       
    }
   
}








B.     Tabel

1.      Program LED 1
Tabel 2. Hasil percobaan program LED 1
Detik ke
Nyala LED
7
6
5
4
3
2
1
0
1
0
0
0
0
1
1
1
1
2
1
1
1
1
0
0
0
0
3
0
0
0
0
1
1
1
1
4
1
1
1
1
0
0
0
0
5
0
0
0
0
1
1
1
1
6
1
1
1
1
0
0
0
0
7
0
0
0
0
1
1
1
1
8
1
1
1
1
0
0
0
0
Keterangan : logika 1 dan  berarti LED menyala jika logika 0 dan  berarti LED mati
4 lampu LED menyala selama 1 detik dilanjut 4 lampu LED yang lain menyala selama 1 detik secara bergantian
2.      Program LED 2
Tabel 3. Hasil percobaan program LED 2
Detik ke
Nyala LED
7
6
5
4
3
2
1
0
1
0
0
0
0
1
1
1
1
2
1
1
1
1
0
0
0
0
3
0
0
0
0
1
1
1
1
4
1
1
1
1
0
0
0
0
5
0
0
0
0
1
1
1
1
6
1
1
1
1
0
0
0
0
7
0
0
0
0
1
1
1
1
8
1
1
1
1
0
0
0
0
Keterangan : logika 1 dan  berarti LED menyala jika logika 0 dan  berarti LED mati
4 lampu LED menyala selama 1 detik dilanjut 4 lampu LED yang lain menyala selama 1 detik secara bergantian
3.      Program LED 3
Tabel 4. Hasil percobaan program LED 3

Detik ke
Nyala LED

7
6
5
4
3
2
1
0
1
0
1
0
1
0
1
0
1
2
1
0
1
0
1
0
1
0
3
0
1
0
1
0
1
0
1
4
1
0
1
0
1
0
1
0
5
0
1
0
1
0
1
0
1
6
1
0
1
0
1
0
1
0
7
0
1
0
1
0
1
0
1
8
1
0
1
0
1
0
1
0










Keterangan : logika 1 dan  berarti LED menyala jika logika 0 dan  berarti LED mati

4.      Program LED 4
Tabel 5. Hasil percobaan program LED 4
Detik ke
Nyala LED
8
7
6
5
4
3
2
1
1
1
1
1
0
0
1
1
1
2
1
1
0
1
1
0
1
1
3
1
0
1
1
1
1
0
1
4
0
1
1
1
1
1
1
0
5
1
0
1
1
1
1
0
1
6
1
1
0
1
1
0
1
1
Keterangan : logika 1 dan  berarti LED menyala jika logika 0 dan  berarti LED mati

5.      Program LED 5
Tabel 6. Hasil percobaan program LED 5
Detik ke
Nyala LED
8
7
6
5
4
3
2
1
1
0
0
0
0
0
1
0
1
2
0
0
0
0
0
0
1
0
3
0
0
0
0
0
1
0
0
4
0
0
0
0
1
0
0
0
5
0
0
0
1
0
0
0
0
6
0
0
1
0
0
0
0
0
7
0
1
0
0
0
0
0
0
8
1
0
0
0
0
0
0
0
Keterangan : logika 1 dan  berarti LED menyala jika logika 0 dan  berarti LED mati


ANALISA
a.       Analisa Program LED
1.      Program LED 1
Pada program ini kondisi awal led mati ini ditunjukkan oleh PORTA=0x00. Pada program ini menggunakan bilangan heksadesimal dan disini menggunakan LED yang merupakan suatu output-an , hal ini pada PORTA diinisialisasikan dengan PORTA=0x00;, DDRA=0xFF menunjukkan bahwa devicenya output. Pada PORTA=0xof, f berarti dilogikakan 15 yang berarti logika menyala pada led bit 0 sampai bit ke 4. 0 menujukkan logika mati pada led bit ke 5 sampai ke 7. delay_ms (1000) menujukkan jeda pada pergantian nyala led selama 1000 ms atau 1 detik, pada PORTA=0xf0 menunjukkan 0 berlogika mati pada led bit ke 0 sampai bit ke 3, f menunjukkan logika menyala pada led bit ke 4 sampai bit ke 7, delay_ms (1000) untuk memberikan jeda pada pergantian nyala led selama 1000 ms atau 1 detik, pergantian nyala led dapat dilihat pada tabel 2. Pada detik ke 1, 3, 5, 7 menunjukkan hasil dari syntax PORTA=0x0f; dan detik ke 2, 4, 6, 8 menunjukkan hasil dari syntax PORTA=0xf0;
2.      Program LED 2
Pada program ini kondisi awal led mati ini ditunjukkan oleh PORTA=0x00. Pada program ini menggunakan bilangan biner dan disini menggunakan LED yang merupakan suatu output-an. Pada PORTA diinisialisasikan dengan PORTA=0x00;, DDRA=0xFF menunjukkan bahwa devicenya output. Pada PORTA=0b00001111; berarti logika menyala pada led bit 0 sampai bit ke 4. 0 menujukkan logika mati pada led bit ke 5 sampai ke 7. delay_ms (1000) menujukkan jeda pada pergantian nyala led selama 1000 ms atau 1 detik, pada PORTA=0b11110000 menunjukkan 0 berlogika mati pada led bit ke 0 sampai bit ke 3, f menunjukkan logika menyala pada led bit ke 4 sampai bit ke 7, delay_ms (1000) untuk memberikan jeda pada pergantian nyala led selama 1000 ms atau 1 detik, pergantian nyala led dapat dilihat pada tabel 3. Pada detik ke 1, 3, 5, 7 menunjukkan hasil dari syntax PORTA=0b00001111dan detik ke 2, 4, 6, 8 menunjukkan hasil dari syntax PORTA=0b11110000.

3.      Program LED 3
Pada program ini kondisi awal led mati ini ditunjukkan oleh PORTA=0x00. Pada program LED 3 ini menggunakan bilangan heksadesimal. Dalam program ini led dibangi menjadi 2 kelompok. 4 Led sebelah kanan dari kanan ke kiri mempunyai bit ke 0 sampai bit ke 3, 4 led sebelah kiri dari kanan ke kiri mempunyai bit ke 0 sampai bit ke 3. Pada PORTA=0x55 LED akan menyala jika bit berjumlah 5 dan pada PORTA=0xaa LED akan menyala jika bit berjumlah a (10). Pada program ini mempunyai jeda 1000 ms atau 1s. Pergantian menyalanya LED dapat dilihat pada tabel 4., PORTA=0x55 ditunjukkan pada detik ke 1, 3, 5, 7 dan PORTA=0xaa ditunjukkan pada detik ke 2, 4, 6, 8.

4.      Program LED 4
Pada program ini kondisi awal led mati ini ditunjukkan oleh PORTA=0x00. Pada program ini menggunakan bilangan biner. Pada syntax program ini mulai dari kanan menunjukkan bit ke 0 sampai bit ke 7, dan logika 1 menghasilkan output led menyala dan logika 0 menghasilkan output led mati. Jeda nyala led 1000 ms atau 1 s. Hasil output program led 4 berupa nyala led ditunjukkan pada tabel 5.

5.      Program LED 5
Pada program ini kondisi awal led mati ini ditunjukkan oleh PORTA=0x00. Program ini menggunakan bilangan biner, pada PORTA=0b00000001; PORTA.2=1 led yang menyala pada bit ke 0 dan bit ke 2. Pada PORTA=0b00000010; PORTA.1=1 led yang menyala pada bit ke 1 dan ke 1. Pada PORTA=0b00000100 led yang menyala pada bit ke 2. Pada PORTA=0b00001000 led yang menyala pada bit ke 3. Pada PORTA=0b00010000 led yang menyala pada bit ke 4. Pada PORTA=0b00100000 led yang menyala pada bit ke 5. Pada PORTA=0b01000000 led yang menyala pada led ke 6. Pada PORTA=0b10000000 led yang menyala pada bit ke 7. Nyala pada led mempunyai jeda 1000 ms atau 1 s, hal ini ditunjukkan oleh delay_ms(1000). Nyala led dan pergantian led dapat dilihat pada tabel 6.
b.      Persamaan dan Perbedaan Program LED 1 dan Program LED 2
Persamaan
·         Nyala led yang dihasilkan oleh kedua program (program led 1 dan program led 2) dapat dilihat pada tabel 2 dan tabel 3.
·         Jeda atau pergantian nyala led pada program 1 dan 2 mempunyai jeda 1000 ms atau 1s.
Perbedaan
Penulisan pada program led 1 dan led 2. Pada program led 1 untuk mengirim data byte menggunakan bilangan heksadesimal dan pada program led 2 untuk mengirim data byte menggunakan bilangan biner.

c.       Instruksi yang digunakan untuk mengeluarkan data ke LED
·         Hubungkan kabel usb printer antara PC/ Laptop dengan trainer.
·         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.
·         Klik Auto Program kemudian amati nyala LED

d.      Ada jeda waktu pada tampilan led
Karena program pada mikrokontroler tidak dapat dijalankan secara bersamaan, sehingga membutuhkan jeda meskipun jeda tersebut sangat cepat.
KESIMPULAN
Dari praktikum ini dapat disimpulkan bahwa LED atau Light Emitting Diode adalah komponen elektronika yang dapat memancarkan cahaya monokromatik ketika diberi tegangan maju. LED merupakan keluarga dioda yang terbuat dari bahan semikonduktor. LED ini dapat digunakan untuk mempraktikan sistem mikrokontroler. Dalam mempraktikan sistem ini membutuhkan aplikasi (AVR, dan Khazama), trainer, alat pendukug seperti USB untuk menghubungkan trainer dengan PC dan suatu program. Program ini dibuat pada AVR, program ini akan dimasukkan pada mikrokontroler. Dalam program tersebut berisi perintah dasar mengeluarkan data yang akan ditampilkan berupa nyala LED, perintah dasar mengeluarkan data byte bisa berupa bilangan desimal, heksadesimal, biner, dan perintah data per bit.





DAFTAR RUJUKAN
Tim Asisten Dosen. 2016. Modul 1 Antarmuka Mikrokontroler dengan Led. Malang: Universitas Negeri Malang.
Dyah Lestari. 2013. Microprosesor. Malang. Universitas Negeri Malang

2 komentar:

Komentar