Disusun Oleh:
M. Aji Pangestu 184308031
Sebastian Yudith Prastiawan 184308042
Dosen Pengampu:
R. Akbar Nur Apriyanto, S.Tr.T., M.Tr.T.
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.
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:
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).
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.
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.
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.
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.
D. Gambar Rangkaian
1. ARDUINO IDE
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.
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
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 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.