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
- Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
- Sakelar tombol tekan
- Papan tempat memotong papan dan kabel jumper
- Penghambat (10kΩ untuk pull-down)
- Python terpasang di raspberry pi Anda
- 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
-
Pertama, perbarui daftar paket Raspberry Pi Anda:
sudo apt update sudo apt upgrade -y
-
Instal Perpustakaan Python GPIO yang diperlukan (jika belum diinstal):
sudo apt install python3-rpi.gpio
-
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
-
Jalankan skrip Python Anda:
python3 button.py
-
Tekan tombol tekan dan amati pesan "Tombol ditekan!" di terminal.
Langkah 5: Aplikasi
Berikut adalah beberapa ide untuk menggunakan tombol tekan di proyek Anda:
- Kontrol LED: Gunakan tombol tekan untuk menghidupkan dan mematikan LED.
- Memicu suatu peristiwa: Mulai atau hentikan suatu proses (mis., Mulailah motor, nyalakan kipas, atau inisiasi skrip).
- Bel pintu pintar: Gunakan tombol sebagai bel pintu untuk mengirim pemberitahuan ke ponsel Anda.
- 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.
- Jika Anda melihat beberapa penekan tombol terdeteksi, Anda dapat menambahkan waktu debounce (
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!