RPi: Led Blinking

Geleneksel LED yakıp söndürme uygulamasını atlamadan olmaz. Basit bir led yakıp söndürme yerine biraz daha detaylı giriş yapmayı tercih ettim. Programlama dili olarak da Pyhton, işletim sistemi olarak Ubuntu Mate 15.10 kullandım. Python dosyasını hemen şuracıkta da elinizin altına koydum.
Yandex Disk’ten indirmek için tıklayın…

Not: Bu konu Raspberry Pi ile LED yakmak üzerine olduğu için Raspberry Pi’a nasıl erişileceğine veyakodumuzu nasıl yazacağımıza dair bilgiler bulunmamaktadır. Bunun için Raspberry Pi ile ilgili yazmış olduğum diğer dökümanlara bakabilirsiniz.

Her neyse kod bu


import RPi.GPIO as GPIO
import time

#Uyarıları kapatmak icin
GPIO.setwarnings(False)


#blink fonksiyonu
def blink(pin):
    print ("Led yandı...")
    GPIO.output(pin,GPIO.HIGH)
    time.sleep(1)
    
    print ("Led sondu...")
    GPIO.output(pin,GPIO.LOW)
    time.sleep(1)
    return

#Boardda numaralandirilmis pinleri kullanmak
GPIO.setmode(GPIO.BOARD)
#Pin tanimlama
GPIO.setup(11, GPIO.OUT)

#for dongusunda fonksiyonumuzu calistirmak icin
try:
    for i in range (0,5):
        blink(11)
    print("Islem bitti...")
except KeyboardInterrupt:
    GPIO.cleanup()
    print ("GPIO temizlendi...")

Her zaman yapacağımız ilk hamle kütüphaneleri eklemek olacaktır. GPIO komutlarının anlam kazandırmak için RPi.GPIO‘u import ettikten sonra Raspberry Pi zamanı doğru sayabilmesi için time kütüphanesi ile saat hediye edelim… Bunları eklemezsek kodları derlerken “Güzel kardeşim GPIO.output nedir, time.sleep nedir? Ben bunların ne anlama geldiği bilmiyorum” gibi tepkiler verecektir. Ne var ki import’un kelime anlamlarından bazıları ifade, mana, anlamdır zaten.

Pinlerin açık kalmış, başkası kullanıyor gibi uyarıları görmezden gelmek için de GPIO.setwarnings(False) ile egomuzu biraz yükselttik.

Sonra blink adında ledin yanıp sönmesini yazacağımız bir fonksiyon yarattık. Burada ufak bir ayrıntıya dikkat verelim. Fonksiyona dışarıdan pin adını verdiğimiz değişken alacaktır. (Biraz sabırla aşağıda ona da yer vereceğiz.) Ledin yandığını belirten bir mesaj yazdırıp GPIO.output ile verdik coşkuyu. Saatimize baktık 1 saniye bekledik. Buradaki değer saniye cinsinden oluyor… Aynı şeyleri yapıp söndürdük sonra… Oldukça basit öyle değil mi?

Raspberry Pi’nin pin isimlendirmesi olarak BOARD’u seçtik. Bu şunu ifade ediyor; BOARD düzeninde her pine karşılık gelen bir sayı vardır. Mesela biz ledimizi 11. pine bağladık bunu 11. pin olarak kullanmak için BOARD düzenini seçtim, aynı zamanda bu 11. pin GPIO17’ye denk geliyor. O şekilde kullanmak içinde BCM düzeni seçilebilir.

Raspberry-Pi-GPIO-pinouts

11. pinimizi çıkış olarak belirttik.

Fonksiyonu tekrar tekrar çalıştırmak için bir for döngüsü yaratıp, blink fonksiyonuna 11 sayısını argüman olarak yolladık. Yukarıda yazdığım pin yerlerine 11 sayısı gelecektir. Fonksiyon bitiminde haberdar edilmek için print ile not bıraktık. O kadar beklememek için interrupt (kesme) hazırladık, CTRL + C zaten hali hazırda scriptleri durduracaktır. Ama ben biterken ortalığı da temizlemesini istedim. Temizleyince haber de vermesini de söyledik mi, tamamdır!

Ekran Alıntısı

 

Hakan Kaya
Yarı zamanlı mühendis. Yarı zamanlı eğitmen. Biraz da film sever.
error: 5846 sayılı Fikir ve Sanat Eserleri Kanunu tarafında içeriklerin izinsiz kopyalanması, paylaşılması ve çoğaltılması yasaktır.