Anda di halaman 1dari 20

LAPORAN TUGAS AKHIR

TEKNIK MIKROPROSESSOR
SISTEM PENGAMAN PALANG PINTU OTOMATIS

Untuk Memenuhi Tugas Mata Kuliah


Praktikum Mikroprosessor

Yang dibimbing oleh


Dyah Lestari, S.T., M.Eng

Disusun oleh
Ahmad Zuhri Wafa

(130532506596)

Asadul Umam P.Y.K.

(130532606600)

Purnomo

(130532506572)

JURUSAN TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS NEGERI MALANG
Desember 2014

A. TUJUAN
1. Meningkatkan sisitem keamanan peringatan perlintasan kereta api.
2. Menurunkan tingkat kecelakaan di perlintasan kereta api
3. Membuat sisitem yang memudahkan monintoring kedatangan kereta api
4. Mengetahui dan menerapkan aplikasi komunikasi serial mikrokontroller
dengan komputer.

B. DASAR TEORI
Sistem palang pintu otomatis dibangun untuk meminimalisasi kecelakaan
yang sering terjadi setiap tahun. Sistem ini terdiri dari inputan yang berupa sensor
photo diode yang berfungsi mendeteksi keberadaan kereta api, mikrokontroller
sebagai pengolah data informasi dan motor sebagai output pengerak palang pintu
rel kereta api serta lampu indikator sebagai petunjuk keadaan perlintasan kereta
api. Sebagai penampil informasi data dari mikrokontroller ke computer
memanfaatkan fitur komunikasi serial, yaitu memfungsikan Port Tx dan Rx
mikrokontroller

yang dihubungkan dengan IC RS-232 sebagai penyesuai

tegangan anatara tegangan computer dan IC ttl dengan conector DB-9. Komputer
sebagai penampil keadaan lampu indikator yang dapat membantu memudahkan
tugas monitoring petugas penjaga palang pintu kereta api. Untuk menampilkan
informasi keadaan perlintasan di computer harus menggunakan sotware interface
yaitu Delphi 7. Berikut ini gambar bagan sisitem pengaman palang pintu otomatis
berbasis mikrokontroller atmega 16 dengan komunikasi serial.
Modul Input

Mikrokontroller

Modul Out put

Modul Input
Modul input terdiri dari rangkaian sensor photo diode, led, potensio
meter sebagai tegangan refrensi dan komperator. Prinsip kerja rangkaian modul
input adalah sebagai berikut : Modul input ini terdiri dari komperator yang
berfungsi membandingkan anatara input inverting dan non inverting, sensor
photo diode dihubungkan dengan input inverting sedangkan tegangan refrensi

dibangun dari rangkaian potensio meter yang dihubungkan dengan VCC 5 V


yang merupakan input non inverting.
Modul Mikrokontroller Atmega 16
AVR merupakan seri mikrokontroler Complementary Metal Oxide
Semiconductor (CMOS) 8-bitbuatan Atmel berbasis arsitektur RISC (Reduced
Instruction Set Computer). Hampir semua instruksi pada program dieksekusi
dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/
counter fleksibel dengan mode compare, interupsi internal dan eksternal, serial
UART, programmable Watchdog Timer, power saving mode, ADC dan PWM.
AVR pun mempunyai In-System Programmable (ISP) Flash on-chip yang
mengijinkan memori program untuk diprogram ulang (read/write) dengan
koneksi secara serial yang disebut Serial Peripheral Inteface (SPI). AVR
memilki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan
mikrokontroler AVR yaitu memiliki kecepatan dalam mengeksekusi program
yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam 1 siklus
clock (lebih cepat dibandingkan mikrokontroler keluarga MCS 51 yang
memiliki arsitektur Complex Intrukstion Set Compute. ATMega16 mempunyai
throughput mendekati 1 Millions Instruction Per Second (MIPS) per MHz,
sehingga membuat konsumsi daya menjadi rendah terhadap kecepatan proses
eksekusi perintah.
Beberapa keistimewaan dari AVR ATMega16 antara lain:
1. Mikrokontroler AVR 8 bityang memilliki kemampuan tinggi dengan
konsumsi daya rendah.
2. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi
16MHz.
3. Memiliki kapasitas Flashmemori 16 Kbyte, EEPROM 512 Byte dan
SRAM 1 Kbyte.
4. Saluran I/O sebanyak 32 buah, yaitu PortA, PortB, PortC dan PortD.
5. CPU yang terdiri dari 32 buah register.
6. Unit interupsi dan eksternal.
7. PortUSART untuk komunikasi serial

8. Fitur peripheral
Tiga buah Timer/Counter dengan kemampuan perbandingan (compare).
Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode
Compare.
Satu buah Timer/Counter 16 bit dengan Prescaler terpisah, Mode
Compare dan Mode Capture.
Real Time Counter dengan Oscillator tersendiri.
Empat kanal PWM.
8 kanal ADC.
8 Single-ended Channel dengan keluaran hasil konversi 8 dan 10 resolusi
(register ADCH dan ADCL).
7 Diferrential Channelhanya pada kemasan Thin Quad Flat Pack (TQFP).
2 Differential Channeldengan Programmable Gain.
Antarmuka Serial Peripheral Interface (SPI)Bus.
Watchdog Timerdengan Oscillator Internal.
On-chip Analog Comparator.
9. Non-volatile program memory
Konfigurasi atmega 16

Pengembangan sebuah sistem yang menggunakan mikrokontroler AVR


buatan ATMEL menggunakan software AVR STUDIO dan CodeVision AVR.
AVR STUDIO merupakan software khusus untuk bahasa assembly yang
mempunyai fungsi sangat lengkap, yaitu digunakan untuk menulis program,
kompilasi, simulasi dan download program ke IC mikrokontroler AVR dapat
dilakukan pada CodeVision. CodeVision AVR memilki fasilitas terminal, yaitu

untuk melakukan komunikasi serial dengan mikrokontroler yang sudah di


program. Proeses download program ke IC mikrokontroler AVR dapat
menggunakan system download secara In-System Programming (ISP). ISP
Flash On-chip mengijinkan memori program untuk diprogram ulang dalam
sistem menggunakan hubungan serial SPI.
Mikrokontroler AVR dapat menggunakan bahasa C dalam penulisan
programnya, sehingga dapat memudahkan dan mempersingkat instruksi
intruksi yang digunakan dalam bahasa assembly. Dalam pembuatan program
yang menggunakan fungsi atau aritmatika, Bahasa C menawarkan kemudahan
dengan menyediakan fungsi fungsi khusus, seperti: pembuatan konstanta,
operator aritmatika, operatot logika, operator bitwise dan operator Assigment.
Selain itu, bahasa C menyediakan Program kontrol seperti: Percabangan (if dan
ifelse), Percabangan switch, Looping (for, while dandowhile), Array, serta
fungsi fungsi lainnya. Di bawah ini merupakan contoh penulisan program
dalam bahasa C untuk mikrokontroler AVR ATMega16. Berikut adalah
perintah mikrokontroler mengirim data ke PC.
#include <mega16.h>
#include <stdio.h>
#include <delay.h>
#include <string.h>
void main(void) {
unsigned char judul[]={"Kirim Data"};
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0X00; // Baud rate 9600bps, pada kristal 4 MHz
UBRRL=0X19;
puts(judul); //tampilkan pesan dan ganti baris
putchar('O');
delay_ms(100); //tunggu UDR siap
UDR='K';
}

Diatas adalah contoh program pengiriman data ke PC. Maka, pada saat kita
membuka hyperterminal pada PC dan menjalankannya, maka akat tampil
tulisan Kirim Data.
Modul Output
L293D ini adalah suatu bentuk rangkaian daya tinggi terintegrasi yang
mampu melayani 4 buah beban dengan arus nominal 600 mA hingga
maksimum 1.2 A. Keempat channel inputnya di desain untuk dapat menerima
masukan level logika TTL. Biasa dipakai sebagai driver relay, motor DC,
motor steper maupun pengganti transistor sebagai saklar dengan kecepatan
switching mencapai 5kHz. Driver tersebut berupa dua pasang rangkaian hbridge yang masing-masing dikendalikan oleh enable 1 dan enable 2. Gambar
rangkaian dan cara kerjanya adalah dengan memberikan tegangan 5V sebagai
Vcc pada pin 16 dan 9 Volt pada pin 8 untuk tegangan motor, maka IC siap
digunakan. Saat terdapat tegangan pada input 1,2, dengan memberikan logika
tinggi pada enable1 maka output 1,2 akan aktif. Sedangkan jika enable1
berlogika rendah, meskipun terdapat tegangan pada input 1 dan 2 output tetap
nol (tidak aktif). Hal ini juga berlaku untuk input dan output 3,4 serta enable2.
Konfigurasi pin ICL293D tersebut dapat dilihat lebih jelas pada gambar
berikut:

Motor listrik merupakan perangkat elektromagnetis yang mengubah


energy listrik menjadi energi mekanik. Motor DC memerlukan suplai tegangan
yang searah pada kumparan medan untuk diubah menjadi energi mekanik.
Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar)
dan kumparan jangkar disebut rotor (bagian yang berputar). Jika terjadi putaran
pada kumparan jangkar dalam pada medan magnet, maka akan timbul tegangan
(GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga

merupakan tegangan bolak-balik. Prinsip kerja dari arus searah adalah


membalik phasa tegangan dari gelombang yang mempunyai nilai positif
dengan menggunakan komutator, dengan demikian arus yang berbalik arah
dengan kumparan jangkar yang berputar dalam medan magnet. Bentuk motor
paling sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di
antara kutub-kutub magnet permanen.

Mekanisme kerja untuk seluruh jenis motor secara umum:


1. Arus listrik dalam medan magnet akan memberikan gaya.
2. Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran /
loop, maka kedua sisi loop, yaitu pada sudut kanan medan magnet, akan
mendapatkan gaya pada arah yang berlawanan.
3. Pasangan gaya menghasilkan tenaga putar / torque untuk

memutar

kumparan.
4. Motor-motor memiliki beberapa loop pada dinamonya untuk memberikan
tenaga putaran yang lebih seragam dan medan magnetnya dihasilkan oleh
susunan elektromagnetik yang disebut kumparan medan.
Komunikasi Data Serial
Untuk dapat berhubungan dengan piranti lain (ex: mikrokontroller komputer, mikrokontroller - mikrokontroller dll), mikrokontroller dilengkapi
dengan fasilitas komunikasi. Ada 2 jenis fasilitas komunikasi yang dikenal,
yaitu komunikasi parallel dan komunikasi serial. Sesuai dengan namanya pada
komunikasi parallel transfer data dilakukan secara serempak/bersamaan,
sedangkan pada komunikasi serial data dikirim secara bergantian. Komunikasi
secara parallel memiliki kelebihan pada kecepatan transfer data, tetapi kualitas

suatu komunikasi tidak hanya ditentukan oleh kecepatannya saja, ada faktor
lain yang perlu diperhatikan yaitu jarak dan ke-praktis-an. Komunikasi parallel
memerlukan jalur data yang lebih banyak, yang berarti pengkabelan (wiring)
juga akan semakin banyak. Pada komunikasi serial biasanya hanya dibutuhkan
2 sampai 3 kabel saja, jadi bisa dikatakan komunikasi serial lebih praktis
dibanding parallel apalagi jika komunikasi dilakukan dengan jarak yang jauh.
Agar komunikasi serial dapat berjalan dengan baik dibutuhkan suatu
protocol/aturan komunikasi. Pada ATMEGA8535 terdapat beberapa protocol
komunikasi serial, yaitu: USART, SPI, dan I2C. Tugas akhir ini akan
menerapkan protocol komunikasi USART, serta mempraktikkan komunikasi
antar dua buah mikrokontroller. Dengan menggunakan protocol USART ada 2
jenis mode komunikasi, yaitu: Sinkron, dan asinkron. Pada mode sinkron,
mikrokontroller dan peripheral yang berkomunikasi akan menggunakan
clock/detakkerja yang sama, sedangkan pada mode asinkron mikrokontroller
dan peripheral bisa bekerja pada clock-nya masing-masing.

C. ALAT DAN BAHAN


1. Alat
No
Nama Alat
1 Solder
2 Atractor
3 Gergaji
4 Obeng +
5 Obeng 6 Tang potong
7 Bor listrik
8 Multimeter Analog
9 USB Serial
10 USB Downloader
11 Laptop

Jumlah
1 buah
1 buah
1 buah
1 buah
1 buah
1 buah
1 buah
1 buah
1 buah
1 buah
1 buah

2. Bahan
No
Nama Alat
1 Mikrokontroler ATmega 16
2 Kristal 12 Mhz
3 Kapasitor 220 pF
4 Kapasitor 10 uF/16V
5 Terminal 2 Pin
6 Dioda 1N4007

Jumlah
1 buah
1 buah
1 buah
1 buah
1 buah
1 buah

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

Resistor 4,7 KOhm


Resistor 330 Ohm
Resistor 1 KOhm
Resistor Variabel
Led
Push button
IC L293D
LM 7805
LM 324
BD139
Header 1x10
Header 1x6
Header 1x2
PCB polos
Spiser
Photo Dioda
Motor DC
Acrilic
Kabel
Timah
Pasta timah

1 buah
5 buah
8 buah
2 buah
6 buah
1 buah
1 buah
1 buah
1 buah
4 buah
6 buah
1 buah
9 buah
1 buah
8 buah
2 buah
1 buah
secukupnya
secukupnya
secukupnya
secukupnya

D. DIAGRAM BLOK

Lampu

Sensor 1
Mikrokontroler

Sensor 2

Motor

E. PRINSIP KERJA
a. Input
Input yang akan dideteksi pada rangkaian ini adalah kereta api. Sensor
yang mendeteksi keberadaan kereta api yang melintas di jalur kereta dengan
kecepatan yang berbeda-beda menggunakan fotodiode dan LED yang
digunakan sebagai suber cahaya untuk menyinari fotodiode. Kemudian
objek yang terdeteksi sensor, masuk ke rangkaian komparator untuk
dikondisikan sehingga menghasilkan pulsa.

b. Mikrokontroler ATmega 16
Output dari komparator kemudian dibaca oleh mikrokontroler.
Didalam mikrokontroler data berupa pulsa tersebut akan dikeluarkan ke
indikator LED, putaran motor yang digunakan sebagai penggerak palang
pintu, buzzer.

F. GAMBAR DAN PENJELASAN RANGKAIAN


1. Gambar Skema Rangkaian

Skema Minimum Sistem ATMega 16

Skema Rangkaian Sensor

Skema Rangkain Input dan Output


2. Penjelasan Rangkaian
Pada rangkaian inputan dimulai dari sensor 1, jika sensor tidak
mendapat cahaya (cahaya terhalang oleh kerata api) maka sinyal akan
diteruskan ke IC LM324 sebagai komparator. Pada kondisi tersebut
komparator akan memberikan logika 1 (aktif 1) pada PORTA.0.
Setelah mendapat inputan dari PORTA.0 maka mikrokontrol akan
memberikan logika pada PORTB= 0b01101010, yang artinya PORTB akan
mengaktifkan output LED warna kuning, buzzer, dan mengaktifkan motor
searah jarum jam (membuka palang pintu).
Setelah itu menuju ke sensor 2, jika sensor tidak mendapat cahaya
(cahaya terhalang oleh kerata api) maka sinyal akan diteruskan ke IC
LM324 sebagai komparator. Pada kondisi tersebut komparator akan
memberikan logika 0 (aktif 0) pada PORTA.0.

G. Penjelasan Flowchart
3. Flow Chart Sistem Pengaman Palang Pintu Otomatis
A

Start

Inisialisasi
port,register

Kereta
lewat

Led Hijau
=1
Led kuning
=0
Ambil data sensor 1
Led
merah = 1

Kereta
lewat

Motor
close

Buzzer
on

Motor mati

delay
Led hijau
=0

Led merah=
0
Buzzer on
nyitnyit

Led kuning
=1

Led hijau
=1

Motor open
Ambil data
sensor 2
Motor mati
A

Penjelasan flowcart
1. Saat alat dihidupkan pertama kali program akan melakukan inisialisasi port
yang akan digunakan sebagai input atau output. LED hijau sebagai indicator
kondisi aman akan menyala.
2. Saat sensor 1 mendeteksi kedatangan kereta lampu hijau akan mati, dan lampu
kuning akan menyala, buzzer akan berbunyi nyitnyit.
3. Saat sensor 2 mendeteksi kedatangan kereta maka LED kuning akan mati, LED
merah akan menyala, palang pintu kereta akan tertutup dan buzzer menyala
dengan keras.
4. Setelah kereta lewat maka LED hijau akan menyala dan palang pintu akan
membuka.

H. LISTING PROGRAM
#include <mega16.h>
#include <delay.h>
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P
PORTA=0xFF;
DDRA=0x00;
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0b00000001;
DDRB=0xFF;
// Port C initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out


Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0xFF;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
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=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization

// TWI disabled
TWCR=0x00;
while (1)
{
if(PINA.0==1)
{PORTB=0b01101010;
delay_ms(10);
PORTB=0b00000010;
delay_ms(10);
PORTB=0b00001010;}
if(PINA.1==0)
{PORTB=0b01011100;
delay_ms(50);
PORTB=0b00001100;
delay_ms(100);
PORTB=0b01100001;
delay_ms(50);
PORTB=0b00000001;}
delay_ms(5);
}
}

I. GAMBAR ALAT
Gambar alat tampak samping

Gambar alat tampak depan

Gambar alat tampak belakang.

J. PROSEDUR KERJA ALAT


1. Hubungkan modul dengan sumber tegangan masukkan program yang telah
dibuat dengan USB SAP.
2. Letakkan sensor 1 dan 2 sesuai jarak yang telah ditentukan.
3. Pastikan konsisi sensor, buzzer dalam keadaan baik.
4. Pastikan kondisi alat penggerak dalam kondisi baik.
5. Jalankan kereta api bila kereta api terdeteksi sensor 1 maka LED kuning dan
buzzer sebagai indicator peringatan akan aktif.
6. Bila sensor ke-2 mendeteksi kedatangan kereta api maka LED merah,
buzzer akan aktif dan palang pintu akan menutup.
7. Setelah kereta lewat maka pintu akan kembali terbuka dan LED hijau akan
menyala kembali.

K. GAMBAR HASIL PERCOBAAN


Gambar ketika sensor pertama aktif

Gambar ketika sensor kedua aktif

L. KESIMPULAN
Untuk membangun sistim palang pintu otomatis berbasis mikrokontroler
ATMega 16 dibutuhkan beberapa bagian yaitu modul input, modul pengolah
data (ATMega 16) dan modul output yang akan dijalankan atau dikontrol.
Untuk menentukan kondisi sensor untuk mendeteksi kedatangan kereta
dan mengontrol palang menggunakan perulangan atau looping. Karena
membutuhkan kondisi perulangan secara kontinyu.

M. DAFTAR RUJUKAN
Belajar mikrokontroler AVR www.anikom.com
Belajar pemograman bahasa CAVR www.amikom.com

Anda mungkin juga menyukai