MENDETEKSI TOMBOL MENGGUNAKAN RASPBERRY PI

 

LAPORAN TUTORIAL 5

LABORATORIUM SISTEM TERBENAM

MENDETEKSI TOMBOL MENGGUNAKAN RASPBERRY PI




Dosen Pengampu:

Dr. Samuel Beta K., Ing.Tech, M.T.

 

Disusun Oleh :

Kelompok 5

1.       Gerry Alghifary

RE-3A

(4.34.22.0.10)

2.       Keisya Djenar Dinda L.

RE-3A

(4.34.22.0.13)

3.       Marshanda Aprilian N.

RE-3A

(4.34.22.0.14)

4.       Raka Ramadhana

RE-3A

(4.34.22.0.19)

 

 

PROGRAM STUDI TEKNOLOGI REKAYASA ELEKTRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI SEMARANG

2025



BAB I
PENDAHULUAN

1.1.  Latar Belakang

Sensor input seperti tombol (push button) sering digunakan dalam berbagai aplikasi elektronik dan sistem control. Dengan Raspberry Pi 4 ,kita dapat mendeteksi tekanan tombol dan mengatur aksi seperti menyalakan LED menggunakan Python.

 

 

1.2.  Tujuan

Tujuan dari tutorial ini, yaitu:

1.      Mengetahui cara kerja tombol input digital.

2.      Menghubungkan tombol dan LED ke Raspberry Pi.

3.      Membuat program sederhana untuk menyalakan LED saat tombol ditekan.

 

 

BAB II
TINJAUAN PUSTAKA

2.1.  Raspberry Pi 4

Raspberry Pi 4 adalah komputer mini berukuran kartu kredit yang dikembangkan oleh Raspberry Pi Foundation, dengan peningkatan signifikan dibanding generasi sebelumnya. Board ini dilengkapi prosesor Quad-Core ARM Cortex-A72 1.5 GHz, pilihan RAM mulai dari 2 GB hingga 8 GB, serta port USB 3.0, Gigabit Ethernet, dan dual output micro-HDMI yang mendukung resolusi hingga 4K. Raspberry Pi 4 mendukung berbagai sistem operasi, terutama Raspberry Pi OS (berbasis Linux), dan dapat digunakan untuk beragam keperluan seperti pemrograman, otomasi, IoT, media center, hingga sebagai pengganti komputer desktop ringan.

 

2.2.  LED

LED (Light Emitting Diode) adalah komponen elektronik yang memancarkan cahaya saat diberi arus listrik searah. Berbeda dengan lampu pijar konvensional, LED tidak menghasilkan panas berlebih dan memiliki efisiensi energi yang jauh lebih tinggi. LED terbuat dari bahan semikonduktor yang menghasilkan cahaya melalui proses elektroluminesensi. Komponen ini memiliki dua kaki utama, yaitu anoda (positif) dan katoda (negatif), dan hanya akan menyala jika polaritas tegangan yang diberikan sesuai.

 

2.3.  Resistor

Resistor adalah komponen elektronik pasif yang berfungsi untuk menghambat atau membatasi aliran arus listrik dalam suatu rangkaian. Nilai hambatan pada resistor dinyatakan dalam satuan ohm (Ω) dan ditentukan berdasarkan kode warna yang tercetak pada bodinya, atau secara numerik pada jenis resistor SMD. Resistor tidak memiliki polaritas, sehingga bisa dipasang bolak-balik. Komponen ini sangat penting dalam mengatur tegangan dan arus agar sesuai dengan kebutuhan komponen lain seperti LED, sensor, atau IC agar tidak rusak karena kelebihan arus.

 

 

 

BAB III
PERANCANGAN ALAT

3.1.  Alat dan Bahan

     Alat dan Bahan yang digunakan, yaitu:

1.      Raspberry Pi 4

2.      Tombol (Push Button)

3.      LED

4.      Resistor (220Ω untuk LED)

5.      Kabel jumper

6.      Breadboard

 

3.2.  Kode Program

Program 1

# ==============================================================
# Pemrogram      : Kelompok RE-3A/5
#   1. 10-Gery Algifari           NIM: 4.34.22.0.10
#   2. 13-Keisya Djenar Dinda L   NIM: 4.34.22.0.13
#   3. 14-Marshanda Aprilian N    NIM: 4.34.22.0.14
#   4. 19-Raka Ramadhana          NIM: 4.34.22.0.19
# Tgl.Praktikum  : Senin, 30 Juni 2025
# =================================================================
# button_led_control.py
# - Program untuk mengontrol LED dengan push button pada Raspberry Pi
# - LED menyala saat tombol ditekan dan mati saat tombol dilepas
# - Menggunakan library RPi.GPIO untuk antarmuka dengan hardware
# -----------------------------------------------------------------
# Materi yang digunakan:
# - Konfigurasi pin GPIO (input/output)
# - Penggunaan pull-up resistor internal
# - Pembacaan status digital input (tombol)
# - Kontrol output digital (LED)
# - Penanganan interrupt dengan KeyboardInterrupt
# -----------------------------------------------------------------
# Komponen yang dibutuhkan:
# - 1x Raspberry Pi
# - 1x LED
# - 1x Resistor 220 ohm
# - 1x Push button
# - Kabel jumper
# =================================================================

import RPi.GPIO as GPIO     # Import library GPIO untuk kontrol hardware
import time                 # Import library untuk delay/waktu

# Nonaktifkan peringatan GPIO dan set mode penomoran BCM
GPIO.setwarnings(False)     # Menghilangkan warning GPIO yang tidak perlu
GPIO.setmode(GPIO.BCM)      # Menggunakan penomoran BCM untuk GPIO

# Deklarasi konstanta pin
LED_PIN = 18                # GPIO 18 untuk LED (output)
BUTTON_PIN = 22             # GPIO 22 untuk push button (input)

# Konfigurasi pin GPIO
GPIO.setup(LED_PIN, GPIO.OUT)                   # Set LED_PIN sebagai output
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)  # Set BUTTON_PIN sebagai input dengan pull-up internal

try:
    print("Program kontrol LED dengan tombol (Tekan CTRL+C untuk keluar)")
    print("Tekan tombol untuk menghidupkan LED...")
    
    # Loop utama program
    while True:
        # Baca status tombol (LOW ketika ditekan karena menggunakan pull-up)
        if GPIO.input(BUTTON_PIN) == GPIO.LOW:
            GPIO.output(LED_PIN, GPIO.HIGH)      # Hidupkan LED
            print("LED menyala")                 # Tampilkan status ke console
            time.sleep(0.5)                      # Debounce delay
        else:
            GPIO.output(LED_PIN, GPIO.LOW)       # Matikan LED
            print("LED mati")                    # Tampilkan status ke console
        
        time.sleep(0.01)                         # Delay kecil untuk mengurangi beban CPU

except KeyboardInterrupt:                        # Tangkap interrupt keyboard (CTRL+C)
    print("\nProgram dihentikan oleh pengguna.") # Pesan penutup
finally:
    GPIO.cleanup()                               # Reset semua pin GPIO
    print("Program selesai.")                    # Konfirmasi akhir program


                                                                        Program 2
# ==============================================================
# Pemrogram      : Kelompok RE-3A/5
#   1. 10-Gery Algifari           NIM: 4.34.22.0.10
#   2. 13-Keisya Djenar Dinda L   NIM: 4.34.22.0.13
#   3. 14-Marshanda Aprilian N    NIM: 4.34.22.0.14
#   4. 19-Raka Ramadhana          NIM: 4.34.22.0.19
# Tgl.Praktikum  : Senin, 30 Juni 2025
# =================================================================
# button_led_control.py
# - Program untuk mengontrol LED dengan push button pada Raspberry Pi
# - LED menyala saat tombol ditekan dan mati saat tombol dilepas
# - Menggunakan library RPi.GPIO untuk antarmuka dengan hardware
# -----------------------------------------------------------------
# Materi yang digunakan:
# - Konfigurasi pin GPIO (input/output)
# - Penggunaan pull-up resistor internal
# - Pembacaan status digital input (tombol)
# - Kontrol output digital (LED)
# - Penanganan interrupt dengan KeyboardInterrupt
# -----------------------------------------------------------------
# Komponen yang dibutuhkan:
# - 1x Raspberry Pi
# - 1x LED
# - 1x Resistor 220 ohm
# - 1x Push button
# - Kabel jumper
# =================================================================

import RPi.GPIO as GPIO                                     #library GPIO pada raspberry pi
import time                                                #library delay pada python

GPIO.setmode(GPIO.BCM)                                  # penomoran GPIO pada chip
LED_PIN = 18                                                # pin luaran  
BUTTON_PIN = 22                                             # pin masukan

GPIO.setup(LED_PIN, GPIO.OUT)
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) 

try:
    print("Tekan tombol untuk menghidupkan LED...")
    while True:
         if GPIO.input(BUTTON_PIN) == GPIO.LOW and not button_pressed:
            button_pressed = True                                # Tombol sedang ditekan
        elif GPIO.input(BUTTON_PIN) == GPIO.HIGH and button_pressed:
                                                                        # Tombol dilepas setelah ditekan

            led_state = not led_state
            GPIO.output(LED_PIN, led_state)
            print("LED menyala" if led_state else "LED mati")
            button_pressed = False                                    # Reset status tekan
        time.sleep(0.05)  # Delay untuk debouncing

except KeyboardInterrupt:  
    print("Program dihentikan oleh pengguna.")
finally:
    GPIO.cleanup()                                        # Bersihkan pin GPIO
    print("Program selesai.")


3.3.   Diagram Blok
Gambar 1. Diagram Blok

3.4. Diagram Alir
Gambar 2. Diagram Alir

3.5 Diagram Gambar
Gambar 3. Diagram Gambar



BAB IV
PENUTUP

4.1  Kesimpulan

1.      Tombol dapat dengan mudah dideteksi dengan Raspberry Pi.

2.      Dengan menggunakan resistor pull-up internal dapat mempermudah rangkaian.

3.      Output (seperti LED) dapat dikontrol secara real-time dari input tombol.

 

4.2  Analisis Data

                       Pada program 1 :

·        Ketika tombol tidak ditekan è LED mati.

·        Ketika tombol ditekan è Led menyala.

·        Status LED ditampilkan di terminal.

Pada program 2 :

            ·      Ketika tombol tidak ditekan è LED mati.

            ·      Ketika tombol ditekan kemudian dilepas è LED menyala.

            ·       Ketika tombol ditekan dan dilepas untuk yang ke dua kali-nya è LED mati.

            ·       Status LED ditampilkan di terminal.


Untuk demo alat dapat di akses melalui link di bawah ini :

https://youtu.be/vkL_xUCxOlo?si=2zgS0w9wvH3yrVwX





Komentar

Postingan populer dari blog ini

PROTOTYPE SMART HOME DENGAN ESP32 BERBASIS INTERNET OF THINGS

IoT Health Monitoring System for Sports: Real-Time Heart Rate and Temperature Tracking

MONITORING PENETAS TELUR BERBASIS IoT