Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Raspberry Pi 5 GPIO’yu Python 3 ile Kontrol Etme
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Raspberry Pi 5 GPIO’yu Python 3 ile Kontrol Etme

Liste

Raspberry Pi 5 GPIO’yu Python 3 ile Kontrol Etme

teknomers
Son güncelleme: 29 Ekim 2023 13:37
teknomers
Paylaş
Paylaş


Contents
  • Bu projeler için ihtiyacınız olacak
  • Proje 1: Çıktı, Bir LED’in Yanıp Sönmesi
  • Proje 1: Tam Kod Listeleme
  • Proje 2: Girdi, Kullanıcı Girdisine Tepki Verme
  • Proje 2: Tam Kod Listeleme

Ahududu Pi 5 yeni piyasaya sürüldü ve bizi daha güçlü bir Pi ile tanıştırdı, ancak aynı zamanda birkaç şeyi de değiştirdi ve en önemlisi GPIO’ydu.

Hala aynı 40 pinli GPIO’ya sahibiz ancak yeni RP1 güney köprüsü çipine bağlı olduğu için artık biraz farklı çalışıyor. Bu neden önemli? Her şey GPIO ile etkileşime giren kodu nasıl yazdığımıza bağlı. Geçmişte birçok proje RPi.GPIO’yu tercih ediyordu. Bu, Ben Croston’un bir topluluk projesiydi ve birçok nesil Raspberry Pi’ye iyi bir şekilde hizmet etti. Raspberry Pi 5’te GPIO pinlerinin hafıza eşlemesi nedeniyle RPi.GPIO’yu kullanamıyoruz. Bu bizi bir alternatif kullanmaya zorluyor ve libgpiod bunun nasıl yapılacağı konusunun odak noktası.

Libgpiod, özellikle python3-gpiod GPIO ile etkileşime geçmek için saf bir Python modülüdür. Kullanmadan önce GPIO pinlerini açıkça ayarlamamız gerektiğinden RPI.GPIO’ya benzer bir his veriyor. Gpiod’u Python ve GPIO için daha çok bir ara modül olarak görüyoruz. Bu konuda yeniyseniz, şunu kullanın: GPIO Sıfır Raspberry Pi 5 ile de çalışır. GPIO Zero, Ben Nuttall ve Dave Jones tarafından oluşturuldu ve GPIO’yu büyük ölçüde basitleştiriyor.

Gpiod’u kullanarak çok basit iki proje oluşturacağız. Birincisi bir çıkış, bir LED. İkincisi, LED’in açılıp kapanmasını tetikleyecek bir düğme olan bir giriştir.

Bu projeler için ihtiyacınız olacak

Proje 1: Çıktı, Bir LED’in Yanıp Sönmesi

Python 3 ile Raspberry Pi 5 GPIO

(İmaj kredisi: Tom’un Donanımı)

Herhangi bir dili/çerçeveyi öğrenirken ilk hedef bir “Merhaba Dünya” programı oluşturmaktır. Donanım, bilgisayar korsanlığı ve elektronikte bu, yanıp sönen bir LED’dir.

Raspberry Pi 5'e bağlı bir LED

(Resim kredisi: Gelecek)

Devre son derece basittir. Bir atlama teli kullanarak GPIO 17’ye bağlanan bir LED’in uzun ayağına (anot) sahibiz. Kısa bacak (katot), bir direnç ve başka bir atlama kablosu aracılığıyla GND’ye bağlanır. Direnç 100 ila 330 Ohm (Turuncu-Turuncu-Kahverengi-Altın) arasında herhangi bir değer olabilir. Bizim göz atın direnç referans kılavuzu daha fazla bilgi için.

1. Thonny’yi açın ve iki kod modülünü içe aktarın. İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur. İkincisi, koda bir duraklama eklemek için kullanılan zamandır.

import gpiod
import time

2. LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın. Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir. Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır. SoC’den GPIO’ya geçişi kullanır. Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış.

LED_PIN = 17

3. Koda GPIO’yu nerede bulacağınızı söyleyin. Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi.GPIO gibi Python modülleriyle kullanabiliyorduk. Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te.

chip = gpiod.Chip('gpiochip4')

4. led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın. Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır.

led_line = chip.get_line(LED_PIN)

5. LED’i çıkış olarak ayarlayın. Akımın LED’e akmasını istiyoruz.

led_line.request(consumer="LED", type=gpiod.LINE_REQ_DIR_OUT)

6. Kodun ana gövdesini try ve while True döngüsüne sarın.Try, kodumuzu çalıştırmayı deneyecek istisna işleyicinin bir parçasıdır, istisnaları işleyebilir ve çıktığımızda kodun bir bölümünü çalıştırabilir.

try:
   while True:

7. LED’i çevirin ve ardından bir saniye bekleyin. Bu, LED’in bir saniye boyunca açık kalmasını zorlayacaktır.

       led_line.set_value(1)
       time.sleep(1)

8. LED’i kapatın ve ardından bir saniye bekleyin. Uyku, LED’i bir saniye boyunca kapalı kalmaya zorlar.

       led_line.set_value(0)
       time.sleep(1)  # Sleep for one second

9. Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin. GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi.GPIO’yu) çıkmadan önce temizlememiz gerekiyor.

finally:
   led_line.release()

10. Kodu Blinky.py olarak kaydedin ve başlamak için Çalıştır’a tıklayın. GPIO 17’deki LED her saniye yanıp sönecektir. Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın.

Proje 1: Tam Kod Listeleme

import gpiod
import time
LED_PIN = 17
chip = gpiod.Chip('gpiochip4')
led_line = chip.get_line(LED_PIN)
led_line.request(consumer="LED", type=gpiod.LINE_REQ_DIR_OUT)
try:
   while True:
       led_line.set_value(1)
       time.sleep(1)
       led_line.set_value(0)
       time.sleep(1)
finally:
   led_line.release()

Proje 2: Girdi, Kullanıcı Girdisine Tepki Verme

Python 3 ile Raspberry Pi 5 GPIO

(İmaj kredisi: Tom’un Donanımı)

“Merhaba Dünya”dan sonraki hedef bir girdi oluşturmaktır. Bu örnekte bir buton oluşturuyoruz, bir tarafı Button GPIO pinine, diğer tarafı 3V3’e bağlı. Button GPIO pininin varsayılan durumu güç yok (0, Yanlış, Düşük) ancak düğmeye bastığımızda 3V3 pinini Button GPIO pinine bağlayıp durumunu güç (1, Doğru, Yüksek) olarak değiştiriyoruz. Kodumuz bu durum değişikliğini arayacak ve buna göre tepki verecektir. Tek ihtiyacımız olan düğme ve iki aktarma kablosu.

Raspberry Pi 5'te basma düğmeyle kontrol edilen bir LED

(Resim kredisi: Gelecek)

1. Thonny’yi açın ve iki kod modülünü içe aktarın. İlk modül GPIO’yu kontrol etmek ve okumak için kullanılan gpiod’dur. İkincisi, koda bir duraklama eklemek için kullanılan zamandır.

import gpiod
import time

2. LED_PIN adında bir değişken oluşturun ve 17 değerini bunun içinde saklayın. Bu değişken, Raspberry Pi’nin tüm modellerindeki GPIO pini için Broadcom pin referansını içerir. Broadcom pin referansları, tüm Raspberry Pi belgelerinde kullanılan standarttır. SoC’den GPIO’ya geçişi kullanır. Bize pek mantıklı gelmeyebilir ama panoları oluşturan mühendislere göre pinler doğru şekilde kırılmış.

LED_PIN = 17

3. BUTTON_PIN adında bir değişken oluşturun ve 27 değerini bunun içinde saklayın. GPIO 27, GPIO 17’nin hemen yanındadır.

BUTTON_PIN = 27

4. Koda GPIO’yu nerede bulacağınızı söyleyin. Başlangıçta Raspberry Pi’nin belleğe eşlenen tek bir gpiomem cihazı vardı ve bunu RPi.GPIO gibi Python modülleriyle kullanabiliyorduk. Raspberry Pi 5 ve RP1 çipi ile artık dinamik olarak bölünmüş cihazlarımız var ve GPIO’muz gpiomem4’te.

chip = gpiod.Chip('gpiochip4')

5. led_line adında bir değişken oluşturun ve LED GPIO pinine bir referans saklayın. Gpiod modülü, GPIO pinlerine atıfta bulunmak için çizgiler kullanır.

led_line = chip.get_line(LED_PIN)

6. Button_line adında bir değişken oluşturun ve Button GPIO pinine bir referans kaydedin.

button_line = chip.get_line(BUTTON_PIN)

7. LED’i çıkış olarak ayarlayın. Akımın LED’e akmasını istiyoruz.

led_line.request(consumer="LED", type=gpiod.LINE_REQ_DIR_OUT)

8. Düğmeyi giriş olarak ayarlayın. Akımın LED’e akmasını istiyoruz.

button_line.request(consumer="Button", type=gpiod.LINE_REQ_DIR_IN)

9. Kodun ana gövdesini try ve while True döngüsüne sarın.Try, kodumuzu çalıştırmayı deneyecek istisna işleyicinin bir parçasıdır, istisnaları işleyebilir ve çıktığımızda kodun bir bölümünü çalıştırabilir.

try:
   while True:

10. Button GPIO pininin mevcut durumunu alın ve onu Button_state adlı bir değişkende saklayın.

       button_state = button_line.get_value()

11. Düğmeye basılıp basılmadığını kontrol etmek için if koşulunu kullanın. Eğer öyleyse, LED’i açın. Button GPIO pininin varsayılan durumu düşük (0, Yanlış) olacaktır. Fakat butona bastığımızda Raspberry Pi 5’in 3V pinini Button GPIO pinine bağlıyoruz. Bu, Düğme pimini yükseğe çeker (1, Doğru). Bu durum değişikliği kodumuzun tetikleyicisidir.

       if button_state == 1:  # Button is pressed
           led_line.set_value(1)  # Turn the LED on

12. Düğmeye basılmadığında LED’i kapatmak için başka bir koşul kullanın.

       else:
           led_line.set_value(0)  # Turn the LED off

13. Kod çıktığında GPIO’yu temizlemek için bir kod bölümü ekleyin. GPIO Zero ile bunu yapmak zorunda değiliz ancak gpiod’u (ve eski RPi.GPIO’yu) çıkmadan önce temizlememiz gerekiyor.

finally:
   led_line.release()
   button_line.release()

14. Kodu Button-press.py olarak kaydedin ve başlamak için Çalıştır’a tıklayın. LED’i açmak için düğmeye basın ve kapatmak için bırakın. Sonlandırmak için CTRL + C tuşlarına basın veya Durdur’a tıklayın.

Proje 2: Tam Kod Listeleme

import gpiod
LED_PIN = 17
BUTTON_PIN = 27
chip = gpiod.Chip('gpiochip4')
led_line = chip.get_line(LED_PIN)
button_line = chip.get_line(BUTTON_PIN)
led_line.request(consumer="LED", type=gpiod.LINE_REQ_DIR_OUT)
button_line.request(consumer="Button", type=gpiod.LINE_REQ_DIR_IN)
try:
   while True:
       button_state = button_line.get_value()
       if button_state == 1:
           led_line.set_value(1)
       else:
           led_line.set_value(0)
finally:
   led_line.release()
button_line.release()



genel-21

Corsair’in akıllı yeni PSU’ları ile beyaz bilgisayarınızdaki kabloları gizleyin
Garmin Instinct 2S Solar, Amazon’da neredeyse yarısında beyinsiz bir
Zapier, birinin kod depolarına girdiğini ve müşteri verilerine erişebileceğini söylüyor
28.000mAh Pilli Energizer Hard Case P28K Telefon MWC 2024’te Tanıtıldı
Bilgisayar Ekranınızın Etrafında Büyüyen Bir Sarma Tüpüne Ne Dersiniz?
ETİKETLENDİ:etmeGPIOyuilekontrolPythonRaspberry
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Fidye yazılımı enfeksiyonuna benziyor: Google, Android 14 çökmesinin Pixel akıllı telefonlarda ‘hasar yarattığını’ araştırıyor
Sonraki Makale Ücretsiz Man United vs. maçı var mı? Manchester City canlı yayın mı?

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Segway Myon Elektrikli Bisiklet: Akıllı Özellikleriyle Mi Foyası?
Genel
Microsoft CEO’su: Yeni AI veri merkezleri yıllık restoran kadar su kullanıyor
Donanım
Hades 2 Güncellemesiyle Son Patron Savaşlarında Şansınızı Artırın
Oyun
Acil: Açık Kaynak Araçları Taklidi Yapan Sahte Siteler Tehditte!
Siber Güvenlik
Amazon’un Yeni Depo Robotları ile İletişim Kurmak Mümkün Mü?
Liste
Kuantum Bilgisayarlar: Yatırımcılar İçin Yeni Altın Çağ mı?
Genel
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?