2.605 kez okundu
Oca 102018
 
2.606 kez okundu

Raspberry Pi Maceralarım No-08

Raspberry Pi 3 GPIO ile İki Yönde Yürüyen ve Rasgele Yanıp Sönen Işıklar

Önceki yazımda “Yürüyen ışık” örneğini vermiştim. Bu kez iki betik vereceğim. Birinci betikle aynı LED’lerin her iki yönde yürümesini, diğeriyle ise LED’lerin rasgele yanıp sönmesini sağlayacağız.

GPIO iğne yerleşim şemasını bir kez daha paylaşayım:

Raspberry Pi Maceralarım No-07

İki yönlü yürüyen ışık kodlarımız kolay anlaşılır:

Kodların açıklaması

Sadece while döngüsü içindeki ikici for bloğu öncekinden farklı

Bu bloktaki tek fark, for döngüsünün sondan başlayıp, birer birer azalarak sıfıra kadar inmesi…

İlk örneğimizdeki 10 ledli devreyi ikinci betiğimizde de kullanıyoruz.

Kodlarımız şöyle:

Bu betiğimizde sadece while bloğunun içeriği farklı. (Burada random modülünü kullandığımız için betiğin başında bu modülü içeri aktarıyoruz.)

Döngünün her aşamasında önce tüm ledlerin söndüğünden emin olmak için hepsini_sondur() fonksiyonunu çağırıyoruz.

Daha sonra pinler[] listesinden, indis numarasını 0 ile liste boyu arasından rasgele seçtirdiğimiz bir sayıyı kullanarak, rasgele bir LED numarası belirleyip pin değişkenine aktarıyoruz.

Pin numarasını vererek yaktığımız LED’in yanık kalma süresini de 0 ile 9 arasındaki rasgele bir sayıyı 50.0’ye bölerek saptıyoruz. bekle değişkenine atadığımız bu değeri, time.sleep() fonksiyonuna argüman olarak vererek LED’in yanık kalma süresini belirliyoruz.

Kısacası, bu betiğimizde hem yanacak LED’in indisini, hem de yanık kalma süresini rasgele belirledik. Bu süreyi

satırındaki değerlerle oynayarak istediğiniz gibi değiştirebilirsiniz.

LED’lerimizin davranışını gösteren videomuz aşağıda.

Bir sonraki yazımda GPIO 12 numaralı iğnenin PWM (Pulse Width Modulation) özelliğini kullanarak bir LED’in parlaklığını istediğimiz gibi denetlemeyi örnekleyeceğim.

Beni izlemeye devam edin.

Ahmet Aksoy

Raspberry Pi Maceralarım No-08

error
fb-share-icon

 Bir yanıt bırakın

Bu HTML tagleri ve özellikleri kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(gerekli)

(gerekli)

This site uses Akismet to reduce spam. Learn how your comment data is processed.