1. LAPORAN PRAKTIKUM MIKROPROSESSOR
Traffic Light pada Perempatan Jalan Berbasis Mikroprosesor
Rasbpberry Pi B+
Disusun oleh :
1. Niken Ayu Firdayanti (1610501033)
2. Anis Maghfirotul Habibah (1610501035)
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS TIDAR
MAGELANG
2019
2. 1. Pendahuluan
Mikroprosesor adalah sebuah IC (Integrated Circuit) yang digunakan sebagai
otak/pengolah utama dalam sebuah sistem komputer. Mikroprosesor merupakan
hasil dari pertumbuhan semikonduktor. Prosesor adalah chip yang sering disebut
“Microprosessor” yang sekarang ukurannya sudah mencapai gigahertz.
Mikroprosesor yang kami menggunakan Raspberry Pi.
Raspberry Pi sering disingkat dengan nama Raspi, adalah komputer papan
tunggal (single-board circuit; SBC) yang seukuran dengan kartu kredit yang dapat
digunakan untuk menjalankan program perkantoran, permainan komputer, dan
sebagai pemutar media hingga video beresolusi tinggi. Terdapat 40 pin pada
Raspiberry Pi yang terhubung langsung pada sistem yang dengan bantuan
program untuk menjalankannya sehingga dapat digunakan sesuai dengan
fungsinya. Selain dapat digunakan untuk pin input/output, terdapat beberapa
pin yang memiliki fungsi khusus. Python merupakan bahasa pemrograman
yang mendukung dan dapat digunakan langsung untuk mengontrol pin-pin
yang tersedia pada raspberry Pi tersebut.
Pada praktikum kali ini kami membuat Traffic Light perempatan jalan
menggunakan Raspberry Pi 3 model B+. Traffic Light merupakan lampu yang
berfungsi untuk mengatur kelancaran lalu lintas di suatu persimpangan jalan
dengan memberi kesempatan pada pengguna jalan dari masing-masing arah
untuk berjalan secara bergantian.
2. Alat & Bahan
Alat :
1. Raspberry Pi B+
2. Monitor
3. Keyboard
4. Mouse
5. Micro SD
6. Solder
7. Converter
3. 8. Lem tembak
9. Gunting
10. Kabel Jumper
Bahan
1. Software Python 3
2. LED (Merah : 4 buah, Kuning : 4 buah, Hijau : 4 buah)
3. Resistor 220Ω sebanyak 8 buah
4. Resistor 1k Ω sebanyak 4 buah
5. Kabel secukupnya
6. PCB
7. Tenol secukupnya
8. Isi lem tembak secukupnya
9. Kardus bekas secukupnya
4. 3. Flowchart
Berikut ini adalah flowchart dalam pembuatan Traffic Light perempatan jalan
AC
Mulai
Mengatur compiler
Mengarur hardware
Do
A Hijau On
B Merah On
C Merah On
D Merah On
Waktu tunggu
selama 5 detik
A
A= Lampu Bangjo 1
B = Lampu Bangjo 2
C = Lampu Bangjo 3
D = Lampu Bangjo 4
A Kuning On
B Merah On
C Merah On
D Merah On
A Merah On
B Hijau On
C Merah On
D Merah On
A Merah On
B Kuning On
C Merah On
D Merah On
A Merah On
B Merah On
C Hijau On
D Merah On
A Merah On
B Merah On
C Kuning On
D Merah On
A Merah On
B Merah On
C Merah On
D Hijau On
Waktu tunggu
selama 2 detik
B
Waktu tunggu
selama 2 detik
Waktu tunggu
selama 5 detik
Waktu tunggu
selama 5 detik
Waktu tunggu
selama 2 detik
Waktu tunggu
selama 5 detik
A Merah On
B Merah On
C Merah On
D Kuning On
B
Waktu tunggu
selama 2 detik
Selesai
Loop
C
5. 4. Program & Keterangan
Berikut ini adalah program dan keterangan untuk Traffic Light perempatan
jalan menggunakan aplikasi python di Raspberry pi B+ :
import RPi.GPIO as GPIO #sebagai module GPIO agar tidak error
saat pemrograman berlangsung
import time #untuk mengatur waktu
GPIO.setmode(GPIO.BOARD) #mengatur mode GPIO dengan model
board
#Mengatur pin 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32 dan 33 sebagai output
GPIO.setup(7,GPIO.OUT) #bangjo 1 merah
GPIO.setup(11,GPIO.OUT) #bangjo 1 kuning
GPIO.setup(12,GPIO.OUT) #bangjo 1 hijau
GPIO.setup(13,GPIO.OUT) #bangjo 2 merah
GPIO.setup(15,GPIO.OUT) #bangjo 2 kuning
GPIO.setup(16,GPIO.OUT) # bangjo 2 hijau
GPIO.setup(18,GPIO.OUT) #bangjo 3 merah
GPIO.setup(22,GPIO.OUT) #bangjo 3 kuning
GPIO.setup(29,GPIO.OUT) #bangjo 3 hijau
GPIO.setup(31,GPIO.OUT) #bangjo 4 merah
GPIO.setup(32,GPIO.OUT) #bangjo 4 kuning
GPIO.setup(33,GPIO.OUT) #bangjo 4 hijau
#atur waktu nyala lampu hijau dan kuning (nyala lampu merah
menyesuaikan)
hijau = 5
kuning = 2
for x in range(50): #pengulangan sebanyak 50 kali
#bangjo 1 hijau
GPIO.output(7,False) #pada pin ke-7 dengan perintah False, LED akan
mati
GPIO.output(11,False) #pada pin ke-11 dengan perintah False, LED akan
mati
GPIO.output(12,True) #pada pin ke-12 dengan perintah True, LED akan
menyala
GPIO.output(13,True) #pada pin ke-13 dengan perintah True, LED akan
menyala
6. GPIO.output(15,False) #pada pin ke-15 dengan perintah False, LED akan
mati
GPIO.output(16,False) #pada pin ke-15 dengan perintah False, LED akan
mati
GPIO.output(18,True) #pada pin ke-18 dengan perintah True, LED akan
menyala
GPIO.output(22,False) #pada pin ke-22 dengan perintah False, LED akan
mati
GPIO.output(29,False) #pada pin ke-29 dengan perintah False, LED akan
mati
GPIO.output(31,True) #pada pin ke-31 dengan perintah True, LED akan
menyala
GPIO.output(32,False) #pada pin ke-32 dengan perintah False, LED akan
mati
GPIO.output(33,False) #pada pin ke-33 dengan perintah False, LED akan
mati
time.sleep(hijau) #waktu tunggu menyesuaikan dengan nilai
variabel hijau yang telah ditentukan
#bangjo 1 kuning
GPIO.output(7,False) #pada pin ke-7 dengan perintah False, LED akan
mati
GPIO.output(11,True) #pada pin ke-11 dengan perintah True, LED akan
menyala
GPIO.output(12,False) #pada pin ke-12 dengan perintah False, LED akan
mati
GPIO.output(13,True) #pada pin ke-13 dengan perintah True, LED akan
menyala
GPIO.output(15,False) #pada pin ke-15 dengan perintah False, LED akan
mati
GPIO.output(16,False) #pada pin ke-16 dengan perintah False, LED akan
mati
GPIO.output(18,True) #pada pin ke-18 dengan perintah True, LED akan
menyala
GPIO.output(22,False) #pada pin ke-22 dengan perintah False, LED akan
mati
GPIO.output(29,False) #pada pin ke-29 dengan perintah False, LED akan
mati
GPIO.output(31,True) #pada pin ke-31 dengan perintah True, LED akan
menyala
7. GPIO.output(32,False) #pada pin ke-32 dengan perintah False, LED akan
mati
GPIO.output(33,False) #pada pin ke-33 dengan perintah False, LED akan
mati
time.sleep(kuning) #waktu tunggu menyesuaikan dengan nilai
variabel kuning yang telah ditentukan
#bangjo 2 hijau
GPIO.output(7,True) ) #pada pin ke-7 dengan perintah True, LED akan
menyala
GPIO.output(11,False) #pada pin ke-11 dengan perintah False, LED akan
mati
GPIO.output(12,False) #pada pin ke-12 dengan perintah False, LED akan
mati
GPIO.output(13,False) #pada pin ke-13 dengan perintah False, LED akan
mati
GPIO.output(15,False) #pada pin ke-15 dengan perintah False, LED akan
mati
GPIO.output(16,True) #pada pin ke-16 dengan perintah True, LED akan
menyala
GPIO.output(18,True) #pada pin ke-18 dengan perintah True, LED akan
menyala
GPIO.output(22,False) #pada pin ke-22 dengan perintah False, LED akan
mati
GPIO.output(29,False) #pada pin ke-29 dengan perintah False, LED akan
mati
GPIO.output(31,True) #pada pin ke-31 dengan perintah True, LED akan
menyala
GPIO.output(32,False) #pada pin ke-32 dengan perintah False, LED akan
mati
GPIO.output(33,False) #pada pin ke-33 dengan perintah False, LED akan
mati
time.sleep(hijau) #waktu tunggu menyesuaikan dengan nilai
variabel hijau yang telah ditentukan
#bangjo 2 kuning
GPIO.output(7,True) #pada pin ke-7 dengan perintah True, LED akan
menyala
GPIO.output(11,False) #pada pin ke-11 dengan perintah False, LED akan
mati
GPIO.output(12,False) #pada pin ke-12 dengan perintah False, LED akan
mati
8. GPIO.output(13,False) #pada pin ke-13 dengan perintah False, LED akan
mati
GPIO.output(15,True) #pada pin ke-15 dengan perintah True, LED akan
menyala
GPIO.output(16,False) #pada pin ke-16 dengan perintah False, LED akan
mati
GPIO.output(18,True) #pada pin ke-18 dengan perintah True, LED akan
menyala
GPIO.output(22,False) #pada pin ke-22 dengan perintah False, LED akan
mati
GPIO.output(29,False) #pada pin ke-29 dengan perintah False, LED akan
mati
GPIO.output(31,True) ) #pada pin ke-31 dengan perintah True, LED akan
menyala
GPIO.output(32,False) #pada pin ke-32 dengan perintah False, LED akan
mati
GPIO.output(33,False) #pada pin ke-33 dengan perintah False, LED akan
mati
time.sleep(kuning) #waktu tunggu menyesuaikan dengan nilai
variabel kuning yang telah ditentukan
#bangjo 3 hijau
GPIO.output(7,True) #pada pin ke-7 dengan perintah True, LED akan
menyala
GPIO.output(11,False) #pada pin ke-11 dengan perintah False, LED akan
mati
GPIO.output(12,False) #pada pin ke-12 dengan perintah False, LED akan
mati
GPIO.output(13,True) #pada pin ke-13 dengan perintah True, LED akan
menyala
GPIO.output(15,False) #pada pin ke-15 dengan perintah False, LED akan
mati
GPIO.output(16,False) #pada pin ke-16 dengan perintah False, LED akan
mati
GPIO.output(18,False) #pada pin ke-18 dengan perintah False, LED akan
mati
GPIO.output(22,False) #pada pin ke-22 dengan perintah False, LED akan
mati
GPIO.output(29,True) #pada pin ke-29 dengan perintah True, LED akan
menyala
9. GPIO.output(31,True) #pada pin ke-31 dengan perintah True, LED akan
menyala
GPIO.output(32,False) #pada pin ke-32 dengan perintah False, LED akan
mati
GPIO.output(33,False) #pada pin ke-33 dengan perintah False, LED akan
mati
time.sleep(hijau) #waktu tunggu menyesuaikan dengan nilai
variabel hijau yang telah ditentukan
#bangjo 3 kuning
GPIO.output(7,True) #pada pin ke-7 dengan perintah True, LED akan
menyala
GPIO.output(11,False) #pada pin ke-11 dengan perintah False, LED akan
mati
GPIO.output(12,False) #pada pin ke-12 dengan perintah False, LED akan
mati
GPIO.output(13,True) #pada pin ke-13 dengan perintah True, LED akan
menyala
GPIO.output(15,False) #pada pin ke-15 dengan perintah False, LED akan
mati
GPIO.output(16,False) #pada pin ke-16 dengan perintah False, LED akan
mati
GPIO.output(18,False) #pada pin ke-18 dengan perintah False, LED akan
mati
GPIO.output(22,True) #pada pin ke-22 dengan perintah True, LED akan
menyala
GPIO.output(29,False) #pada pin ke-29 dengan perintah False, LED akan
mati
GPIO.output(31,True) #pada pin ke-31 dengan perintah True, LED akan
menyala
GPIO.output(32,False) #pada pin ke-32 dengan perintah False, LED akan
mati
GPIO.output(33,False) #pada pin ke-33 dengan perintah False, LED akan
mati
time.sleep(kuning) #waktu tunggu menyesuaikan dengan nilai
variabel kuning yang telah ditentukan
#bangjo 4 hijau
GPIO.output(7,True) #pada pin ke-7 dengan perintah True, LED akan
menyala
GPIO.output(11,False) #pada pin ke-11 dengan perintah False, LED akan
mati
10. GPIO.output(12,False) #pada pin ke-12 dengan perintah False, LED akan
mati
GPIO.output(13,True) #pada pin ke-13 dengan perintah True, LED akan
menyala
GPIO.output(15,False) #pada pin ke-15 dengan perintah False, LED akan
mati
GPIO.output(16,False) #pada pin ke-16 dengan perintah False, LED akan
mati
GPIO.output(18,True) #pada pin ke-18 dengan perintah True, LED akan
menyala
GPIO.output(22,False) #pada pin ke-22 dengan perintah False, LED
akan mati
GPIO.output(29,False) #pada pin ke-29 dengan perintah False, LED akan
mati
GPIO.output(31,False) #pada pin ke-31 dengan perintah False, LED akan
mati
GPIO.output(32,False) #pada pin ke-32 dengan perintah False, LED akan
mati
GPIO.output(33,True) #pada pin ke-33 dengan perintah True, LED akan
menyala
time.sleep(hijau) #waktu tunggu menyesuaikan dengan nilai
variabel hijau yang telah ditentukan
#bangjo 4 kuning
GPIO.output(7,True) #pada pin ke-7 dengan perintah True, LED akan
menyala
GPIO.output(11,False) #pada pin ke-11 dengan perintah False, LED akan
mati
GPIO.output(12,False) #pada pin ke-12 dengan perintah False, LED akan
mati
GPIO.output(13,True) #pada pin ke-13 dengan perintah True, LED akan
menyala
GPIO.output(15,False) #pada pin ke-15 dengan perintah False, LED akan
mati
GPIO.output(16,False) #pada pin ke-16 dengan perintah False, LED akan
mati
GPIO.output(18,True) #pada pin ke-18 dengan perintah True, LED akan
menyala
GPIO.output(22,False) #pada pin ke-22 dengan perintah False, LED akan
mati
11. GPIO.output(29,False) #pada pin ke-29 dengan perintah False, LED akan
mati
GPIO.output(31,False) #pada pin ke-31 dengan perintah False, LED akan
mati
GPIO.output(32,True) #pada pin ke-32 dengan perintah True, LED akan
menyala
GPIO.output(33,False) #pada pin ke-33 dengan perintah False, LED akan
mati
time.sleep(kuning) #waktu tunggu menyesuaikan dengan nilai
variabel hijau yang telah ditentukan
GPIO.cleanup() #keluar dari program