Raspberry Pi Maceralarım No-07
Raspberry Pi 3 GPIO ile Yürüyen Işıklar
Önceki yazımda “Yanıp-sönen LED” örneğini vermiştim. Bu kez yan yana dizilmiş 10 adet LED’in sırayla yanıp sönerek bir “Yürüyen Işık” oluşturmasını sağlayacağız.
GPIO iğne yerleşim şemasını tekrar paylaşayım:
Kodlarımız oldukça basit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# -*- coding: utf-8 -*- # led0403.py from __future__ import print_function import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) pinler=[12,16,18,11,13,15,22,24,26,32] for pin in pinler: GPIO.setup(pin, GPIO.OUT) def hepsini_sondur(): for pin in pinler: GPIO.output(pin,False) def pini_yak(pin): GPIO.output(pin,True) bekle= 0.2 #ledin yanık kalma süresi try: while True: for pin in pinler: hepsini_sondur() pini_yak(pin) time.sleep(bekle) except KeyboardInterrupt: GPIO.cleanup() |
Kodların açıklaması
1 2 3 4 5 6 7 8 9 10 |
# -*- coding: utf-8 -*- # led0403.py from __future__ import print_function import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) pinler=[12,16,18,11,13,15,22,24,26,32] for pin in pinler: GPIO.setup(pin, GPIO.OUT) |
Betiğimizin ilk satırları önceki örneğimizinkiyle aynı. Gerek duyarsanız, açıklamalar için önceki yazıma bakabilirsiniz.
1 2 3 |
def hepsini_sondur(): for pin in pinler: GPIO.output(pin,False) |
Bu fonksiyonumuz, listedeki tüm pinlerin gerilimini toprak seviyesine düşürerek ledleri söndürüyor.
Aslında pinlerin çoğunda ledleri yakacak gerilim yok. Sadece HIGH (True) konumundakini söndürmek yeterli. Ama başka yerlerde de kullanmak amacıyla bu fonksiyonu hazırladım. Burada da işimizi görüyor.
1 2 |
def pini_yak(pin): GPIO.output(pin,True) |
pini_yak(pin) fonksiyonu iğne numarasını belirttiğimiz bağlantıyı aktif hale getiriyor.
1 2 3 4 5 6 7 8 9 |
bekle= 0.2 #ledin yanık kalma süresi try: while True: for pin in pinler: hepsini_sondur() pini_yak(pin) time.sleep(bekle) except KeyboardInterrupt: GPIO.cleanup() |
bekle değişkenine 0.2 değerini yükledik. Bu değişken ledlerin yanık kalma süresini belirliyor.
Döngünün içinde her aşamada önce tüm ledlerin sönmüş olmasını sağladıktan sonra sırası gelen ledi yakıyor ve bekle saniye bekliyoruz.
Sonsuz döngüyü sonlandırmak istediğimizde Ctrl-C tuşlarına basmamız gerekiyor.
İlk örneğimizdeki 10 ledli devreyi burada da aynen kullanıyoruz.
Videomuz aşağıda.
Bir sonraki yazımda yine aynı devreyi kullanarak iki yönlü yürüyen ışık yapacağız.
Beni izlemeye devam edin.
Ahmet Aksoy
Raspberry Pi Maceralarım No-07
http://python.gurmezin.com/raspberry-pi-maceralarim-no-01/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-06/
http://python.gurmezin.com/raspberry-pi-maceralarim-no-07/