際際滷

際際滷Share a Scribd company logo
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 <mega32a.h>
atmega32a.
#include <delay.h>
#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<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) |
(0<<DDA0);
//port A nibble atas di jadikan output

11
// State: Bit7=1 Bit6=1 Bit5=1 Bit4=1 Bit3=T Bit2=T Bit1=T Bit0=T
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) |
(0<<PORTA1) | (0<<PORTA0); //nilai awal port A adalah 0 (low)
// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) |
(0<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) |
(0<<PORTB1) | (0<<PORTB0);
// Port C initialization
// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out
DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) |
(1<<DDC0);
//port C seluruhnya dijadikan output
// State: Bit7=1 Bit6=1 Bit5=1 Bit4=1 Bit3=1 Bit2=1 Bit1=1 Bit0=1
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) |
(0<<PORTC1) | (0<<PORTC0); // nilai awal port C adalah 0 (low)
// Port D initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) |
(0<<DDD0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) |
(0<<PORTD1) | (0<<PORTD0);
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00)
(0<<CS00);
TCNT0=0x00;
OCR0=0x00;

| (0<<WGM01) | (0<<CS02)

|

(0<<CS01) |

// 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<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (1<<CS12) | (0<<CS11) |
(0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0<<AS2;
TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
TCNT2=0x00;
OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization

12
TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) |
(0<<OCIE0) | (0<<TOIE0);
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
MCUCSR=(0<<ISC2);
// USART initialization
// USART disabled
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8)
| (0<<TXB8);
// Analog Comparator initialization
// Analog Comparator: Off
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) |
(0<<ACIS0);
SFIOR=(0<<ACME);
// ADC initialization
// ADC disabled
ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1)
| (0<<ADPS0);
// SPI initialization
// SPI disabled
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) |
(0<<SPR0);
// TWI initialization
// TWI disabled
TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
while (1)
{
// Place your code here
a();
// panggil fungsi
c();
// panggil fungsi
b();
// panggil fungsi
d();
// panggil fungsi

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

More Related Content

Traffic Light Berbasis ATMega32A

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 9. Papan PCB 10. Solder, Timah, Multitester, Tespen 11. Capasitor Skema Desain 7
  • 9. / 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 <mega32a.h> atmega32a. #include <delay.h> #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
  • 10. 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
  • 11. 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<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); //port A nibble atas di jadikan output 11
  • 12. // State: Bit7=1 Bit6=1 Bit5=1 Bit4=1 Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); //nilai awal port A adalah 0 (low) // Port B initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port C initialization // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0); //port C seluruhnya dijadikan output // State: Bit7=1 Bit6=1 Bit5=1 Bit4=1 Bit3=1 Bit2=1 Bit1=1 Bit0=1 PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); // nilai awal port C adalah 0 (low) // Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) (0<<CS00); TCNT0=0x00; OCR0=0x00; | (0<<WGM01) | (0<<CS02) | (0<<CS01) | // 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<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (1<<CS12) | (0<<CS11) | (0<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0<<AS2; TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20); TCNT2=0x00; OCR2=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization 12
  • 13. TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0); // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); MCUCSR=(0<<ISC2); // USART initialization // USART disabled UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); SFIOR=(0<<ACME); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); // SPI initialization // SPI disabled SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0); // TWI initialization // TWI disabled TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE); while (1) { // Place your code here a(); // panggil fungsi c(); // panggil fungsi b(); // panggil fungsi d(); // panggil fungsi a. c. b. d. // urutan pemanggilan fungsi ini sebagai pengurutan nyala trafficlight yang di inginkan. } } Simulasi 13
  • 14. (sebelum simulasi dijalankan) (sesudah simulasi dijalankan) 14
  • 15. 15
  • 16. 16
  • 17. 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
  • 18. 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