Ş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")