fbpx

Membuat Traffic Light LED Dengan Raspberry Pi dan Python

Traffic Light atau lampu lalu lintas adalah lampu yang mampu menertibkan arus lalu lintas jalanan baik kendaraan bermotor, mobil, dan pejalan kaki.  Pada setiap traffic light terdapat 3 buah lampu yang masing-masing warnanya yaitu merah, kuning, hijau. Jika lampu menyala merah berarti kendaraan harus berhenti. Jika lampu menyala hijau maka kendaraan harus jalan terus. Sedangkan, jika lampu menyala kuning maka kendaraan harus berjalan pelan-pelan. Pada kesempatan ini, menggunakan Raspberry Pi 3B untuk membuat sebuah logika Traffic Light menggunakan LED.

ALAT DAN BAHAN PERCOBAAN Traffic Light Raspberry Pi

  1. Raspberry Pi 3B atau 4 (sudah terinstall Raspbian OS)
  2. Laptop/Personal Computer (PC)
  3. Kabel USB yang dapat terhubung ke Raspberry Pi
  4. 3 buah LED (warna: merah, kuning, hijau)
  5. 3 buah Resistor 220 Ohm
  6. Kabel Jumper secukupnya
  7. Protoboard/projectboard/breadboard

RANGKAIAN

Buat rangkaian percobaan seperti pada gambar berikut ini

Langkah berikutnya adalah membuat program/source code traffic light-nya. Pada tutorial ini saya menggunakan bahasa pemrogrman Python dengan Thonny sebagai IDE-nya (IDE=Integrated Development Environment).Berikut contoh programnya

PERCOBAAN 1 – Traffic Light Raspberry Pi

'''
    PROGRAM TRAFFIC LIGHT #1
    BY. INDOMAKER
'''

# memasukan library
import RPi.GPIO as GPIO   
import time               

# pin LED
R_LED = 14
Y_LED = 15
G_LED = 18

# Setting pin GPIO
GPIO.setmode(GPIO.BCM)          # skema penomoran BCM
GPIO.setwarnings(False)         # menonaktifkan warning
# pin LED sebagai OUTPUT
GPIO.setup(R_LED,GPIO.OUT)        
GPIO.setup(Y_LED,GPIO.OUT)    
GPIO.setup(G_LED,GPIO.OUT)    

# eksekusi program terus menerus
try:
    while True:                           # perulangan While-loop
        # menyalakan LED Merah
        print("LED MERAH NYALA")        # menampilkan teks
        print("BERHENTI \n")
        GPIO.output(R_LED, GPIO.HIGH)   # instruksi menyalakan LED merah
        GPIO.output(Y_LED, GPIO.LOW)    # instruksi mematikan LED kuning
        GPIO.output(G_LED, GPIO.LOW)    # instruksi mematikan LED hijau
        time.sleep(3)                   # timer 3 detik
        # menyalakan LED Hijau
        print("LED HIJAU NYALA")         # menampilkan teks
        print("MAJU TERUS \n")
        GPIO.output(R_LED, GPIO.LOW)     # instruksi mematikan LED merah
        GPIO.output(Y_LED, GPIO.LOW)     # instruksi mematikan LED kuning
        GPIO.output(G_LED, GPIO.HIGH)    # instruksi menyalakan LED hijau
        time.sleep(3)                    # timer 3 detik
        # menyalakan LED Kuning
        print("LED KUNING NYALA")         # menampilkan teks
        print("PELAN-PELAN \n")
        GPIO.output(R_LED, GPIO.LOW)     # instruksi mematikan LED merah
        GPIO.output(Y_LED, GPIO.HIGH)    # instruksi menyalakan LED kuning
        GPIO.output(G_LED, GPIO.LOW)     # instruksi mematikan LED hijau
        time.sleep(3)                    # timer 3 detik
except KeyboardInterrupt:
    GPIO.cleanup()   # membersihkan pin GPIO untuk digunakan kembali

Jika kita lihat hasilnya lewat Shell, outputnya adalah sbb:

PERCOBAAN 2:  Program menggunakan Function

Kali ini kita akan coba menyederhanakan program pada Percobaan 1 di atas menggunakan ‘Function’

'''
    PROGRAM MEMBUAT TRAFFIC LIGHT #2
    BY. INDOMAKER
'''

# memasukan library
import RPi.GPIO as GPIO   
import time               

# pin LED
R_LED = 14
Y_LED = 15
G_LED = 18

# Setting pin GPIO
GPIO.setmode(GPIO.BCM)          
GPIO.setwarnings(False)
# pin LED sebagai OUTPUT         
GPIO.setup(R_LED,GPIO.OUT)        
GPIO.setup(Y_LED,GPIO.OUT)    
GPIO.setup(G_LED,GPIO.OUT)    

# menyalakan LED Hijau
def led_hijau():
    print("LED HIJAU NYALA")         
    print("MAJU TERUS \n")
    GPIO.output(R_LED, GPIO.LOW)     
    GPIO.output(Y_LED, GPIO.LOW)     
    GPIO.output(G_LED, GPIO.HIGH)    
    time.sleep(3)                    

# menyalakan LED Merah    
def led_merah():
    print("LED MERAH NYALA")        
    print("BERHENTI \n")
    GPIO.output(R_LED, GPIO.HIGH)   
    GPIO.output(Y_LED, GPIO.LOW)    
    GPIO.output(G_LED, GPIO.LOW)    
    time.sleep(3)                   

# menyalakan LED Kuning
def led_kuning():
    print("LED KUNING NYALA")         
    print("PELAN-PELAN \n")
    GPIO.output(R_LED, GPIO.LOW)     
    GPIO.output(Y_LED, GPIO.HIGH)    
    GPIO.output(G_LED, GPIO.LOW)     
    time.sleep(3)                    

# eksekusi program terus menerus
try:
    while True:                           
        # memanggil fungsi
        led_merah()
        led_hijau()
        led_kuning()
except KeyboardInterrupt:
    GPIO.cleanup()   

Hasilnya dapat di lihat di Shell seperti pada gambar berikut:

Kedua program diatas sama-sama ditunjukkan untuk membuat Traffic Light. Perbedaan program pertama dan kedua hanya pada penggunaan function saja. Pada program pertama, tidak menggunakan function sehingga kode program terlihat begitu kompleks pada while loopnya. Sedangkan, pada program kedua menggunakan function sehingga membuat fungsi  untuk beberapa led, seperti led_merah, led_kuning, dan led_hijau dengan penggunaannya lebih praktis memanggilnya di while loop. Kedua program tersebut, membuat 3 buah led menyala dan mati secara bergantian selama 3 detik mulai dari warna merah, hijau, kuning seperti pada lampu traffic light di jalanan.

Demikian sedikit tutorial pada kesempatan kali ini. Program di atas dimaksudkan untuk membuat Traffic Light dengan menggunakan Raspberry Pi. Terdapat 2 percobaan, percobaan pertama program dibuat tanpa bantuan function dengan pengendalian LED atau kontrol logika LED ada dalam baris di dalam while-loop, sehingga terlihat kompleks. Sedangkan, percobaan kedua program dibuat dengan bantuan function yang membuat penulisan program lebih sederhana hanya memanggil fungsi yang telah dibuat ke dalam while-loop. Selamat mencoba.

About the Author