Hakan Kaya

RPi: Karaşimsek (Sıralı Led Dizisi)

Şuraya karaşimşek uygulaması resmi de çizelim…Hmm, tamamdır. Karaşimşek uygulamasını yaparken en çok dikkat ettiğim noktalardan biri ne kadar mükemmel algoritma olmasıdır. Komik olan birinci ledi yak, söndür; ikinciye geç şeklinde olan algoritmalardan kaçınmalısınız. İşin bel kemiği algoritma mantığıdır, yazılım dünyasında. Bir programcı gibi düşünüp ona göre davranmalısınız. Bakalım benim karaşimşek algoritmam nasılmış? Farklı algoritmalarınız varsa paylaşın ki ibret alalım bizde.

Şöyle bir şey karaladım ben…


import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)

# Pin tanimlamalari
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)

# Led pinlerimizi iceren LED dizisi tanımı
#           1.   2.  3.  4.  led pinleri
ledDizisi = [11, 13, 15, 12]

# Kac LED oldugunun ciktisi
print (len(ledDizisi), "LED bagli olmali...")
print ("Cikis icin CTRL + C yapin")
try:
    while True:
        for i in range(0, len(ledDizisi) -1, +1):
            print (i +1, ". led yandi")
            GPIO.output(ledDizisi[i], GPIO.HIGH)
            time.sleep(0.5)
            GPIO.output(ledDizisi[i], GPIO.LOW)
            
                        
        for j in range(len(ledDizisi) -1, 0, -1):
            print (j +1, ". led yandi")
            GPIO.output(ledDizisi[j], GPIO.HIGH)
            time.sleep(0.5)    
            GPIO.output(ledDizisi[j], GPIO.LOW)
                  

except KeyboardInterrupt:
    GPIO.cleanup()
    print ("Cikis ve GPIO temizligi yapildi")
Exit mobile version