corat-coret

Join us you get reward

Monday, 29 April 2013

APLIKASI MIKROKONTROLER DENGAN LED DAN SEVEN SEGMEN PADA TRAFFIC LIGHT PEREMPATAN


APLIKASI MIKROKONTROLER DENGAN LED DAN SEVEN SEGMEN PADA TRAFFIC LIGHT PEREMPATAN
Abstrak
Dewasa ini pemanfaatan mikrokontroler sudah menjadi hal yang tidak asing lagi, banyak peralatan yang telah diciptakan berbasis mikrokontroler. Misalnya lampu traffic light, dalam lampu traffic tersebut memanfaatkan aplikasi antarmuka mikrokontroler dengan seven segmen dan Led. Dalam project akhir ini penulis mencoba merancang sebuah miniature traffic light, yaitu mengantarmukakan mikrokontroler ATmega 8535 dengan Led dan seven segmen. Dalam miniature ini menggunakan 4 buah seven segmen dan 12 buah led. Yang diprogram menyala seperti traffic light.
Kata kunci : Led, seven segmen, mikrokontroler
A.    PENDAHULUAN
Latar belakang
Banyak sekali produk-produk alat yang dihasilkan dengan berbasis mikrokontroler, salah satu aplikasi yang sudah tidak asing lagi yaitu adalah lampu traffic light. Seringkali kita melintasi jalan raya dan mendapati rambu-rambu lalu lintas, namun pernahkah kita berfikir bagaimana traffic light tersebut dapat bekerja sehingga dapat menghitung mundur dan nyala lampu tersebut dapat bergantian. Disini penulis akan mencoba menjelaskan cara kerja dari perancangan sebuah miniature dari traffic light sehingga minimal kita mengetahui bagaimana perancangan dan cara kerja dari traffic light.
Dengan kita mengetahui cara kerja dan cara mengantarmukakan mikrokontroler dengan seven segmen dan led, kita dapat mengaplikasikan antarmuka mikrokontroler pada peralatan lain juga.

Tujuan   
Tujuan dari percobaan yang telah dilakukan adalah untuk menghasilkan sebuah miniature dari traffic light jalan raya dengan mengantarmukakan mikrokontroler ATmega 8535 dengan led dan seven segmen. Sehingga penulis dan khalayak pembaca dapat memahami perancangan dan cara kerja dari minitur traffic light ini.



Permasalahan
Dalam project akhir ini permasalahan yang diambil adalah cara mengantarmukakan mikrokontroler dengan led dan seven segmen, Mengetahui  dan  memahami  bagaimana  memrogram  mikrokontroler  untuk menampilkan karakter ke seven segment serta mengatur nyala led.
Batasan masalah
Untuk lebih memfokuskan pada pembahasan laporan ini, maka batasan-batasan masalah yang digunakan adalah: komponen-komponen yang dibutuhkan pada rangkaian, rangkaian yang mendukung rancangan, blok diagram rangkaian, proses antarmuka mikrokontroler dengan led dan seven segmen.
B.     PEMBAHASAN
Dalam project akhir ini bahan-bahan yang mendukung kerja dari rangkaiannya adalah sebagai berikut:
Untuk rangkaian minimum system :
1.      Mikrokontroler ATmega 8535
2.      Transistor BC557
3.      Resistor 330 0hm
4.      Resistor 1 k ohm
5.      Resistor Kristal 12000
6.      Led
7.      Kapasitor milar
8.      Kapasitor 1F, 100F, 470F
9.      Push button
10.  Papan pcb
Untuk rangkaian output :
1.      Seven segmen katoda
2.      Led warna merah, hijau, dan kuning
3.      Kabel 8 jalur
4.      Papan pcb
5.      Resistor 330 ohm
6.      Kabel jumper
7.      Transistor L7805CN
Penjelasan komponen-komponen:
1.      Mikrokontroler ATmega 8535
AVR termasuk kedalam jenis mikrokontroler RISC (Reduced Instruction Set Computing) 8 bit. Berbeda dengan mikrokontroler keluarga MCS-51 yang  berteknologi CISC (Complex Instruction Set Computing). Pada mikrokontroler dengan teknologi RISC semua instruksi dikemas dalam kode 16 bit (16 bits words) dan sebagian besar instruksi dieksekusi dalam 1 clock, sedangkan pada teknologi CISC seperti yang diterapkan pada mikrokontroler MCS-51, untuk menjalankan sebuah instruksi dibutuhkan waktu sebanyak 12 siklus clock. Secara garis besar, arsitektur mikrokontrole ATMEGA8535 terdiri dari :
1.  32 saluran I/O (Port A, Port B, Port C dan Port D)
2.  10 bit 8 Channel ADC (Analog to Digital Converter)
3.  4 Channel PWM
4.  6 Sl eep Modes : Idle, ADC Noise Reduction, Power-save, Power-Down, Standby and Extended Standby
5.  3 buah timer/counter.
6.  Analog Compararator
7.  Watchdog timer dengan osilator internal
8.  512 byte SRAM
9.  512 byte EEPROM
10. 8 kb Flash memory dengan kwmampuan Read While Write
11. Unit interupsi (internal dan external)
12. Port antarmuka SPI8535 “memory map”
13. Port USART untuk komunikasi serial dengan kecepatan maksimal 2,5 Mbps
14. 4,5 V sampai 5,5 V operation, 0 sampai 16 MHz 



 Peta Memory ATMega8535
ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori  data terbagi menjadi 3 bagian yaitu : 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM internal. Register untuk keperluan umum menempati space data pada alamat terbawah  yaitu $00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 sampai $5F.  Register tersebut merupakan register yang khusus digunakan  untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter,  fungsi fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat dilihat pada tabel dibawah . Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F.


Gambar 1 Memori AVR ATMega8535

Selain itu AVR ATmega8535 juga memilki memori data berupa EEPROM  8-bisa sebanyak 512 byte. Alamat EEPROM dimulai dari $000 sampai $1FF.
Status Register
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi.  SREG merupakan bagian dari inti CPU
mikrokontroler.
Gambar 2 Status Register 

Status Register ATMega8535
1.  Bit7 --> I (Global Interrupt Enable), Bit harus di Set untuk mengenable semua
jenis interupsi.
2.  Bit6  --> T (Bit Copy Storage), Instruksi BLD dan BST menggunakan bit T
sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BST, dan sebaliknya bit T dapat disalin kembali kesuatu bit dalam register GPR dengan menggunakan instruksi BLD.
3.  Bi5 --> H (Half Cary Flag)                                                     
4.  Bit4 --> S (Sign Bit) merupakan hasil operasi EOR antara flag -N (negatif) dan flag V (komplemen dua overflow).
5.  Bit3  --> V (Two's Component Overflow Flag) Bit ini berfungsi untuk  mendukung operasi matematis.
6.  Bit2  --> N (Negative Flag) Flag N akan menjadi Set, jika suatu operasi matematis menghasilkan bilangan negatif.
7.  Bit1 --> Z (Zero Flag) Bit  ini akan menjadi Set apabila hasil operasi matematis menghasilkan bilangan 0.
8.  Bit0  --> C (Cary Flag) Bit ini akan menjadi set apabila suatu operasi menghasilkan carry.

Konfigurasi Pin Mikrokontroler AVR ATMEGA8535
Mikrokontroler ATMega8535 memiliki 4 0 pin untuk model  PDIP, dan 44 pin untuk
model TQFP dan PLCC. Nama-nama pin pada mikrokontroler ini adalah : 
1.  VCC : merupakan pin y ang berfungsi sebagai pin masukan catu daya
2.  GND : merupakan pin ground.
3.  Port A (PA0...PA7) : merupakan pin I/O dan pin masukan ADC
4.  Port B (PB0  – PB7) : merupakan akan pin I/O dua arah dan pin fungsi  khusus, yaitu   sebagai Timer/Counter, komperator analog dan SPI.
5.  Port C (PC0  – PC7) : merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komperator analog, input ADC dan Timer Osilator.
6.  Port D (PD0  – PD7) : merupakan pin I/O dua arah dan pin fungsi khusus,yaitu komperator analog, interupsi eksternal dan komunikasi serial.
7.  RESET : merupakan pin yang digunakan untuk mereset mikrokontroler.
8.  XTAL1 dan XTAL2 : merupakan pin masukan clock eksternal.
9.  AVCC : merupakan pin masukan tegangan untuk ADC.
10. AREF : merupakan pin tegangan referensi ADC
Gambar  3  Konfigurasi Pin Mikrokontroler ATMEGA8535

Deskripsi pin-pin pada mikrokontroler ATMega8535 :
1. Port A
  Merupakan  8-bit directional port I/O. Setiap  pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port  A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D converter.
2. Port B
 Merupakan  8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB)harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output.  Pin-pin port B juga memiliki untuk fungsi - fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut. 
Tabel 1 Fungsi Pin-pin Port B
3. Port C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-
up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan
dapat mengendalikan display LED secara langsung. Data Direction Register port C
(DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC
diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau
diisi 1 jika sebagai output.  Selain itu, dua pin port C (PC6 dan PC7) juga memiliki
fungsi alternatif sebagai oscillator untuk timer/counter 2.
4. Port D
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jik sebagai output. Selain itu, pin-pin port D juga memiliki  untuk fungsi -fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut. 
 Tabel 2 Fungsi Pin-pin Port B
5. RESET
RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di -reset.
6. XTAL1
XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock
operating circuit.
7. XTAL2
XTAL2 adalah output dari inverting oscillator amplifier.
8. AVcc
Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara  eksternal terhubung ke Vcc melalui lowpass filter. 
9. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
10. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika  board memiliki anlaog ground yang terpisah.

Bahasa Pemrograman ATMega8535
  Pemrograman mikrokontroler ATMega8535 dapat menggunakan  low level language (assembly) dan high level language (C, Basic, Pascal, JAVA, dll) tergantung compiler yang digunakan. Bahasa Assembler mikrokontroler AVR memiliki kesamaan instruksi , sehingga jika pemrograman satu jenis mikrokontroler AVR sudah dikuasai, maka akan dengan mudah menguasai pemrograman keseluruhan mikrokontroler jenis mikrokontroler AVR. Namun bahasa assembler   relatif lebih sulit dipelajari dari pada bahasa C.   Untuk pembuatan suatu proyek yang besar akan memakan waktu yang lama serta penulisan programnya akan panjang. Sedangkan bahasa C memiliki keunggulan
dibanding bahasa  assembler yaitu  independent terhadap  hardware serta lebih mudah
untuk menangani project yang besar. 
  Bahasa C memiliki keuntungan -keuntungan yang dimiliki bahasa  assembler (bahasa mesin), hampir semua operasi yang dapat dilakukan oleh bahasa mesin, dapat dilakukan dengan bahasa C dengan penyusunan program yang lebih sederhana dan mudah. Bahasa C terletak diantara bahasa pemrograman tingkat tinggi dan assembly .

2.      Seven Segment

Peraga/Penampil 7 segmen adalah komponen elektronika yang berfungsi untuk memdekodekan data dari bahasa mesin ke dalam bentuk tampilan data desimal. Peraga/penampil 7 segmen pada dasarnya adalah konfigarasi LED yang disusun sedemikian rupa sehingga nyala dari LED tersebut dapat membentuk karakter angka desimal. Struktur tampilan dari peraga/penampil tujuh segmen tersebut dilabelkan dari a sampai g yang dapat menampilkan 10 karakter bilangan desimal pertama dari 0 sampai 9. Konstruksi dari penampil tujuh segmen ditunjukan pada gambar berikut.




Gambar 4 Konstruksi Internal Peraga/Penampil 7 Segmen

Untuk menggunakan peraga/penampil 7 segmen katoda bersama (common cathoda) maka pin A – G penampil 7 segment harus diberikan input berupa tegangan DC positif kemudian terminal common pada penampil 7 segmen dihubungkan ke ground. Kemudian untuk mengoperasikan penampil 7 segmen anoda bersama (common anoda) maka terminal input A – G pada penampil 7 segmen harus dihubungkan ke ground kemudian terminal common dihubungkan ke sumber tegangan DC positif. Resistor pembatas arus untuk LED pada penampil 7 segmen sebaiknya dipasang seri pada setiap pin atau jalur input A – G pada peraga/penampil 7 segmen tersebut. Pemasangan resistor seperti ini bertujuan untuk mendapatkan arus bias LED yang stabil pada setiap perubahan karakter tampilan pada penampil 7 segmen.

3. LED
LED merupakan singkatan dari Light Emitting Diode. Dari sisi penggolongan, LED merupakan 
komponen aktif  bipolar  semikonduktor,  karena  itu  hanya  mampu  mengalirkan  arus  dalam  satu  arah saja. 
Untuk menyalakan LED, cukup dengan mengalirkan arus dari anoda ke katoda (forward biass) dengan beda potensial minimum berkisar antara 1,5 hingga 2 volt dan arusnya berkisar di 20mA. 
Perlu diperhatikan juga bahwa LED juga memiliki tegangan nyala maksimum, jika tegangan tersebut terlewati maka LED akan rusak. Di Pasaran umumnya LED dikemas berkaki dua (katoda dan anoda) dengan bermacammacam warna nyala. Untuk membedakan  kedua  kaki  tersebut,  kaki  anoda  biasanya  dibuat  lebih  panjang  daripada  katoda. Harganya sangat terjangkau, berkisar dari 250 rupiah hingga beberapa ribu rupiah.  LED banyak digunakan untuk indikator dan transmisi sinyal atau bahkan untuk penerangan. LED banyak digunakan  karena  hemat  daya,  tahan  lama  dan  ekonomis,  maka  wajar  jika  popularitas  LED  mengalahkan tabung nixie maupun lampu pijar.

 Antarmuka LED 
LED  dapat menyala  pada  arus  searah  (DC) maupun  arus  bolakbalik  (AC), yang membedakan adalah kontinyuitas. Pada arus DC LED menyala secara kontinyu. Sedangkan pada arus AC, LED akan menyala secara tidak  kontinyu  (nyalapadam secara periodik), menyala pada  setengah  gelombang pertama dan padam pada setengah gelombang berikutnya, hal ini terjadi secara periodik pada frekwensi senilai denga frekwensi AC yang diterapkan. Hal ini terjadi karena LED hanya mengalirkan arus satu arah saja, sebagai akibatnya LED hanya akan menyala  pada  fasa dimana  LED  mendapatkan  forward  biass  (hanya  setengah  gelombang).  Mata  manusia terkadang  terlalu  lambat untuk merespon aktifitas nyalapadam  tersebut, pada  frekwensi  tertentu  (biasanya 85Hz  atau  lebih)  LED  akan  terlihat  tetap menyala meskipun  faktanya berkedipkedip. 
Prinsip  ini  lebih lanjut digunakan untuk memultipleks LED maupun untuk penghematan daya.

3.      Resistor
Resistor disebut juga dengan tahanan atau hambatan, berfungsi untuk menghambat arus listrik yang melewatinya. Semakin besar nilai resistansi sebuah resistor yang dipasang, semakin kecil arus yang mengalir.
4.      Kapasitor
Kondensator ialah suatu komponen listrik/elektronika yang dapat menyimpan muatan listrik.
5.      Transistor    
  Merupakan salah satu dari komponen elektronika yang berfungsi sebagai sakelar otomatis.

C.    PERANCANGAN
Blog diagram rancangan miniature traffic light



Gambar 5. Blog diagram rancangan miniature traffic light
Penjelasan blog diagram
1.      Membuat listing program traffic light, dalam percobaan ini pertama-tama yang dilakukan adalah membuat listing program dari miniature traffic light. Listing program untuk aplikasi ini adalah sebagai berikut.
//Library yang digunakan
#include
#include
//deklarasi array untuk menampilkan karakter pada seven sgmen
unsigned char bil[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//fungsi utama
void main(void){
//variabel untuk counter down
    int kanan;
//setting port pada mikrokontroler
    PORTA=0x00;
    DDRA=0xFF;

    PORTB=0x00;
    DDRB=0xFF;

    PORTC=0x00;
    DDRC=0xFF;

    PORTD=0xFF;
    DDRD=0xFF;
    //program utama
    while (1){
//perulangan untuk counter down pada seven segmen
         for (kanan=10;kanan>=0;kanan--){   
//nyalakan ke empat seven segmen
              PORTD.7=0;
              PORTD.6=0;
              PORTD.5=0;
              PORTD.4=0;                   
//output port a sama dengan nilai varibel bil sesuai nilai variabel kanan     
              PORTA=bil[kanan];
              delay_ms(1000);
              if(kanan>3){
                PORTB=0b10000100;
                PORTC=0b10000100;           
              }      
              if(kanan<=2 && kanan>=1){
                PORTB=0b10000010;
                PORTC=0b10000010;
                delay_ms(50);
                PORTB=0b10000000;
                PORTC=0b10000000;                       
              }
              if(kanan==0){
                PORTB=0b00100001;
                PORTC=0b00100001;
              }
              
         }                 
         for (kanan=10;kanan>=0;kanan--){   
              PORTD.7=0;
              PORTD.6=0; 
              PORTD.5=0; 
              PORTD.4=0;
              PORTA=bil[kanan];
              delay_ms(1000);
              if(kanan>3){
                PORTB=0b00100001;
                PORTC=0b00100001;               
              }          
              if(kanan<=2 && kanan>=1){
                PORTB=0b01000001;
                PORTC=0b01000001;
                delay_ms(50);
                PORTB=0b00000001;
                PORTC=0b00000001;                                   
              }
              if(kanan==0){
                PORTB=0b10000100;
                PORTC=0b10000100;
              }  
         }
    }
}
  
Berdasarkan program diatas dapat diketahui bahwa:

2.      Setelah membuat listing program, langkah kedua adalah membuat rangkaian minimum system dari ATmega 8535, yang nantinya dihubungkan dengan rangkaian output, yaitu rangkaian yang mencakup seven segmen dan led, dibawah ini merupakan gambar rangkaian dalam pcb minimum system dan simulasi darirangkaian traffic light.

Gambar 6. Rangkaian output pada pcb

Gambar 7 rangkaian minimumsistem

Gambar 8. Simulasi dari rangkaian miniature traffic light
3.      Setelah selesai membuat rangkaian output langkah selanjutnya adalah mendownload program kedalam mikrokontroler ATmega 8535 sehingga dapat mengantarmukakan seven segmen dan led.
4.      Setelah rangkaian diberi sumber tegangan DC sebesar 5V maka miniature traffic light dapat berjalan sesuai dengan perintah program.

D.    Kesimpulan
Dari percobaan yang sudah dilkasanakan maka dapat disimpulkan bahwa dalam project mengantarmukakan mikrokontroler dengan led dan seven segment melibatkan semua port pada ATmega 8535 yang digunakan sebagai output. Seven segment yang digunakan dalam dalam miniature traffic light ini bekerja dengan diprogram sebagai counter down. Dan nyala led dikendalikan oleh program agar bekerja sesuai seperti traffic ight.





E.     DAFTAR RUJUKAN
_______,Peraga Penampil Seven Segmen. (Online), http://elektronika-dasar.com/teori- elektronika/peraga-penampil-7-segmen/, diakses pada tanggal 2 Desember 2012
_______, antarmuka led. (Online). http//:eepu.files.wordpress.com. diakses pada tanggal 2 desember 2012
_______, aplikasi seven segmen dan mikrokontroler .http//.iswanto.staff.umy.ac.id. diakses pada tanggal 2 desember 2012




Post a Comment