fbpx

Mengendalikan LED dari Push Button Menggunakan Raspberry Pi dan Python

Push Button dan LED (Light Emitting Diode) menjadi sebuah komponen yang umum ditemukan pada piranti elektronik sehingga menjadikan kedua perangkat ini memiliki banyak kegunaan. Push Button adalah saklar yang penggunaannya dengan cara ditekan untuk menghubungkan atau memutuskan listrik. Sedangkan LED adalah lampu kecil yang terbuat dari bahan semikonduktor yang memiliki 2 kaki yaitu kaki Anode dan Katode. Pada kesempatan kali ini, saya akan menggunakan Raspberry PI 3B (bisa juga untuk Raspi 4) untuk membuat LED yang mampu dikendalikan dengan Push Button.

ALAT DAN BAHAN PERCOBAAN LED – Push Button Raspberry Pi

  1. Raspberry Pi 3B (sudah terinstal 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. 3 buah Push Button
  7. Kabel jumper secukupnya
  8. Protoboard/projectboard/breadboard

PERCOBAAN 1: Kendali LED dengan Push Button di Raspberry Pi

Dari alat dan bahan percobaan di atas, buatlah gambar rangkaian seperti gambar berikut:

Kemudian buat program Python berikut ini menggunakan Thonny (IDE Python bawaan di Raspberry Pi)

'''
    PROGRAM RASPBERRY PI GPIO DENGAN LED #5
    BY. INDOMAKER
'''

# memasukan library
import RPi.GPIO as GPIO   
from time import sleep as sleep  

# konfigurasi PIN
R_LED = 14
Y_LED = 15
G_LED = 18
R_PB = 4
Y_PB = 17
G_PB = 27

# 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)   
   
# pin PushButton sebagai INPUT
GPIO.setup(R_PB,GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(Y_PB,GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(G_PB,GPIO.IN, pull_up_down=GPIO.PUD_UP)

# instruksi mematikan LED
GPIO.output(R_LED, GPIO.LOW)   
GPIO.output(Y_LED, GPIO.LOW)
GPIO.output(G_LED, GPIO.LOW)  

# menyalakan LED Hijau
def led_hijau():
    print("LED HIJAU NYALA")         # menampilkan teks
    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

# menyalakan LED Merah    
def led_merah():
    print("LED MERAH NYALA")        # menampilkan teks
    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

# menyalakan LED Kuning
def led_kuning():
    print("LED KUNING NYALA")         # menampilkan teks
    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

# eksekusi program terus menerus
try:
    while True:   # perulangan While-loop
        R_btnState = GPIO.input(R_PB)
        Y_btnState = GPIO.input(Y_PB)
        G_btnState = GPIO.input(G_PB)
        
        if(R_btnState == 0):
            # panggil fungsi merah
            led_merah()
        else:
            GPIO.output(R_LED, GPIO.LOW)
            
        if(Y_btnState == 0):
            # panggil fungsi hijau
            led_hijau()
        else:
            GPIO.output(G_LED, GPIO.LOW)
        
        if(G_btnState == 0):
            # pangil fungsi kuning
            led_kuning()
        else:
            GPIO.output(Y_LED, GPIO.LOW)
        
        sleep(1)
except KeyboardInterrupt:
    GPIO.cleanup()   # membersihkan pin GPIO untuk digunakan kembali

Tampilan output Shell dapat diihat sebagai berikut:

Pada saat program di eksekusi, maka ketika salah satu Push Button di tekan maka akan menyalakan salah satu LED. Misalkan, Push Button yang disetting pada pin 4 ketika di tekan akan menyalakan LED Merah. Push Button yang disetting pada pin 17 ditekan akan menyalakan LED Kuning. Sedangkan, pada push Button yang disetting pada pin 27 ditekan akan menyalakan LED Hijau. Pada program ini, LED akan menyala sesaat hanya pada saat push button ditekan saja akan tetapi ketika push button dilepas maka LED pun akan mati. Lalu, bagaimana caranya supaya LED tetap menyala meskipun push button dilepas? Simak percobaan bagian 2 berikut ini

PERCOBAAN 2 LED + Push Button Raspberry Pi

Dengan menggunakan rangkaian yang sama seperti percobaan sebelumnya, ubahlah program Python di atas (pada bagian while True) di Thonny IDE Raspberry Anda

while True:   
        R_btnState = GPIO.input(R_PB)
        Y_btnState = GPIO.input(Y_PB)
        G_btnState = GPIO.input(G_PB)
        
        if(R_btnState == 0):
            # menyalakan LED Merah
            led_merah()
            
        if(Y_btnState == 0):
            # menyalakan LED Hijau
            led_hijau()
        
        if(G_btnState == 0):
            # menyalakan LED Kuning
            led_kuning()

Prinsip kerja program bagian 2 ini mirip dengan percobaan 1, perbedaannya hanya pada saat salah satu push button ditekan kemudian dilepas maka LED masih tetap menyala sampai push button lain ditekan. Hal Ini disebabkan karena pada kode program kita tidak lagi menambahkan else untuk mematikan LED pada saat dilepas. Nah, sudah semakin jelas kan belajarnya? 😊

Demikian sedikit tutorial pada kesempatan kali ini. Program di atas dimaksudkan untuk menyalakan dan mematikan LED dengan Push Button menggunakan Raspberry Pi 3B. Terdapat 2 percobaan, kedua percobaan tersebut membuat program yang mampu mengendalikan LED melalui push Button. Perbedaannya hanya pada saat push Button ditekan dan dilepaskan saja. Jika hasil percobaan Anda sesuai dengan hasil di atas maka percobaan Anda berhasil, Anda dapat kembangkan sesuai dengan keinginan atau kebutuhan Anda. Selamat berkreasi.

About the Author