Menggunakan sakelar tombol tekan dengan raspberry pi

Using a Push Button Switch with the Raspberry Pi

 

Sakelar tombol tekan adalah perangkat input sederhana namun efektif yang sering digunakan dalam proyek seperti memulai atau menghentikan proses, mengendalikan LED, atau memicu peristiwa. Tutorial ini akan memandu Anda dengan menghubungkan sakelar tombol tekan ke Raspberry Pi, menyiapkan kabel, dan menulis skrip Python untuk mendeteksi penekan tombol.


Apa yang Anda Butuhkan

  1. Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
  2. Sakelar tombol tekan
  3. Papan tempat memotong papan dan kabel jumper
  4. Penghambat (10kΩ untuk pull-down)
  5. Python terpasang di raspberry pi Anda
  6. Perpustakaan GPIO untuk mengendalikan pin GPIO Raspberry Pi

Langkah 1: Pengkabelan tombol tekan ke Raspberry Pi

Sakelar tombol tekan berfungsi dengan menghubungkan pin GPIO ke status tinggi (3.3V) ketika ditekan atau menariknya ke rendah (0V) ketika tidak ditekan. Kami akan menggunakan resistor pull-down untuk memastikan pin GPIO dibaca rendah saat tombol tidak ditekan.

Kabel tombol tekan

Tekan tombol tombol Raspberry pi gpio pin
Satu pin GPIO17 (pin 11)
Pin lainnya Ground (pin 6)
Satu pin Resistor 10kΩ ke tanah

Inilah pengaturan kabelnya:

  • Hubungkan satu terminal tombol tekan ke GPIO17 (Pin 11).
  • Hubungkan terminal lain dari tombol tekan ke Tanah (Pin 6).
  • Hubungkan resistor 10kΩ antara GPIO17 Dan Tanah untuk bertindak sebagai resistor pull-down.

Ini memastikan bahwa ketika tombol ditekan, GPIO17 membaca tinggi (3.3V), dan ketika tidak ditekan, GPIO17 ditarik ke rendah (0V) oleh resistor.


Langkah 2: Aktifkan Pin GPIO di Python

  1. Pertama, perbarui daftar paket Raspberry Pi Anda:

    sudo apt update
    sudo apt upgrade -y
    
  2. Instal Perpustakaan Python GPIO yang diperlukan (jika belum diinstal):

    sudo apt install python3-rpi.gpio
    
  3. Impor perpustakaan di skrip Python Anda:

    import RPi.GPIO as GPIO
    import time
    

Langkah 3: Menulis Kode Python

Sekarang, mari kita tulis skrip Python untuk dideteksi ketika tombol ditekan dan mengambil tindakan yang sesuai.

Contoh Kode Python

import RPi.GPIO as GPIO
import time

# Set up the GPIO mode and pin
GPIO.setmode(GPIO.BCM)        # Use BCM numbering
button_pin = 17               # GPIO pin connected to the button
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)  # Set up pin with pull-down resistor

# Function to detect button press
def button_callback(channel):
    print("Button was pressed!")

# Set up an event on the button pin
GPIO.add_event_detect(button_pin, GPIO.RISING, callback=button_callback, bouncetime=300)

try:
    print("Press the button...")
    while True:
        # Keep the program running to wait for button press
        time.sleep(0.1)
except KeyboardInterrupt:
    print("Program exited")
finally:
    GPIO.cleanup()  # Clean up GPIO to ensure a clean exit

Penjelasan Kode:

  • Gpio.setMode (gpio.bcm): Mengatur penomoran pin GPIO ke mode BCM (Broadcom).
  • Gpio.setup (tombol_pin, gpio.in, pull_up_down = gpio.pud_down): Mengkonfigurasi pin tombol sebagai input dengan resistor pull-down, artinya akan dibaca rendah saat tidak ditekan.
  • Gpio.add_event_detect (): Mendeteksi tepi naik (tekan tombol) dari pin GPIO dan memicu fungsi panggilan balik button_callback Saat tombol ditekan.
  • time.sleep (0,1): Menjaga skrip tetap berjalan, memungkinkannya menunggu tombol tekan.
  • Gpio.cleanup (): Membersihkan pengaturan GPIO saat skrip keluar.

Langkah 4: Menguji tombol

  1. Jalankan skrip Python Anda:

    python3 button.py
    
  2. Tekan tombol tekan dan amati pesan "Tombol ditekan!" di terminal.


Langkah 5: Aplikasi

Berikut adalah beberapa ide untuk menggunakan tombol tekan di proyek Anda:

  1. Kontrol LED: Gunakan tombol tekan untuk menghidupkan dan mematikan LED.
  2. Memicu suatu peristiwa: Mulai atau hentikan suatu proses (mis., Mulailah motor, nyalakan kipas, atau inisiasi skrip).
  3. Bel pintu pintar: Gunakan tombol sebagai bel pintu untuk mengirim pemberitahuan ke ponsel Anda.
  4. Input pengguna: Dapatkan input pengguna sederhana untuk proyek Anda (seperti jawaban "ya/tidak").

Pemecahan masalah

  • Tombol tidak terdeteksi:

    • Pastikan tombolnya terhubung dengan benar dengan resistor pull-down.
    • Periksa ganda pengaturan pin GPIO Anda dalam kode.
  • Kesalahan GPIO:

    • Pastikan perpustakaan GPIO diinstal dengan benar dan nomor pin dalam skrip Anda benar.
  • Tombol bouncing:

    • Jika Anda melihat beberapa penekan tombol terdeteksi, Anda dapat menambahkan waktu debounce (bouncetime=300 dalam skrip) untuk menghindari deteksi palsu.

Kesimpulan

Menggunakan sakelar tombol tekan dengan Raspberry Pi adalah cara mudah untuk menambahkan fungsionalitas input ke proyek Anda. Baik itu Toggling LED, memicu acara, atau berinteraksi dengan perangkat keras lain, pengaturan sederhana ini dapat menjadi dasar bagi banyak aplikasi menarik. Eksperimen dengan pin GPIO yang berbeda dan pengaturan Debounce agar sesuai dengan kebutuhan Anda!

Tinggalkan komentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.