Anda di halaman 1dari 32

LAPORAN PRAKTIKUM MIKROKONTROLER DAN MIKROPROSESOR

“RANGKAIAN PALANG KERETA”

Disusun Oleh:
M. Aji Pangestu 184308031
Sebastian Yudith Prastiawan 184308042

Dosen Pengampu:
R. Akbar Nur Apriyanto, S.Tr.T., M.Tr.T.

PROGRAM STUDI PERKERETAAPIAN


JURUSAN TEKNIK
POLITEKNIK NEGERI MADIUN
2021
A. Tujuan

1. Peserta Didik mampu menjelaskan pengertian data digital yang berkaitan dengan
mikrokontroler.
2. Peserta Didik mampu menentukan data digital sebagai input dan output pada
mikrokontroler.
3. Peserta Didik mampu mengimplementasiakan fungsi antarmuka data digital pada
mikrokontroler CVAVR dan Arduino.
4. Peserta Didik mampu membuat rangkaian dan pemrograman data digital pada
mikrokontroler CVAVR dan Arduino.

B. Dasar Teori

1. Data Digital

Dalam ilmu elektronika, digital tidak menunjuk pada besar dari voltase atau
arus pada suatu tempat dalam rangkaian, tetapi suatu keadaan yang berkaitan
dengan voltase atau arus tertentu. Hanya terdapat dua keadaan, yaitu keadaan yang
diartikan satu dan keadaan yang diartikana nol. Misalnya "ada" diartikan sebagai 1
dan voltase "tidak ada" diartikan sebagai 0. Dalam praktek kata voltase ada atau
voltase tidak ada harus dijelaskan lebih rinci. Misalnya voltase ada terdapat kalau
voltase pada sambungan tersebut antara 3V dan 5V dan tidak ada voltase berarti
voltase pada sambungan tersebut lebih kecil dari 0.4V. Dengan cara ini voltase
tidak perlu terlalu tepat, tetapi cukup kalau voltase tersebut memiliki kira-kira suatu
nilai tertentu. Dengan ketentuan ini rangkaian-rangkaian digital menjadi kurang
peka terhadap derau atau perubahan voltase supply atau gangguan yang lain.

Dengan mengartikan keadaan pada suatu rangkaian listrik sebagai angka 0


atau angka 1, maka suatu rangkaian listrik digital dapat dianalisis menggunakan
bilangan dalam system dual. Dengan aljabar Boolean transformasi tertentu bisa
dilakukan dengan bilangan-bilangan tersebut. Hal ini yang dilakukan dalam
komputer.

2. Sistem Digital dan Sistem Analog

Perancang dan teknisi elektronik harus mempunyai pengetahuan baik system


digital maupun analog. Perancang harus memutuskan apakah sistem akan
menggunakan teknik analog atau digital atau kombinasi keduanya. Teknisi harus
membangun protipe atau mencari kerusakan dan perbaikan pada sistem digital
analog, dan kombinasi keduanya.

Sistem elektronika analog telah lebih popular di zaman dulu. Informasi dunia
nyata yang berhubungan dengan pengukuran waktu, kecepatan, berat tekanan,
intensitas cahaya dan posisi semuanya analog di alam. Sistem digital diperlukan
ketika data harus disimpan, dugunakan untuk perhitungan atau diperagakan sebagai
angka/huruf. Sesuatu yang lebih komplek yang mengatur pengukuran banyaknya
cairan dalam tangki air adalah sistem digital. Beberapa keuntungan yang diberikan
dalam menggunakan rangkaian digital dibandingkan dengan analog adalah sebagai
berikut:

• IC yang tidak mahal dapat digunakan dengan sedikit komponen eksternal.

• Informasi dapat disimpan untuk peride pendek atau tak didefenisikan

• Data dapat digunakan untuk perhitungan presisi.

• Sistem dapat didesain lebih muda menggunakan kelompok logika digital


compatible/praktis.
• Sistem dapat deprogram dan menunjukkan kemampuan berdasar.

3. Aplikasi Interface Data Digital

Berikut beberapa contoh komponen atau perangkat antarmuka yang menggunakan


data digital baik input maupu output:

3.1 Led Emiting Diode

Light Emitting Diode (LED) adalah komponen elektronika yang dapat


memancarkan cahaya. Sesuai dengan namanya, LED adalah salah satu jenis diode.
Sebagaimana yang diketahui, diode adalah komponen yang hanya dapat
mengalirkan arus listrik satu arah. Arus listrik hanya mengalir kalua tegangan
positif dihubungkan ke kaki yang disebut anode dan tegangan negatif dihubungkan
ke kaki yang dinamakan katode.

3.2 Seven Segment

Prinsip kerja seven segment sama dengan led, seven segment terdiri dari 7
led yang disusun membentuk angka delapan dan tambahan 1 led untuk titik.
Terdapat dua jenis seven segment yaitu seven segment commod cathode (katoda)
dan seven segment commod anode(anoda).

• Seven Segment Commond Cathode

Pada seven Segmen jenis Common Cathode (Katoda), Kaki Katoda pada
semua segmen LED adalah terhubung menjadi 1 Pin, sedangkan Kaki Anoda akan
menjadi Input untuk masing-masing Segmen LED. Kaki Katoda yang terhubung
menjadi 1 Pin ini merupakan Terminal Negatif (-) atau Ground sedangkan Signal
Kendali (Control Signal) akan diberikan kepada masing-masing Kaki Anoda
Segmen LED.

• Seven Segment Commond Anode

Pada seven Segmen jenis Common Anode (Anoda), Kaki Anoda pada semua
segmen LED adalah terhubung menjadi 1 Pin, sedangkan kaki Katoda akan
menjadi Input untuk masing-masing Segmen LED. Kaki Anoda yang terhubung
menjadi 1 Pin ini akan diberikan Tegangan Positif (+) dan Signal Kendali (control
signal) akan diberikan kepada masing-masing Kaki.

3.3 Led Matrix

Dot Matrix atau matrix led merupakan kumpulan titik cahaya yang tersusun
menjadi sejumlah kolom dan baris. Pada komponen ini led tersusun pada kolom
dan baris yang sudah ditentukan, dan setiap pin di kolom dan bari tersebut harus
tersambung ke data digital di mikrokontroler untuk dikontrol. Pada
dasaranya led matrix adalah display led yang disusun sedemikian rupa
sehingga untuk membuat sebuah karakter dibutuhkan kombinasi tegangan
antara pin baris dan kolom.

Scanning untuk kolom dimaksud memberikan "1" high (untuk


common katoda) atau"0" untuk common anoda , untuk kolom lainnya diberi
nilai negasi dari kolom yg diberi nilai 1 sebelumnya begitu selanjutnya
untuk kolom berikutnya sampai kolom terakhir dari rangkaian led matrix
dan berulang dari depan lagi. Proses ini dilakukan sangat cepat sehingga
mata kita melihatnya tetap sebagai suatu karakter yg diam. misalnya ingin
menampilkan huruf A, secara umum digambarkan sebagai berikut:

Dari gambar dapat dijelaskan dengan logika saat kolom pertama ( scan
kolom1 = 1 /high) maka bit yg diberi pada baris berupa "1110000", sehingga
jika ketemu 1 vs 1 tidak ada arus mengalir, jadi LED mati, jika 1 ketemu 0
maka arus mengalir, led menyala. Begitu juga untuk kolom kedua, ketika
kolom kedua diberi tegangan maka pada baris bit yg diberikan adalah
"1101011" dan seterusnya, ketika kolom nya mencapai ujung maka akan
diulang ke kolom 1 lagi. Untuk melakukan scanning biasanya dilakukan
dengan memanfaatkan shift register, atau paling sederhana dengan
menggunakan IC 4017 yang di cascade menjadi led berjalan yang panjang.

C. Alat dan Bahan


1. Software Proteus
2. Software Arduino
3. Arduino UNO
4. LED
5. Seven Segment
6. Push Button
7. Transistor
8. buzzer

D. Gambar Rangkaian
1. ARDUINO IDE

Gambar Rangkaian Palang Perlintasan Kereta


2. CVAVR

Gambar Rangkaian Palang Perlintasan Kereta

E. Coding Pemrograman
1. ARDUINO
2. CVAVR
F. Hasil Percobaan
1. ARDUINO
Hasil Simulasi Rangkaian Palang Perlintasan Kereta
Push Button 1 ditekan maka akan menghidupkan LED warna merah, buzzer
dan motor.
Rangkaian setelah palang tertutup maka akan menyalakan seven segment dan
memulai hitung mundur. Pada hitungan ke – 9.

Rangkaian Saat palang dalam keaadan tertutup pada hitungan ke - 5


Rangkaian Saat palang dalam keadaan tertutup pada hitungan ke – 0.
Push Button 2 ditekan maka akan menghidupkan LED warna Hijau, dan
mematikan buzzer dan motor.
2. CVAVR
Hasil Simulasi Rangkaian Palang Perlintasan Kereta
Push Button 1 ditekan maka akan menyalakan LED merah, motor DC dan
Buzzer.

Rangkaian setelah palang tertutup maka akan menyalakan seven segment


dan memulai hitung mundur. Pada hitungan ke – 9.
Rangkaian Saat palang dalam keadaan tertutup pada hitungan ke – 7

Rangkaian Saat palang dalam keadaan tertutup pada hitungan ke – 1


Push Button 2 ditekan maka akan menyalakan LED hijau dan palang terbuka.

G. Penjelasan dan Analisa


1. ARDUINO
− Penjelasan Program

#include <Servo.h> merupakan perintah untuk memasukkan library motor


servo, Servo servo; merupakan inisialisasi motor servo, begitu juga untuk
servo2 untuk menginisialisasi motor servo 2. Int pos = 0; dan int pos = 0;
merupakan inisialisasi untuk perulangan motor servo. pinMode (53,INPUT);
dan pinMode (51,INPUT); adalah mengonfigurasi Pin No. 51 dan 53 sebagai
Inputan Push Button. pinMode (3,OUTPUT); berarti Pin No. 3 adalah sebagai
Output untuk seven segment 1, begitu juga dengan Pin No. 4, 5, 6, 7, 8 dan 9
juga sebagai Output seven segment 2, 3, 4, 5, 6 dan 7. Servo.attach(11); untuk
mendeklarasikan servo pada Pin No. 11. Servo2.attach(12); untuk
mendeklarasikan servo 2 pada Pin No. 12, pinMode (19,OUTPUT); pernyataan
untuk Pin No. 19 sebagai output yang disini diperuntukkan LED1, begitu juga
dengan Pin No. 20, 21 dan 22 untuk LED2, LED3 dan LED4. pinMode
(23,OUTPUT); menyatakan Pin No. 23 sebagai OUTPUT yang disini
diperuntukkan Buzzer 1, dan Pin No. 24 sebagai OUTPUT untuk Buzzer 2.

if (digitalRead(53)==HIGH) merupakan pernyataan Kondisi untuk menyalakan


led jika Pin No. 53 berada pada kondisi HIGH maka Pin No. 19, 21, 23 dan 24
berada pada kondisi HIGH, sementara untuk Pin No. 20 dan 22 pada kondisi
LOW. if(digitalRead(53)HIGH) merupakan pernyataan Kondisi untuk
menyalakan servo1 dengan perulangan for, for(pos=0; pos <180; pos+=1);
menyatakan perulangan motor servo 1 untuk posisi 0 sampai 180 derajat,
if(digitalRead(53)HIGH) merupakan pernyataan Kondisi untuk menyalakan
servo2 dengan perulangan for, for(pis=0; pis <180; pis+=1); menyatakan
perulangan motor servo 2 untuk posisi 0 sampai 180 derajat.
Program di atas berfungsi untuk menginisialisasi angka yang akan muncul pada
seven segment, misal untuk memunculkan akan 9 maka Pin yang harus dalam
keadaan HIGH adalah Pin No. 3, 4, 5, 6, 8 dan 9, sementara Pin No. 7 dalam
keadaan LOW, maka angka yang akan muncul dalam seven segment adalah
angka 9, begitupun untuk angka lainnya. delay(1000) untuk setiap kemunculan
angka pada seven segment adalah selama 1000 milisekon atau 1 detik.
If(digitalRead(51)==HIGH) adalah fungsi kondisi jika Pin No. 51 pada
keadaan HIGH maka Pin No. 19 dan 20 akan berada pada keadaan LOW
sementara Pin No. 20 dan 22 pada keadaan HIGH. if(digitalRead(51)HIGH)
merupakan pernyataan Kondisi untuk mematikan motor servo 1 dengan
perulangan for, for(pos=180; pos <0; pos-=1); menyatakan perulangan motor
servo 1 untuk posisi 180 sampai 0 derajat, if(digitalRead(51)HIGH) merupakan
pernyataan Kondisi untuk mematikan motor servo 2 dengan perulangan for,
for(pis=180; pis <0; pis-=1); menyatakan perulangan motor servo 2 untuk
posisi 180 sampai 0 derajat. Untuk else digunakan pada saat kondisi if tidak
ada yang terpenuhi, maka Pin No. 19, 20, 21, 22, 23, 24, 3, 4, 5, 6, 7, 8, 9 akan
berada pada kondisi LOW.
− Penjelasan dan Analisa Hasil Percobaan

Push Button1 dihubungkan ke Pin No. 53 sebagai input, kemudian Pin No. 11
berguna sebagai output ke Motor Servo 1 pin No. 12 sebagai output ke Motor
Servo 2. Pin No. 19 sebagai output ke LED 1, Pin No. 21 sebagai output ke
LED 3. Pin No. 23 sebagai output ke Buzzer 1, Pin No. 24 sebagai output ke
Buzzer 2. Pin No. 3 sebagai seven segment 1, Pin No. 4 sebagai seven segment
2, Pin No. 5 sebagai seven segment 3, Pin No. 6 sebagai seven segment 4, Pin
No. 7 sebagai seven segment 5, Pin No. 8 sebagai seven segment 6, Pin No. 9
sebagai seven segment 7. Push Button2 dihubungkan ke Pin No. 51 sebagai
input, kemudian Pin No. 12 berguna sebagai output ke Motor DC 2. Pin No. 20
sebagai output ke LED 2, Pin No. 22 sebagai output ke LED 4.
Pada saat Push Button 1 ditekan, maka LED merah akan menyala dan
memberi peringatan bahwa palang akan tertutup, bersamaan dengan itu Buzzer
akan berbunyi dan motor servo yang berputar dan palang akan menutup.

Pada saat palang sudah menutup, maka motor servo akan mati dan seven
segment akan hidup dan memulai untuk penghitungan mundur, yang berguna
sebagai waktu tunggu sampai kereta lewat. Dengan Buzzer yang tetap berbunyi
dan LED merah yang tetap menyala.
Pada saat Push Button 2 ditekan maka Buzzer akan berhenti berbunyi, seven
segment mati, motor servo berputar terbalik untuk membuka palang. Kemudian
LED Hijau Pun menyala.
2. CVAVR
− Penjelasan Pemrograman

#include <mega3250.h> berfungsi untuk menyertakan file library untuk chip


ATmega 3250;
#include <delay.h> berfungsi untuk menyertakan fungsi delay pada program.

if(PINA.0==1) menyatakan bahwa jika pin A0 bernilai 1/ high maka output pada
port c akan bernilai high pada 0b00010111;. (0b00010111;) merupakan
penulisan fungsi output high dan low atau fungsi 1 dan 0.pembacaan pada fungsi
tersebut dilakukan dari yang terbelakang maka jika diuraikan kurang lebih akan
seperti berikut :
- PIN C0 bernilai high(1)
- PIN C1 bernilai high(1)
- PIN C2 bernilai high(1)
- PIN C3 bernilai low(0)
- PIN C4 bernilai high(1)
- PIN C5 bernilai low(0)
- PIN C6 bernilai low(0)
- PIN C7 bernilai low(0)

Fungsi if diatas berfungsi untuk menutup palang pintu perlintasan kereta api.
Penutupan palang menggunakan motor DC. Pada program diatas dijelaskan jika
PORT B6 memiliki keluaran HIGH(1). Dan PORT B7 memiliki keluaran
LOW(0). Dan akan menyala selama 400ms. Lalu PORT B6 memiliki keluaran
LOW(0) dan PORT B7 memiliki keluaran HIGH(1) dalam waktu 180ms. Ini
berfungsi sebagai pengerem motor DC agar tidak terus berputar walau daya
syudah dicabut.

Fungsi if diatas mendeklarasikan perhitungan mundur pada 7 segment. PORT


yang digunakan ialah PORT B0 hingga PORT B6 yang berjumlah 7 pin. Pada
fungsi diatas batas setiap angka adalah 150 ms.

Fungsi if(PINA.2==1) menyatakan bahwa jika pin A2 bernilai 1/ high maka


output pada port c akan bernilai high pada 0b00001001;. (0b00001001;)
merupakan penulisan fungsi output high dan low atau fungsi 1 dan 0.pembacaan
pada fungsi tersebut dilakukan dari yang terbelakang maka jika diuraikan
kurang lebih akan seperti berikut :
- PIN C0 bernilai high(1)
- PIN C1 bernilai low(0)
- PIN C2 bernilai low(0)
- PIN C3 bernilai high(1)
- PIN C4 bernilai low(0)
- PIN C5 bernilai low(0)
- PIN C6 bernilai low(0)
- PIN C7 bernilai low(0)

Fungsi if diatas berfungsi untuk membuka palang pintu perlintasan kereta api.
Pembukaan palang menggunakan motor DC. Pada program diatas dijelaskan
jika PORT B6 memiliki keluaran LOW(0). Dan PORT B7 memiliki keluaran
HIGH(1). Dan akan menyala selama 400ms. Lalu PORT B6 memiliki
keluaran HIGH(1) dan PORT B7 memiliki keluaran LOW(0) dalam waktu
180ms. Ini berfungsi sebagai pengerem motor DC agar tidak terus berputar
walau daya sudah dicabut.
− Penjelasan dan Analisa Hasil Percobaan

Pada rangkaian diatas merupakan rangkaian palang pintu kereta api yang
menggunakan ATmega 3250 yang mengatur keluaran berupa led, buzzer,
seven segment, motor DC. Secara umum logic program palang kereta ialah.
Pertama saat kereta akan lewat atau saat menutup palang kereta maka motor
DC akan berputar untuk menutup palang kereta, lampu led dan buzzer
berfungsi sebagai indicator jika ada kereta yang akan lewat serta seven
segment berfungsi sebagai waktu tunggu sampai kereta lewat. Logic yang
kedua adalah saat kereta sudah lewat maka motor berfungsi sebagai pembuka
palang kereta dan lampu led hijau berfungsi sebagai indicator bahwa sudah
boleh melintas melalui rel kereta api.
Saat PB1 (PORT A0) ditekan (HIGH/1) maka fungsi pertama akan
dijalankan. Buzzer (PORTC 0 dan 1), Led merah (PORTC 2 dan 4) dan
motor DC (PORTB 6 dan 7). Akan lagsung menyala secara bersamaan. Saat
beberapa saat jika palang pintu sudah menutup maka seven segment akan
memulai hitung mundur hingga kereta lewat.
Terlihat pada gambar diatas setelah beberapa saat motor DC menyala seven
segment mulai menghitung mundur. Untuk menunda penampilan dari seven
segment digunakan fitur delay.

Selanjutnya merupakan fungsi dari membuka palang kereta saat PB2 ditekan
(HIGH/1) maka akan menyalakan fungsi membuka palang perlintasan
menggunakan motor DC (PORTB 6 dan 7) dan menyalakan led hijau (PORTC
5 dan 3) sebagai tanda bahwa pengendara sudah bisa melalui perlintasan kereta
api.
Pada percobaan menggunakan ATmega yang menggunakan motor DC sebagai
pembuka dan penutup palang kereta motor DC tidak dapat berhenti secara
langsung setelah set point yang kita tentukan tidak seperti menggunakan motor
stepper yang mengatur PWM atau mengatur sudutnya yang dapat berputar
lebih akurat. Bisa dikatakan penggunaan motor DC pada palang kereta ini
dapat dilakukan namun kurang optimal karena kesulitan menentukan setpoint
motor berputar.
H. Kesimpulan
1. ARDUINO
− Pada Rangkaian Arduino Push Button 1 digunakan untuk menyalakan LED
merah sebagai indikator palang menutup, kemudian motor servo berputar untuk
menggerakkan palang agar menutup, dan buzzer berbunyi untuk memberi
peringatan palang akan menutup dan kereta akan lewat.
− Push Button 2 digunakan untuk menyalakan LED hijau sebagai indikator palang
membuka, kemudian seven segment dan buzzer mati, kemudian motor servo
berputar terbalik untuk menggerakkan palang agar membuka.
− Seven segment dapat digunakan dengan baik pada percobaan mengguanakan
Arduino mega.
2. ATmega
Pada percobaan program palang kereta menggunakan ATmega 3250 diatas dapat
disimpulkan :
− Saat PB 1 ditekan maka akan mengaktifkan motor DC untuk menutup palang
kereta. LED merah dan buzzer sebagai indicator jika palang tertutup. Seven
segment berfungsi sebagai display waktu tunggu kereta lewat.
− Saat PB 2 ditekan maka akan mengaktifkan motor DC untuk membuka palang
kereta dan LED hijau akan aktif sebagai indicator sudah diperbolehkan untuk
melintas.
− Seven Segment dapat digunakan pada ATmega 3250 dengan baik sebagai display
perhitungan mundur.
− Penggunaan motor DC sebagai pembuka dan penutup palang kereta dinilai
kurang optimal jika dibandingkan menggunakan motor servo pada percobaan
menggunakan Arduino dikarenakan sulitnya menentukan speed dan setpoint
untuk motor berhenti.

Anda mungkin juga menyukai