Push düğmesi anahtarı, işlemleri başlatma veya durdurma, LED'leri kontrol etme veya olayları tetikleme gibi projelerde sıklıkla kullanılan basit ama etkili bir giriş cihazıdır. Bu öğretici, Raspberry Pi'ye bir push düğmesi anahtarını bağlayarak, kabloları ayarlayarak ve düğmeye basmak için bir Python komut dosyası yazarak size yol gösterecektir.
Ne İhtiyacınız Olacak
- Ahududu pi (GPIO destekli herhangi bir model, örneğin Pi 3, Pi 4)
- Push Düğme Anahtarı
- Breadboard ve jumper telleri
- Direnç (Aşağı çekme için 10kΩ)
- Python yüklü Raspberry Pi'nizde
- GPIO Kütüphanesi Raspberry Pi’nin GPIO pimlerini kontrol etmek için
1. Adım: Push düğmesini ahududu pi'ye bağlama
Bir push düğmesi anahtarı, GPIO pimini basıldığında yüksek (3.3V) duruma bağlayarak veya basılmadığında düşük (0V) 'e (0V) çekerek çalışır. Düğmeye basılmadığında GPIO PIN'in düşük okuduğundan emin olmak için bir aşağı iniş direnci kullanacağız.
Push düğmesini kablolama
Düğme pimi basma | Raspberry Pi GPIO PIN |
---|---|
Tek pim | GPIO17 (pim 11) |
Diğer PIN | Zemin (pim 6) |
Tek pim | Toprağa 10kΩ direnç |
İşte kablolama kurulumu:
- Push düğmesinin bir terminalini şuraya bağlayın GPIO17 (Pim 11).
- Push düğmesinin diğer terminalini şuraya bağlayın Zemin (Pim 6).
- 10kΩ direnç arasına bağlayın GPIO17 Ve Zemin bir çekme direnci olarak hareket etmek.
Bu, düğmeye basıldığında, GPIO17'nin yüksek (3.3V) okumasını ve basılmadığında GPIO17'nin direnç tarafından düşük (0V) 'e çekilmesini sağlar.
Adım 2: Python'da GPIO pimlerini etkinleştirin
-
İlk olarak, Raspberry Pi’nin paket listesini güncelleyin:
sudo apt update sudo apt upgrade -y
-
Gerekli Python GPIO kitaplığını yükleyin (zaten yüklü değilse):
sudo apt install python3-rpi.gpio
-
Kütüphaneyi Python betiğinize aktarın:
import RPi.GPIO as GPIO import time
Adım 3: Python kodunu yazmak
Şimdi, düğmeye ne zaman basıldığını tespit etmek için bir Python komut dosyası yazalım ve buna göre harekete geçelim.
Python kodu örneği
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
Kod Açıklaması:
- Gpio.setmode (gpio.bcm): GPIO PIN numarasını BCM (Broadcom) moduna ayarlar.
- Gpio.setup (button_pin, gpio.in, pull_up_down = gpio.pud_down): Düğme pimini bir aşağı iniş direnci ile bir giriş olarak yapılandırır, yani basılmadığında düşük okunur.
-
Gpio.add_event_detect (): GPIO PIN'sinin yükselen kenarını (düğmeye basın) algılar ve geri arama işlevini tetikler
button_callback
Düğmeye basıldığında. - Time.sleep (0.1): Komut dosyasının çalışmasını sağlar ve bir düğmeye basmasını beklemesini sağlar.
- Gpio.Cleanup (): Komut dosyası çıktığında GPIO ayarlarını temizler.
4. Adım: Düğmeyi test etmek
-
Python betiğinizi çalıştırın:
python3 button.py
-
Push düğmesine basın ve “düğmesine basıldı!” İletisini gözlemleyin. terminalde.
Adım 5: Uygulamalar
Projelerinizdeki Push düğmesini kullanmak için birkaç fikir:
- Bir LED'i kontrol edin: Bir LED'i açıp kapatmak için Push düğmesini kullanın.
- Bir etkinliği tetikleyin: Bir işlemi başlatın veya durdurun (örneğin, bir motor başlatın, bir fanı açın veya bir komut dosyası başlatın).
- Akıllı kapı zili: Telefonunuza bir bildirim göndermek için düğmeyi kapı zili olarak kullanın.
- Kullanıcı girişi: Projeleriniz için basit kullanıcı girişi alın ("Evet/Hayır" cevap gibi).
Sorun giderme
-
Düğme algılanmadı:
- Düğmenin aşağı çekme direnci ile doğru şekilde bağlandığından emin olun.
- Koddaki GPIO PIN kurulumunuzu çift kontrol edin.
-
GPIO Hatası:
- GPIO kitaplığının düzgün bir şekilde yüklendiğinden ve komut dosyanızdaki PIN numaralarının doğru olduğundan emin olun.
-
Düğme sıçraması:
- Tespit edildiğini birden fazla düğme basıldığında fark ederseniz, bir debecouse süresi ekleyebilirsiniz (
bouncetime=300
komut dosyasında) yanlış tespitlerden kaçınmak için.
- Tespit edildiğini birden fazla düğme basıldığında fark ederseniz, bir debecouse süresi ekleyebilirsiniz (
Çözüm
Raspberry Pi ile bir push düğmesi anahtarı kullanmak, projelerinize giriş işlevselliği eklemenin kolay bir yoludur. İster LED'leri değiştiriyor, olayları tetikliyor veya diğer donanımlarla etkileşime giriyor olsun, bu basit kurulum birçok ilginç uygulamanın temeli olabilir. İhtiyaçlarınıza uyacak şekilde farklı GPIO pimleri ve debounce ayarları ile deney yapın!