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 IoT 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. Bu Raspberry Pi Eğitim Serisinin sonunda, yüksek profilli projeleri kendi başınıza yapabileceksiniz. Aşağıdaki eğiticilere göz atın:
- Raspberry Pi'ye Başlarken
- Raspberry Pi Yapılandırması
- LED Yanıp Sönen
- Düğme Arayüzü
- PWM üretimi
- DC Motorun Kontrolü
- Step Motor Kontrolü
- Vardiya Kaydı Arayüzü
- Raspberry Pi ADC Eğitimi
- Servo Motor Kontrolü
- Kapasitif Dokunmatik Yüzey
Bu eğitimde, Raspberry Pi kullanarak 16x2 LCD Ekranı kontrol edeceğiz. LCD'yi, üzerindeki karakterleri görüntülemek için PI'nin GPIO (Genel Amaçlı Giriş Çıkışı) pinlerine bağlayacağız. Uygun komutları GPIO üzerinden LCD'ye göndermek ve gerekli karakterleri ekranda görüntülemek için PYTHON'da bir program yazacağız. Bu ekran, sensör değerlerini, kesinti durumunu ve ayrıca zamanı görüntülemek için kullanışlı olacaktır.
Piyasada farklı tipte LCD'ler vardır. Grafik LCD, 16x2 LCD'den daha karmaşıktır. Yani burada 16x2 LCD ekran için gidiyoruz, isterseniz 16x1 LCD bile kullanabilirsiniz. 16x2 LCD toplam 32 karakter, 1 16 sahiptir st hattı ve 2 başka 16 nd hattı. JHD162, 16x2 LCD Modül karakter LCD'dir. 16x2 LCD'yi 8051, AVR, Arduino vb. İle arayüzledik. 16x2 LCD ile ilgili tüm projemizi bu bağlantıyı takip ederek bulabilirsiniz.
Daha ileri gitmeden önce biraz PI GPIO hakkında konuşacağız.
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.
Kart üzerinde + 5V (Pin 2 veya 4) ve + 3.3V (Pin 1 veya 17) güç çıkış pinleri vardır, bunlar diğer modül ve sensörleri bağlamak içindir. 16 * 2 LCD'ye + 5V rayından güç vereceğiz . LCD'ye + 3.3v kontrol sinyali gönderebiliriz, ancak LCD'nin çalışması için + 5V ile güçlendirmemiz gerekir. LCD, + 3.3V ile çalışmayacaktır.
GPIO pinleri ve bunların mevcut çıkışları hakkında daha fazla bilgi edinmek için şunu 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
- 16 * 2 LCD Modülü
- 1KΩ direnç (2 adet)
- 10.000 saksı
- 1000µF kapasitör
- Breadboard
Devre ve Çalışma Açıklaması:
Devre Şemasında gösterildiği gibi, 16 * 2 LCD'nin Kontrol ve Veri Aktarım Pimlerine 10 GPIO PI pini bağlayarak LCD ekranlı Arayüzlü Raspberry Pi'ye sahibiz. Bir BYTE olarak GPIO Pin 21, 20, 16, 12, 25, 24, 23 ve 18'i kullandık ve LCD'ye veri göndermek için 'PORT' fonksiyonunu oluşturduk. Burada GPIO 21 LSB'dir (Least Significant Bit) ve GPIO18, MSB'dir (Most Significant Bit).
16x2 LCD Modül, beş kategoriye ayrılabilen 16 pime sahiptir: Güç Pimleri, kontrast pini, Kontrol Pimleri, Veri pimleri ve Arka Işık pimleri. İşte onlar hakkında kısa açıklama:
Kategori |
PIN NO. |
Pin Adı |
Fonksiyon |
Güç Pimleri |
1 |
VSS |
Zemin Pimi, Toprağa bağlı |
2 |
VDD veya Vcc |
Gerilim Pimi + 5V |
|
Kontrast Pimi |
3 |
V0 veya VEE |
Kontrast Ayarı, değişken bir dirençle Vcc'ye bağlanır. |
Kontrol Pimleri |
4 |
RS |
Kayıt Seç Pin, RS = 0 Komut modu, RS = 1 Veri modu |
5 |
RW |
Okuma / Yazma pimi, RW = 0 Yazma modu, RW = 1 Okuma modu |
|
6 |
E |
LCD'yi etkinleştirmek için yüksek ila düşük darbe gerekir |
|
Veri Pinleri |
7-14 |
D0-D7 |
Veri Pinleri, LCD'de gösterilecek Verileri veya komut talimatlarını saklar |
Arka Işık Pimleri |
15 |
LED + veya A |
Arka Işık + 5V'ye güç vermek için |
16 |
LED- veya K |
Arka Işık Zemin |
LCD'nin Pinleri ve Hex Komutlarıyla çalıştığını anlamak için bu makaleyi incelemenizi şiddetle tavsiye ederiz.
LCD'ye veri gönderme sürecini kısaca tartışacağız:
1. E yüksek ayarlanmış (modülü etkinleştiriyor) ve RS düşük ayarlanmış (LCD'ye komut verdiğimizi söylüyor)
2. Ekranı temizlemek için bir komut olarak veri portuna 0x01 değeri verilmesi.
3. E yüksek ayarlanmış (modülü etkinleştiriyor) ve RS yüksek ayarlanmış (LCD'ye veri verdiğimizi söylüyor)
4. Karakterler için ASCII kodunu kanıtlayan görüntülenmesi gerekir.
5. E düşük ayarlanmış (LCD'ye veri göndermeyi bitirdiğimizi söylüyor)
6. Bu E pini azaldığında, LCD alınan verileri işler ve ilgili sonucu gösterir. Yani bu pin veri gönderilmeden önce yükseğe ayarlanır ve veri gönderildikten sonra yere çekilir.
Dediğimiz gibi karakterleri birbiri ardına göndereceğiz. Karakterler ASCII kodları ile LCD verilir (Bilgi Değişimi İçin Amerikan Standart Kodu). ASCII kodlarının tablosu aşağıda gösterilmiştir. Örneğin, bir "@" karakterini göstermek için, "40" onaltılık bir kod göndermemiz gerekir. LCD'ye 0x73 değeri verirsek "s" gösterecektir. Bunun gibi, " CIRCUITDIGEST " dizesini görüntülemek için uygun kodları LCD'ye göndereceğiz.
Programlama 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. Tahtadaki 'PIN 29' gibi 'GPIO5'. Yani burada ya buradaki pimi '29' veya '5' ile temsil edeceğimizi söylüyoruz.
IO.setmode (IO.BCM)
LCD'nin Data ve Control pinleri için çıkış pinleri olarak 10 adet GPIO pin ayarlıyoruz.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
1: komutu sonsuz döngü olarak kullanılırken, bu komutla bu döngü içindeki ifadeler sürekli olarak yürütülecektir.
Diğer tüm fonksiyonlar ve komutlar aşağıdaki 'Kod' bölümünde 'Yorumlar' yardımı ile açıklanmıştır.
Raspberry Pi programı yazıp çalıştırdıktan sonra karakterleri tek tek LCD'ye gönderir ve LCD ekranda karakterleri gösterir.