back to top

Raspberry Pi 3 İle LED Yakmak – GPIO Pinlerinin Kullanımı #5

Bu içerik 11 Ocak 2017 Tarihinde Raspberry Pi 3 Uyumlu Olacak Şekilde Güncellenmiştir. Güncellenen kısımları daha kolay şekilde görebilmeniz için farklı renkte (lacivert) yazdık. Güncelliğini yitiren kısımların ise üzerini çizdik. Keyifle oku, bol bol üret!

Raspberry Pi Dersleri serimizde kullanacağımız malzemelerin tamamına sizler için hazırladığımız setler ile kolayca sahip olabilirsiniz. Raspberry Pi’ye Uzaktan Bağlantı Yöntemleri (VNC,SSH,TTL) dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı dersimize kadar olan malzemeler için Süper Başlangıç Seti, tüm derslerdeki malzemeler için Proje Seti tercih edebilirsiniz.

Merhaba arkadaşlar. Bu yazımızda Raspbery Pi’mizin GPIO pinlerini kullanmayı öğreneceğiz.

Gereken Donanımlar

Projedeki Malzemeler Bu Sette. Şimdi İncele >

GPIO Pinleri

Raspberry Pi’deki GPIO konektöründe farklı işlevlere sahip pinler bulunmaktadır:

  • Genel amaçlı giriş/çıkış için kullanabileceğimiz GPIO pinleri
  • I2C haberleşme portu (GPIO02 ve GPIO03 pinleri)
  • SPI haberleşme portu (GPIO10, GIPO09 ve GPIO11 pinleri)
  • UART seri haberleşme portu (GPIO14 ve GPIO15 pinleri)

Bu pinlerin yerlerini görebilmemiz için şu şekilde bir diyagram mevcuttur:

Raspberry Pi’mizin tüm haberleşme yeteneklerini kullanabilmemiz için raspi-config programını kullanarak I2C, SPI ve Device Tree özelliklerini aktifleştirmemiz gereklidir. Bu özellikleri açmak için 1 numaralı dersimize bakabilirsiniz.

GPIO pinlerini kullanabilmemiz için python-dev ve python-rpi.gpio isimli paketlerin sistemde kurulu olması gereklidir. Raspbian’ın güncel sürümlerinde gerekli tüm paketler yüklü gelmektedir.

sudo apt-get updatesudo apt-get install python-dev python-rpi.gpio

Komutları ile paketleri sisteme yüklüyoruz. Yükleme işlemi bitince boş bir dosya açıp, aşağıdaki kodu kaydettikten sonra dosyayı blink.py ismiyle kaydediyoruz.

import RPi.GPIO as GPIOimport time# blinking functiondef blink(pin): GPIO.output(pin,GPIO.HIGH) time.sleep(1) GPIO.output(pin,GPIO.LOW) time.sleep(1) return# to use Raspberry Pi board pin numbersGPIO.setmode(GPIO.BOARD)# set up GPIO output channelGPIO.setup(11, GPIO.OUT)# blink GPIO17 50 timesfor i in range(0,50): blink(11)GPIO.cleanup()

Kodların satır satır detaylı açıklaması için aşağıdaki videoyu izleyebilirsiniz:

Kaydettiğimiz kodu

sudo python blink.py

Komutuyla çalıştırıyoruz. Raspbian’ın güncel sürümünde Python komutlarından önce sudo yazmamıza gerek yoktur.

Devre şemamız:

Burada dikkat etmemiz gereken nokta, GPIO17 isimli pinin, 11 numaralı pinde olmasıdır. 17 numaralı pin ile (3.3V) karıştırmamamız gerekir.

Raspberry Pi Hakkında Daha Fazlasını Öğrenmeye Devam Et

Raspberry Pi pek çok yönüyle avantaj sahibi ve geliştiriciler tarafından çok sevilen bir platform. Elektronik projelerinde, bilgisayar bilimlerinde ve robotik çalışmalarında sağladığı destek ve rahatlık ile öğrenmeyi sevdiren Raspberry Pi hergün daha da çok gelişiyor. 

Peki siz de daha fazla gelişmek istemez misiniz? Linux bilginizi geliştirmek, elektronik dünyasına atılmak ve eğlenceli projelere imza atmak için sizi Raspberry Pi ile yolculuğa çıkarıyoruz! Sizler için hazırladığımız Raspberry Pi eğitim serisine devam edin :

RPi Uzaktan Erişim Yöntemleri

Raspberry’nizi kullanmak için sürekli olarak ekrana, klavyeye, fareye bağlamanız gerekmiyor. Raspberry aslında birkaç basit yöntemle uzaktan veya kablolu olarak dilediğiniz her cihazdan kontrol edilebilmekte.

4. Dersimiz olan RPi Uzaktan Erişim Yöntemleri yazımızda sizlere SSH, VNC bağlantılarının ne olduğunu ve nasıl yapıldığını anlattık.

Raspberry Pi Buzzer Kullanımı

6. dersimizin konusu ise buzzerlar. Raspberry ile ses çıkışı alabileceğinizi biliyor muydunuz?

Yalnızca basit bir pasif buzzer kullanarak kendi melodilerimizi oluşturacağımız Raspberry Pi Buzzer Kullanımı yazımızda buzzer kullanımının detaylarını anlattık.

Son Çıkan Yazılar

40 YORUMLAR

  1. Merhabalar,
    Hocam harikasınız, tebrik ederim! Yabancı bloglarda okumama rağmen bir sorumun net yanıtını bulamadım, acemiliğime verin. Ben uzaktan (220V) röle tetiklemek istiyorum. Bunun için hangi portları kullanabilirim? Hangi portları nerede kullanabileceğimi tam anlayamadım. Örnein: bu iş için I2C, SPI, UART bunların tamamını kullanabilir miyim?

    Yanıtınızı bekler,
    Teşekkür ederim.

    • GPIO17 nimarali pini rolenin + verilen kisima vericeksin her ihtimale karsi dikkatli olmalisin ama 220 v bahsediyoruz ilk olarak 12v ile denemeni tavsiye ediyorum.

    • Hocam verdiğiniz bilgiler çok faydalı ve bizlere ufuk saçıyor. Ben rdm6300 125KHz rfid kart okuyucu montajını yapıp kart hareketlerini izlemek istiyorum. Fakat rdm 6300 bağlantısını Raspberry Pi 3 ile nasıl yapacağımı tam bilemiyorum. Yardımcı olabilir misiniz?

  2. Merhabalar,

    Öncelikle devre şemasındaki ledin ters bağlandığını belirtmek isterim. Python diline az biraz aşina biri olarak programlama dili ile ilgili değil ama diğer özellikler bakımından biraz daha ayrıntıya girerseniz çok güzel olur. Dersler bir çok meraklı insan için çok faydalı. Çalışmalarınızın devamını dört gözle bekliyoruz. İyi çalışmalar.

  3. import RPi.GPIO as GPIO
    import time
    # blinking function
    def blink(pin):
    GPIO.output(pin,GPIO.HIGH)
    time.sleep(1)
    GPIO.output(pin,GPIO.LOW)
    time.sleep(1)
    return
    # to use Raspberry Pi board pin numbers
    GPIO.setmode(GPIO.BOARD)
    # set up GPIO output channel
    GPIO.setup(8, GPIO.OUT)
    # blink GPIO14 50 times
    for i in range(0,50):
    blink(11)
    GPIO.cleanup()

    yaz. uart kapat çalışmazsa

  4. Merhabalar yeni başlayan biri olarak pi 3 Model B ye gpio ile klavye bağlamak istiyorum. daha önce böyle bir uygulama yaptınız mı? çalıştırmak mümkün mü? hangi pinleri ve komutları kullanmalıyım

    • Arkadasim o kadar urasacagina usb li bi klavye alsan daha iyi olur. Gpio pinlerini kullanima acil yapacagimizda sase durumunda makinemizi yakabiliriz kas cikarken goz cikartma derim

    • Anladığım kadarıyla yapmak istediğiniz işlem başka bir cihazın butonunu Raspberry Pi’nin GPIO pinleri ile kontrol etmek. Bu işlem için Raspberry Pi’nin GPIO pinlerine bir röle veya transistör devresi bağlayabilir ve butonunu kontrol edeceğiniz cihazın bağlantısını bu devre üzerinden yapabilirsiniz.

  5. merhaba.raspi3 üm var.gpio kontrolu yapmak istiyorum.terminal üzerinden python kodlari ile pini aciyorum fakat voltaj gelmiyor.elimde multimetre olmadigi icin bende webgpio yukledim.python kodunu yazip enterladiktandan donra durum degisiyor webgpioda yani kod calisiyor sorun yok algiliyor sistem onu fakat voltaj gelmiyor.pin durumu açikken kucuk motorun bir icini + pine digerini topraga deydirdigim an lojik 1 den, lojik 0 oluyor webgpioda.surekli gelen +3 ve +5 volt pinlerinde sikinti yok denemek icin direk bagladim calisiyor yabanci forumlara gruplara heryere sordum cozum bulamadim sizcr tekniki bir arizami?nasil cozebilirim?

    • Eğer fiziksel bir arıza olsaydı webgpio ile de çalışmazdı. Sizin yaşadığınız sorun yazılımsal kaynaklı görünüyor. Yazdığınız kod ile ilgili bir sorun olabilir veya kullanıcı yetkilerinizden kaynaklı olabilir. Ayrıca ne kadar küçük boyutlu olursa olsun, herhangi bir motoru doğrudan GPIO pinlerine bağlamak kartınıza hasar verebilir.

  6. Öncelikle emeğiniz ve çalışmalarınız için teşekkür ederim elinize sağlık.Sorum şu ; Raspberry pi 3 de tam 26 tane GPIO pini bulunmakta , bunların tamamı digital I/O olarak kullanılabilir mi? Cevabınız için şimdiden teşekkürler

    • Merhabalar. Raspberry Pi’de yer alan GPIO pinleri, bahsettiğiniz gibi I/O olarak kullanılabilmektedir. Fakat I2C, SPI ve UART gibi haberleşmeye ayrılmış özel pinler bulunmaktadır. Bu haberleşme pinlerinin yerleri malesef değiştirilemez.

  7. iyi çalışmalar. bir kaç sorum olacak. raspbery gpıo pinleri ile yapmak istediğim bir konu var. yardım edermisiniz. bir manina anakartından gelen 24 volt enerjiyi 5 volta düşürerek pinlerden birine girmek ve bu sinyali raspberry aldığı zaman ekrana bir görüntü gelmesini, enerji kesildiği an ise bir ses çalıp sesin bitiminde stabil konuma gelmesini istiyorum. bir kaç ayrı makina var, ve hangi makinadan voltaj gelir ise voltaj kesilene kadar makinanın resmini. voltaj kesildiği anda makinanın ismini sesli söyleyip durmasını, herhangi bir makinadan voltaj gelene kadar başka bir işlem yapmasına gerek yok.

  8. Merhaba,
    Verdiğiniz bilgiler için teşekkür edim.
    Rappberry ile daha önce yazdığımız bir programı 60 dk araklıklarla çalıştırmak istiyorum. Bunun için ne yapmam gerekiyor?

    • Merhabalar. Linux işletim sistemlerinde

      watch -n sure programadi

      komutu ile istediğiniz sürede (saniye cinsinden) programlarınızı tekrar çalıştırmanız mümkündür.

  9. Iyi geceler. Raspberry ye merak sardım öncelikle şunu öğrenmek isterim. Yazılımı harici bir ekran yardımı ile yazdık ve yükledik. Sonra devreyi çalıştırmak için ekrandan komut vermeden çalışmaz mi bu devre. Yani sadece raspberry ve led olacak enerjiyi verince led yakıp söndürecek .

  10. Merhaba bir sorum var,

    Rp 3 için fan almıştım. Çok sesli çalıştığı için arasıra çıkarıp takıyorumdum. Dün akşam es kaza 1 -3 nuramaları gpio pinlerine takarken kısa devre yaptı. Şimdi ise çalışmıyor. Bu sorunu çözebilir miyim? Yoksa rp 3 çöpe mi atmalayım. ;( Rp yeniyim.

  11. Emeğinize sağlık. Gayet güzel ve sade anlatmışsınız. Tek bir eleştirim olacak Python kodunu notepad’e kopyaladığımızda, tüm kod tek bir satır halinde yazılmış olarak geliyor. Bu gördüğüm kadarıyla diğer örnek derslerde de böyle. Çok mu önemli derseniz değil ama okunabilirliği azaltıyor sanki. Bilginize.

    İyi çalışmalar,

    Kolay gelsin.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz