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 eğitimlerde LED Blinky, Button Interfacing ve PWM oluşumunu tartışmıştık. Bu eğitimde Raspberry Pi ve PWM tekniğini kullanarak bir DC motorun Hızını kontrol edeceğiz. PWM (Darbe Genişlik Modülasyonu), sabit güç kaynağından değişken voltaj elde etmek için kullanılan bir yöntemdir. Önceki eğitimde PWM hakkında tartıştık.
Orada Ahududu Pi 2'de 40 GPIO çıkış pimleri. Ancak 40 taneden yalnızca 26 GPIO pini (GPIO2'den GPIO27'ye) programlanabilir. Bu pinlerden bazıları bazı özel işlevleri yerine getirir. Özel GPIO'yu bir kenara bıraktığımızda, kalan 17 GPIO'muz var. GPIO pinleri hakkında daha fazla bilgi edinmek için şunları gözden geçirin: Raspberry Pi ile LED Yanıp Sönüyor
Bu 17 GPIO pininin her biri maksimum 15mA sağlayabilir. Ve tüm GPIO Pins gelen akımların toplamı aşabilir değil 50mA'i. Yani bu GPIO pinlerinin her birinden ortalama olarak maksimum 3mA çekebiliriz. Yani ne yaptığınızı bilmediğiniz sürece bu şeylere müdahale etmemelisiniz.
Kart üzerinde diğer modülleri ve sensörleri bağlamak için + 5V (Pin 2 & 4) ve + 3.3V (Pin 1 & 17) güç çıkış pinleri bulunmaktadır. Bu güç rayı, işlemci gücüne paralel olarak bağlanır. Bu nedenle, bu güç rayından Yüksek akım çekmek İşlemciyi etkiler. PI kartında, yüksek yük uyguladığınızda atacak bir sigorta vardır. Sen + 3.3V dan güvenle 100mA çizebilirsiniz ray. Burada bundan bahsediyoruz çünkü; DC motoru + 3.3V'a bağlıyoruz. Güç sınırını göz önünde bulundurarak, sadece düşük güçlü motoru buraya bağlayabiliriz, yüksek güçlü motoru sürmek istiyorsanız, ayrı bir güç kaynağından çalıştırmayı düşünün.
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ç (3)
- Küçük DC Motor
- Düğmeler (2)
- 2N2222 Transistör
- 1N4007 Diyot
- Kondansatör - 1000 uF
- Ekmek Tahtası
Devre Açıklaması:
Daha önce de belirtildiği gibi, herhangi bir GPIO pininden 15mA'dan fazla çekemiyoruz ve DC motor 15mA'dan fazla çekiyor, bu nedenle Raspberry Pi tarafından üretilen PWM doğrudan DC motora beslenemez. Bu nedenle, motoru hız kontrolü için doğrudan PI'ye bağlarsak, kart kalıcı olarak hasar görebilir.
Bu yüzden, anahtarlama cihazı olarak bir NPN transistör (2N2222) kullanacağız. Bu transistör, PI'dan PWM sinyalini alarak yüksek güçlü DC motoru çalıştırır. Burada, transistörün yanlış bağlanmasının panoyu ağır bir şekilde yükleyebileceğine dikkat edilmelidir.
Motor bir endüksiyondur ve bu nedenle motoru değiştirirken endüktif artış yaşarız. Bu artış, transistörü büyük ölçüde ısıtacaktır, bu nedenle, Endüktif Spiking'e karşı transistöre koruma sağlamak için Diyot (1N4007) kullanacağız.
Amacıyla gerilim dalgalanmaları azaltmak için, biz bir bağlantı olacak 1000uF kapasitör devre şeması gösterildiği gibi, güç kaynağından karşıya.
Çalışma Açıklaması:
Her şey devre şemasına göre bağlandıktan sonra, programı PYHTON'da yazmak için 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. Karttaki 'PIN 35' gibi 'GPIO19'. 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)
Küme parantezindeki Koşul doğru ise, döngü içindeki ifadeler bir kez çalıştırılacaktır. Dolayısıyla, GPIO pimi 26 düşerse, IF döngüsü içindeki ifadeler bir kez çalıştırılacaktır. GPIO pimi 26 düşmezse, IF döngüsü içindeki ifadeler çalıştırılmayacaktır.
eğer (IO.input (26) == Yanlış):
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.
Bununla hız kontrolünü elde etmek için gereken tüm komutlara sahibiz.
Programı yazıp çalıştırdıktan sonra geriye kalan tek şey kontrolü kullanmaktır. PI'ye bağlı iki düğmemiz var; biri PWM sinyalinin Görev Döngüsünü artırmak için ve diğeri PWM sinyalinin Görev Döngüsünü azaltmak için. Bir düğmeye basılarak DC motorun hızı artar, diğer düğmeye basıldığında DC motorun hızı düşer. Bununla Raspberry Pi'nin DC Motor Hız Kontrolünü elde ettik .
Ayrıca şunları da kontrol edin:
- DC Motor Hız Kontrolü
- Arduino kullanarak DC Motor Kontrolü