TUGAS MIKROPROSESSOR
Traffic Light Berbasis Mikrocontroller ATMEGA 32A Disusun Oleh:
Ammazizzaky Tarigan
(131421089)
Syahrial Affandi
(131421084)
Yakhdi Perari Pinem
(131421088)
Masita
(131421071)
Dosen: Dahlan RP. Sitompul
PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATRA UTARA MEDAN 2013
1
Perkembangan teknologi semakin hari semakin bertambah modern, tidak terkecuali peralatan electronik. Hampir semua menggunakan peralatan serba otomatis, misal smart reley/PLC. Smart reley yaitu alat yang dapat di program oleh suatu bahasa tertentu yang digunakan pada proses otomasi. Alat ini memiliki dua tipe yakni tipe compact dan modular. Smart reley ini memiliki fungsi yaitu pengontrol berbasis mokrokontroler yang memanfaatkan memori yang dapat di program untuk menyimpan instruksi dengan aturan tertentu dan dapat mengimplementasikan fungsi khhusus yakni seperti fungsi logika, pewaktu, pencacahan. Cara kerja smart reley ini adalah memeriksa kondisi input.
Perancangan simulasi traffic light ini dirancang secara miniatur. Dalam hal pemrogramannya, digunakan bahasa pemrograman yaitu dengan Bahasa C, dengan menggunakan Aplikasi Code Vision. Dari hasil pembahasan dan pengujian ” simulasi traffic light berbasis mikrokontroler atmega32A”. Program yang dirancang sebelum dimasukkan ke mikrokontroler terlebih dahulu dilakukan uji simulasi dan telah sesuai dengan apa yang diperlukan. Berdasarkan uji coba yang telah dilakukan bahwa, alat ini bekerja sesuai dengan instruksi atau program yang telah di program.
Prinsip kerja alat ini yaitu dimulai dari group satu, dimana lampu penyeberangan akan hijau dan lampu di grup dua, grup tiga, grup empat merah dan sebaliknya di mana di grup satu merah maka salah satu dari grup lainnya menjadi hijau.
Pendahuluan Jumlah kendaraan bermotor dari tahun ke tahun semakin bertambah. Demikian pula dengan kemacetan kendaraan bermotor juga mengalami kenaikan dan seringnya terjadi kecelakaan bermotor yang disebabkan lengahnya pemilik kendaraan saat memakai kendaraannya. Kondisi ini membuat traffic light menjadi sangat penting, maka diperlukan suatu alat yang dapat membantu pencegah terjadinya kemacetan dan kecelakaan
2
kendaraan bermotor. Salah satunya adalah dengan menggunakan teknologi singlechip yang sering disebut dengan mikrokontroler. Pada perancangan dan pembuatan proyek madya alat ini dibuat berupa sistem simulasi.
Di karenakan Dewasa ini pengguna jalan meningkat dengan pesat, baik pengendara sepeda motor maupun pengendara mobil. Dengan banyaknya kendaraan yang melintas diperlukan suatu pengaturan di sebuah persimpangan, baik pertigaan, perempatan dan banyak lagi. Dengan traffic light yang dipasang diharapkan tidak terjadi kemacetan, dengan sistem yang diatur oleh lampu lalu lintas traffic light. Traffic light ini juga mencegah terjadinya kecelakaan. Juga keadaan dari jalan tidak menentu, di pagi hari ramai orang-orang yang berangkat bekerja atau siswa berangkat ke sekolah, saat siang hari sedikit lengang, kemudian sore harinya mulai ramai kembali. Dengan keadaan tersebut maka dibutuhkan traffic light untuk mengatur lalu lintas supaya berjalan lancar
Untuk membuat traffic light kita membutuhkan beberapa alat dan software simulasi untuk perancangannya ,Dimana sistem simulasi ini menggunakan salah satu software simulasi PROTEUS 7.9. Software yang dapat membuat simulasi dengan mikrokontroler. Dengan adanya software ini kita bisa membuat rangkaian dengan cara simulasi sebelum kita membuat rancangan alat hardware dalam suatu bentuk yang nyata.
1.2 Tujuan dan Manfaat
1.2.1 Tujuan 1. Merancang dan membuat alat untuk dapat bisa mengetahui cara kerja traffic light
3
2. Dapat mengetahui pemakaian software simulasi sebelum membuat hardware
sebenarnya
1.2.2 Manfaat 1. Dengan adanya software simulasi ini akan dapat memudahkan pembuatan hardware 2. Memperoleh pengetahuan tentang software simulasi dan cara kerja traffic light
Alat dan Bahan 1. Mikrokontroller ATMEGA 32A
merupakan sebuah mikrokontroler low power CMOS 8 bit berdasarkan arsitektur AVR RISC. Secara fungsional konfigurasi pin ATMega32 adalah sebagai berikut:
a. b. c.
VCC - Tegangan sumber GND (Ground) - Ground Port A (PA7 – PA0)
4
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin memilki internal pull-up resistor. Output buffer port A dapat mengalirkan arus sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up secara langsung, maka port A akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi sebagai channel ADC (Analog to Digital Converter) sebesar 10 bit. Fungsi-fungsi khusus pin-pin port A dapat ditabelkan seperti yang tertera pada tabel …. Fungsi khusus port A Port PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
d.
Alternate Function ADC7 (ADC input channel 7) ADC6 (ADC input channel 6) ADC5 (ADC input channel 5) ADC4 (ADC input channel 4) ADC3 (ADC input channel 3) ADC2 (ADC input channel 2) ADC1 (ADC input channel 1) ADC0 (ADC input channel 0)
Port B (PB7 – PB0) Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin mengandung internal pull-up resistor. Output buffer port B dapat mengalirkan arus sebesar 20 mA. Ketika port B digunakan sebagai input dan di pull-down secara external, port B akan mengalirkan arus jika internal pull-up resistor diaktifkan. Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya : · SCK port B, bit 7 Input pin clock untuk up/downloading memory. · MISO port B, bit 6 Pin output data untuk uploading memory. · MOSI port B, bit 5 Pin input data untuk downloading memory. Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti pada tabel
Port PB7 PB6 PB6 PB5 PB3 OCO PB2 INT2
Alternate Function SCK (SPI Bus Serial Clock) MISO (SPI Bus Master Input/Slave Output) MOSI (SPI Bus Master Output/Slave Input) SS (SPI Slave Select Input) AIN1 (Analog Comparator Negative Input) (Timer/Counter0 Output Compare Match Output) AIN0 (Analog Comparator Positive Input) (External Interrupt 2 Input)
5
PB1 PB0
e.
Port PC7 PC6 PC6 PC5 PC3 PC2 PC1 PC0 f.
Port PD7 PD6 PD6 PD5 PD3 PD2 PD1 PD0 2. 3. 4. 5. 6. 7. 8.
T1 (Timer/Counter1 External Counter Input) T0 (Timer/Counter External Counter Input) XCK (USART External Clock Input/Output)
Port C (PC7 – PC0) Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin memiliki internal pull-up resistor. Output buffer port C dapat mengalirkan arus sebesar 20 mA. Ketika port C digunakan sebagai input dan di pulldown secara langsung, maka port C akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan seperti yang tertera pada tabel dibawah ini. Alternate Function TOSC2 (Timer Oscillator Pin 2) TOSC1 (Timer Oscillator Pin 1) TD1 (JTAG Test Data In) TD0 (JTAG Test Data Out) TMS (JTAG Test Mode Select) TCK (JTAG Test Clock) SDA (Two-wire Serial Bus Data Input/Output Line) SCL (Two-wire Serial Bus Clock Line) Port D (PD7 – PD0) Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin memiliki internal pull-up resistor. Output buffer port D dapat mengalirkan arus sebesar 20 mA. Ketika port D digunakan sebagai input dan di pulldown secara langsung, maka port D akan mengeluarkan arus jika internal pull-up resistor diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan seperti yang tertera pada tabel dibawah ini. Alternate Function OC2 (Timer / Counter2 Output Compare Match Output) ICP1 (Timer/Counter1 Input Capture Pin) OCIB (Timer/Counter1 Output Compare B Match Output) TD0 (JTAG Test Data Out) INT1 (External Interrupt 1 Input) INT0 (External Interrupt 0 Input) TXD (USART Output Pin) RXD (USART Input Pin)
Crystal Resistor Lampu Led Kabel IC Saklar Button Reset Botton 6
9. Papan PCB 10. Solder, Timah, Multitester, Tespen 11. Capasitor
Skema Desain
7
Program 8
/******************************************************* This program was created by the CodeWizardAVR V3.04 Evaluation Automatic Program Generator © Copyright 1998-2013 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : Author : Company : Comments:
LAMPU RAMBU 1.0 05/01/2014 IS9
Chip type : ATmega32A Program type : Application AVR Core Clock frequency: 12,000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 512 *******************************************************/ #include
atmega32a. #include #define M1 ke 1) #define K1 ke 1) #define H1 ke 1), dst
// mengaktifkan library mega32a.h , karena menggunakan // mengaktifkan library fungsi penundaan
PORTC.0
// mendefinisikan PORT C bit ke 0 sebagai M1 (Merah led
PORTC.1
// mendefinisikan PORT C bit ke 1 sebagai K1 (Kuning led
PORTC.2
// mendefinisikan PORT C bit ke 2 sebagai H1 (Hijau led
#define M2 #define K2 #define H2
PORTC.3 PORTC.4 PORTC.5
#define M3 #define K3 #define H3
PORTC.6 PORTC.7 PORTA.7
#define M4 #define K4 #define H4
PORTA.6 PORTA.5 PORTA.4
void a() // membuat fungsi a (lampu pertama) { // isi fungsi di mulai dengan buka kurung kurawal "{" , dan di tutup dengan tutup kurung kurawal "}". unsigned int t=8500; // mendeklarasikan variabel bernama "t" dan berjenis unsigned int, dengan nilai awal 8500 (desimal) unsigned int kedip=500; // mendeklarasikan variabel bernama "t" dan berjenis unsigned int, dengan nilai awal 500 (desimal) M1=1; // M1 (atau nama lain dari PORTC.0), di beri nilai logika 1 (biner) atau sinyal high.{karena rangkaian menggunakan active low (saat di beri logika 0, maka led menyala, dan logika 1 maka led akan padam} K1=1; // K1 (atau nama lain dari PORTC.1), di beri nilai logika 1 (biner) atau sinyal high.(active low di pilih untuk meringankan kerja microcontroller) H1=0; M2=0; K2=1; H2=1;
//merah //kuning //hijau
M3=0; K3=1; H3=1; M4=0; K4=1; H4=1; delay_ms(t);
// beri tunda selama t ms, nilai t telah di definisikan di
9
awal saat pendeklarasian variabel. K1=0; K2=1; K3=0; K4=1; delay_ms(kedip); // beri tunda selama kedip ms, nilai kedip telah di definisikan di awal saat pendeklarasian variabel. K1=1; // led kuning di padamkan seluruhnya. K2=1; K3=1; K4=1; delay_ms(kedip); K1=0; // di nyalakan saja led kuning ke 2 dan ke 4 (karena penyalaan lampu yang memiliki urutan 1-3-2-4. K2=1; K3=0; K4=1; delay_ms(kedip); } void b() { unsigned int t=85000; unsigned int kedip=500; M1=0; K1=1; H1=1; M2=1; K2=1; H2=0; M3=0; K3=1; H3=1; M4=0; K4=1; H4=1; delay_ms(t); K1=1; K2=0; K3=1; K4=0; delay_ms(kedip); K1=1; K2=1; K3=1; K4=1; delay_ms(kedip); K1=1; K2=0; K3=1; K4=0; delay_ms(kedip); } void c() { unsigned int t=85000; unsigned int kedip=500; M1=0; K1=1; H1=1; M2=0; K2=1; H2=1; M3=1; K3=1; H3=0;
10
M4=0; K4=1; H4=1; delay_ms(t); K1=1; K2=0; K3=0; K4=1; delay_ms(kedip); K1=1; K2=1; K3=1; K4=1; delay_ms(kedip); K1=1; K2=0; K3=0; K4=1; delay_ms(kedip); } void d() { unsigned int t=85000; unsigned int kedip=500; M1=0; K1=1; H1=1; M2=0; K2=1; H2=1; M3=0; K3=1; H3=1; M4=1; K4=1; H4=0; delay_ms(t); K1=0; K2=1; K3=1; K4=0; delay_ms(kedip); K1=1; K2=1; K3=1; K4=1; delay_ms(kedip); K1=0; K2=1; K3=1; K4=0; delay_ms(kedip); }
// Declare your global variables here void main(void) { // Declare your local variables here //Dalam program INI YANG DI JADIKAN SEBAGAI OUTPUT ADALAH SELURUH PORT C DAN NIBLE ATAS PORT A. // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<
11
// State: Bit7=1 Bit6=1 Bit5=1 Bit4=1 Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<
| (0<
|
(0<
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 46,875 kHz // Mode: Normal top=0xFFFF // OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 1,3981 s // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(0<
12
TIMSK=(0<
a. c. b. d.
// urutan pemanggilan fungsi ini sebagai pengurutan nyala trafficlight yang di inginkan. } }
Simulasi
13
(sebelum simulasi dijalankan)
(sesudah simulasi dijalankan)
14
15
16
Referensi http://akbarulhuda.wordpress.com/2010/12/10/membuat-traffict-light-sendirimudah/#more-263 http://eelcorp09.blogspot.com/2009/09/1.html http://omayib.com/?p=183 Catur Edi, Widodo. 2005. Interfacing KomputerdanMikrokontroler.Jakarta :PTElex Media Komputindo. Sudjadi. 2005.TeoriAplikasiMikrokontrolerEdisiPertama.Yogyakarta:GrahaIlmu. Wasito S, B. Hermanan. 1983.PerancanganSistemdanAplikasiMikrokontroller AT Mega16K. Bandung: PT Elex Media Komputindo.
17
Biografi Penulis Ammazizzaky Tarigan, A.Md adalah alumni dari D3 Teknik Informatika USU dari kota Medan, setelah lulus melanjutkan kuliah untuk mengambil S1 di Ilmu Komputer USU. Penulis sedang bekerja sebagai Guru Teknologi Informatika & Komputer di Yayasan Istiqlal Medan.
Syahrial Affandi, A.Md adalah alumni dari D3 Statistika USU dari kota Medan, setelah lulus melanjutkan kuliah untuk mengambil S1 di Ilmu Komputer USU. Penulis aktif di organisasi keagamaan dan bekerja sebagai Perancang Grafis di Rifandesign.
Yakhdi Perari Pinem, A.Md adalah alumni dari D3 Teknik Informatika USU dari kota Medan, setelah lulus melanjutkan kuliah untuk mengambil S1 di Ilmu Komputer USU. Penulis sedang bekerja sebagai pegawai di perusahaan swasta.
Masita, A.Md adalah alumni dari D3 Teknik Informatika USU dari kota Medan, setelah lulus melanjutkan kuliah untuk mengambil S1 di Ilmu Komputer USU. Penulis sedang bekerja sebagai pegawai di perusahaan swasta.
18