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ğitimleri Serisinin sonunda Raspberry Pi'yi öğrenebilecek ve kendi başınıza güzel projeler 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ü
- Raspberry Pi PWM üretimi
- Raspberry Pi ile LCD Arayüz
- 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 7 segment ekran arayüzünü yapacağız. Yedi Segmentli ekran, bir görüntüleme birimi için en ucuz olanıdır. Bu bölümlerden birkaçı üst üste yığılmış sıcaklık, sayaç değeri vb. Görüntülemek için kullanılabilir. 7 segment görüntüleme birimini PI GPIO'suna bağlayacağız ve rakamları buna göre görüntülemek için kontrol edeceğiz. Bundan sonra PYTHON'da 0-9 arası saymak ve kendini sıfırlamak için yedi segmentli bir program yazacağız.
Yedi Segment Ekranı:
7 Segment Ekranın farklı türleri ve boyutları vardır. Yedi Segmenti burada detaylı olarak ele aldık. Temel olarak iki tip 7 Segment vardır, Ortak Anot tipi (Ortak Pozitif veya Ortak VCC) ve Ortak Katot tipi (Ortak Negatif veya Ortak Zemin).
Ortak Anot (CA): Burada, tüm 8 LED'in tüm Negatif terminalleri (katot) COM olarak adlandırılan birbirine bağlanır (aşağıdaki şemaya bakın). Ve tüm pozitif terminaller yalnız kaldı.
Ortak Katot (CC): Burada 8 LED'in tüm pozitif terminalleri (Anotlar) COM olarak adlandırılan birbirine bağlanır. Ve tüm negatif termikler yalnız kaldı.
Bu CC ve CA yedi segmentli ekranlar, birkaç hücreyi birlikte çoklarken çok kullanışlıdır. Eğitimimizde CC veya Common Cathode Seven Segment Display kullanacağız.
7 segmenti 8051, Arduino ve AVR ile zaten arayüzledik. Projelerimizin çoğunda 7 segment display kullandık.
Daha ileri gitmeden önce Raspberry Pi GPIO hakkında biraz 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, aşağıdaki şekle bakın. 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'nun (pin 1 veya 17) + 3,3V sinyali, 7 Segment Ekranı sürmek için yeterlidir. Akım sınırı sağlamak için, Devre Şemasında gösterildiği gibi her segment için 1KΩ direnç kullanacağız.
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
- Ortak Katot 7 segmentli ekran (LT543)
- 1KΩ direnç (8 adet)
- Breadboard
Devre ve Çalışma Açıklaması:
Raspberry Pi'ye 7 segment ekran arabirimi için yapılan bağlantılar aşağıda verilmiştir. Burada Ortak Katot 7 Segmentini kullandık:
PIN1 veya e ------------------ GPIO21
PIN2 veya d ------------------ GPIO20
PIN4 veya c ------------------ GPIO16
PIN5 veya h veya DP ---------- GPIO 12 // ondalık nokta kullanmadığımız için zorunlu değil
PIN6 veya b ------------------ GPIO6
PIN7 veya ------------------ GPIO13
PIN9 veya f ------------------ GPIO19
PIN10 veya g ---------------- GPIO26
PIN3 veya PIN8 ------------- Toprağa bağlı
Bu yüzden 8 bit PORT olarak 8 GPIO pini PI kullanacağız. Burada GPIO13 LSB (Least Significant Bit) ve GPIO 12 MSB'dir (Most Significant Bit).
Şimdi, "1" Numarasını görüntülemek istiyorsak, B ve C segmentlerini güçlendirmemiz gerekir. Segment B ve C'ye güç sağlamak için, GPIO6 ve GPIO16'ya güç sağlamamız gerekir. Dolayısıyla, 'PORT' işlevinin baytı 0b00000110 olacak ve 'PORT'un onaltılık değeri 0x06 olacaktır. Her iki pim de yüksek olduğunda ekranda “1” elde ederiz.
Görüntülenecek her basamak için değerleri yazdık ve bu değerleri 'EKRAN' adlı Karakter Dizisinde sakladık (Aşağıdaki Kod bölümünü kontrol edin). Daha sonra, 'PORT' Fonksiyonunu kullanarak ekranda karşılık gelen rakamı göstermek için bu değerleri tek tek çağırdık.
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 8 adet GPIO pin ayarlıyoruz.
IO.setup (13, IO.OUT) IO.setup (6, IO.OUT) IO.setup (16, IO.OUT) IO.setup (20, IO.OUT) IO.setup (21, IO.OUT) IO.setup (19, IO.OUT) IO.setup (26, IO.OUT) IO.setup (12, IO.OUT)
Küme parantezlerindeki koşul doğru ise, döngü içindeki ifadeler bir kez çalıştırılacaktır. Dolayısıyla, 8bit 'pin'in bit0'ı doğruysa, PIN13 YÜKSEK olacaktır, aksi takdirde PIN13 DÜŞÜK olacaktır. Bit0'dan bit7'ye sekiz 'aksi takdirde' koşulumuz vardır, böylece 7 segmentli ekran içindeki uygun LED, karşılık gelen Sayıyı görüntülemek için Yüksek veya Düşük yapılabilir.
eğer (pin & 0x01 == 0x01): IO.output (13,1) else: IO.output (13,0)
Bu komut, döngüyü 10 kez yürütür, x, 0'dan 9'a yükseltilir.
(10) aralığında x için:
Aşağıdaki komut sonsuz döngü olarak kullanılır, bu komutla bu döngü içindeki ifadeler sürekli olarak çalıştırılır.
1 iken:
Diğer tüm fonksiyonlar ve komutlar aşağıdaki 'Kod' bölümünde 'Yorumlar' yardımı ile açıklanmıştır.
Programı yazıp çalıştırdıktan sonra, Raspberry Pi ilgili GPIO'ları 7 Segment Ekran üzerinde rakamı göstermesi için tetikler. Program ekranda sürekli olarak 0-9 arasında sayacak şekilde yazılır.