Raspberry Pi, elektronik mühendisleri ve hobiler için tasarlanmış ARM mimarisi işlemci tabanlı bir karttır. PI, şu anda piyasadaki en güvenilir proje geliştirme platformlarından biridir. Daha yüksek işlemci hızı ve 1 GB RAM ile PI, Görüntü işleme ve Nesnelerin İnterneti gibi birçok yüksek profilli proje için kullanılabilir.
Yüksek profilli projelerden herhangi birini yapmak için, PI'nin temel işlevlerini anlamak gerekir. Bu eğitimlerde Raspberry Pi'nin tüm temel işlevlerini ele alacağız. Her öğreticide PI işlevlerinden birini tartışacağız. Eğitim serisinin sonunda, yüksek profilli projeleri kendi başınıza yapabileceksiniz. Raspberry Pi'ye Başlarken ve Raspberry Pi Yapılandırması için bunları kontrol edin.
Önceki derslerde Raspberry Pi ile LED blinky ve Button arayüzünü tartışmıştık. Bu Raspberry Pi PWM eğitiminde Raspberry Pi ile PWM çıkışı alma hakkında konuşacağız. PWM, " Darbe Genişliği Modülasyonu " anlamına gelir. PWM, sabit güç kaynağından değişken voltaj elde etmek için kullanılan bir yöntemdir. Raspberry PI'dan PWM sinyali üreteceğiz ve Pi'ye bağlı bir LED'in Parlaklığını değiştirerek PWM'yi göstereceğiz.
Darbe Genişliği Modülasyonu:
Daha önce PWM'den ATmega32 ile Darbe Genişliği Modülasyonu, Arduino Uno ile PWM, 555 zamanlayıcı IC ile PWM ve Arduino Due ile PWM hakkında birçok kez konuştuk.
Yukarıdaki şekilde, anahtar belirli bir süre boyunca sürekli olarak kapatılırsa, LED bu süre boyunca sürekli olarak 'AÇIK' olacaktır. Anahtar yarım saniye için kapatılır ve sonraki yarım saniye için açılırsa, LED yalnızca ilk yarım saniyede AÇIK olacaktır. Artık LED'in toplam süre boyunca AÇIK olduğu oran Görev Döngüsü olarak adlandırılır ve şu şekilde hesaplanabilir:
Görev Döngüsü = Açma süresi / (Açma süresi + Kapatma süresi)
Görev Döngüsü = (0,5 / (0,5 + 0,5)) =% 50
Yani ortalama çıkış voltajı, akü voltajının% 50'si olacaktır.
Bu bir saniye için geçerlidir ve LED'in yarım saniye için KAPALI olduğunu ve diğer yarım saniye için LED'in AÇIK olduğunu görebiliriz. AÇMA ve KAPATMA sürelerinin sıklığı 'saniyede 1'den' saniyede 50'ye çıkarsa. İnsan gözü bu frekansı yakalayamaz. Normal bir göz için LED, parlaklığın yarısı kadar parlayan olarak görülecektir. Böylece, ON süresinin daha da azaltılmasıyla LED çok daha açık görünür.
PI'yı bir PWM almak için programlayacağız ve çalıştığını göstermek için bir LED bağlayacağız.
Raspberry Pi'de 40 adet GPIO çıkış pini bulunmaktadır. Ancak 40 taneden yalnızca 26 GPIO pini (GPIO2'den GPIO27'ye) programlanabilir. GPIO pinleri hakkında daha fazla bilgi edinmek için şunları gözden geçirin: Raspberry Pi ile LED Yanıp Sönüyor
Gerekli Bileşenler:
Burada Raspbian Jessie OS ile Raspberry Pi 2 Model B kullanıyoruz. Tüm temel Donanım ve Yazılım gereksinimleri daha önce tartışılmıştır, ihtiyaç duyduğumuz dışında bunları Raspberry Pi Giriş bölümünde bulabilirsiniz:
- Bağlantı pimleri
- 220Ω veya 1KΩ direnç
- LED
- Ekmek Tahtası
Devre Açıklaması:
Devre şemasında gösterildiği gibi, PIN35 (GPIO19) ve PIN39 (toprak) arasına bir LED bağlayacağız. Daha önce de belirtildiği gibi, bu pinlerden herhangi birinden 15mA'dan fazla çekemeyiz, bu nedenle akımı sınırlamak için LED ile seri olarak 220Ω veya 1KΩ direnç bağlarız.
Çalışma Açıklaması:
Her şey bağlandıktan sonra, programı PYHTON'da yazmak ve çalıştırmak için Raspberry Pi'yi AÇIK hale getirebiliriz.
PYHTON programında kullanacağımız birkaç komuttan bahsedeceğiz.
Kütüphaneden GPIO dosyasını içe aktaracağız, aşağıdaki fonksiyon PI'nın GPIO pinlerini programlamamızı sağlar. Ayrıca "GPIO" yu "IO" olarak yeniden adlandırıyoruz, bu nedenle programda GPIO pinlerine başvurmak istediğimizde "IO" kelimesini kullanacağız.
RPi.GPIO'yu IO olarak içe aktar
Bazen kullanmaya çalıştığımız GPIO pinleri başka işlevler yapıyor olabilir. Bu durumda programı çalıştırırken uyarılar alacağız. Aşağıdaki komut PI'ya uyarıları dikkate almamasını ve programa devam etmesini söyler.
IO.setwarnings (False)
PI'nın GPIO pinlerini, kart üzerindeki pin numarasına veya fonksiyon numaralarına göre yönlendirebiliriz. Pin diyagramında, kart üzerindeki 'PIN 35'in' GPIO19 'olduğunu görebilirsiniz. Yani burada ya buradaki pimi '35' veya '19' ile temsil edeceğimizi söylüyoruz.
IO.setmode (IO.BCM)
GPIO19'u (veya PIN35) çıkış pini olarak ayarlıyoruz. Bu pinten PWM çıkışı alacağız.
IO. kurulumu (19, IO.IN)
Pini çıkış olarak ayarladıktan sonra pini PWM çıkış pini olarak ayarlamamız gerekir, p = IO.PWM (çıkış kanalı, PWM sinyalinin frekansı)
Yukarıdaki komut, kanalı kurmak ve ayrıca PWM sinyalinin frekansını ayarlamak içindir. Burada 'p' bir değişkendir, herhangi bir şey olabilir. GPIO19'u PWM çıkış kanalı olarak kullanıyoruz. ' PWM sinyalinin frekansı biz yanıp LED görmek istemiyoruz olarak' 100 seçilmiştir.
PWM sinyal üretimini başlatmak için aşağıdaki komut kullanılır, ' DUTYCYCLE ' Açma oranını ayarlamak içindir, 0, LED'in% 0 oranında AÇIK olacağı anlamına gelir, 30 LED'in% 30'unda AÇIK olacağı ve 100'ün tamamen AÇIK olacağı anlamına gelir..
p.start (GÖREV)
Bu komut, döngüyü 50 kez yürütür, x, 0'dan 49'a yükseltilir.
(50) aralığındaki x için:
1 iken: sonsuz döngü için kullanılır. Bu komutla, bu döngü içindeki ifadeler sürekli olarak yürütülecektir.
Program yürütülürken PWM sinyalinin görev döngüsü artar. Ve% 100'e ulaştıktan sonra azalır. Bu PIN'e bir LED takıldığında, LED'in parlaklığı önce artar, sonra azalır.