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
- Raspberry Pi 3B atau 4 (sudah terinstall Raspbian OS)
- Laptop/Personal Computer (PC)
- Kabel USB yang dapat terhubung ke Raspberry Pi
- 3 buah LED (warna: merah, kuning, hijau)
- 3 buah Resistor 220 Ohm
- Kabel Jumper secukupnya
- 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.