Raspberry Pi'nin LED, LCD, düğme, DC motor, Servo Motor, Step Motor, ADC, shift Register, vb. Gibi tüm temel bileşenlerle Arayüzünü ele aldığımız bir dizi Raspberry Pi Öğreticisi oluşturduk. bazı iyi IoT projelerinin yanı sıra yeni başlayanlar için bazı basit Raspberry Pi projeleri yayınladı. Bugün bu eğitimlerin devamında Raspberry Pi ile Kontrol 8x8 LED Matris Modülüne geçeceğiz. Matris modülündeki karakterleri göstermek için bir python programı yazacağız.
Ayrıca Arduino ile 8x8 LED Matrix Arayüzü ve AVR Microcontorller ile LED Matrix'i kontrol edin.
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, Raspberry Pi Tanıtımı ve Raspberry PI LED Yanıp Sönüyor bölümlerine bakabilirsiniz:
- Raspberry Pi Kurulu
- Güç kaynağı (5v)
- 1000 uF kapasitör (güç kaynağına bağlı)
- 1KΩ direnç (8 adet)
8x8 LED Matrix Modülü:
8 * 8 LED matris modülü, bir matris şeklinde düzenlenmiş 64 LED (Işık Yayan Diyot) içerir, dolayısıyla adı LED matrisidir. Bu kompakt modüller farklı boyutlarda ve birçok renkte mevcuttur. Bunları rahatlıkla seçebilirsiniz. Modülün PIN yapılandırması resimde gösterildiği gibidir. Unutmayın, modülün pin çıkışları sıralı değildir, bu nedenle hatalardan kaçınmak için PIN'lerin tam olarak resimde gösterildiği gibi numaralandırılması gerekir.
LED Matrix modülünde 8 + 8 = 16 ortak terminal bulunmaktadır. Bunların üzerinde, 64 LED'i matris formunda bağlamak için 8 sıra ve 8 sütun şeklinde 8 ortak pozitif terminalimiz ve 8 ortak negatif terminalimiz var. Modül devre şeması şeklinde çizilecekse, aşağıda gösterildiği gibi bir resmimiz olacaktır:
Yani 8 sıra için 8 Ortak Pozitif Terminalimiz var (9, 14, 8, 12, 17, 2, 5). İlk satırı düşünün, D1'den D8'e kadar olan LED'lerin ortak bir pozitif terminali vardır ve pin, LED Matrix modülünün PIN9'unda çıkarılır. Bir SATIR'daki bir veya tüm LED'lerin AÇIK olmasını istediğimizde, LED MODÜLÜ'nün ilgili pini + 3.3v ile güçlendirilmelidir.
Ortak pozitif terminallere benzer şekilde, sütun olarak 8 Ortak Negatif Terminalimiz var (13, 3, 4, 10, 6, 11, 15, 16). Herhangi bir sütundaki herhangi bir LED'i topraklamak için, ilgili ortak negatif terminal topraklanacaktır.
Devre Açıklaması:
Raspberry Pi ile LED matrix modülü arasında yapılan bağlantılar aşağıdaki tabloda gösterilmiştir.
LED Matris Modülü Pin no. |
Fonksiyon |
Raspberry Pi GPIO Pin No. |
13 |
POZİTİF0 |
GPIO12 |
3 |
POZİTİF1 |
GPIO22 |
4 |
POZİTİF2 |
GPIO27 |
10 |
POZİTİF3 |
GPIO25 |
6 |
POZİTİF4 |
GPIO17 |
11 |
POZİTİF5 |
GPIO24 |
15 |
POZİTİF6 |
GPIO23 |
16 |
POZİTİF7 |
GPIO18 |
9 |
NEGATİF0 |
GPIO21 |
14 |
NEGATİF1 |
GPIO20 |
8 |
NEGATİF2 |
GPIO26 |
12 |
NEGATİF3 |
GPIO16 |
1 |
NEGATİF4 |
GPIO19 |
7 |
NEGATİF5 |
GPIO13 |
2 |
NEGATİF6 |
GPIO6 |
5 |
NEGATİF7 |
GPIO5 |
Raspberry Pi ile 8x8 LED Matrix Arayüzü için Nihai devre şeması:
Çalışma Açıklaması:
Burada 8x8 LED Matrix Modülündeki karakterleri göstermek için Multiplexing Technique kullanacağız. Öyleyse bu çoğullamayı ayrıntılı olarak tartışalım. Diyelim ki matristeki LED D10'u açmak istiyorsak, modülün PIN14'üne güç vermemiz ve modülün PIN3'ünü topraklamamız gerekir. Bu LED ile D10 aşağıdaki şekilde gösterildiği gibi AÇILACAKTIR. Bu, MATRIX'in her şeyin yolunda olduğunu bilmesi için önce kontrol edilmelidir.
Şimdi, D1'i açmak istiyorsak, matrisin PIN9'una güç vermemiz ve PIN13'ü topraklamamız gerektiğini varsayalım. Bununla LED D1 parlayacak. Bu durumda akım yönü aşağıdaki şekilde gösterilmiştir.
Şimdi zor kısım için, hem D1 hem de D10'u aynı anda açmak istediğimizi düşünün. Bu yüzden hem PIN9 hem de PIN14'e güç vermeli ve hem PIN13, hem de PIN3'ü topraklamalıyız. Bu LED D1 ve D10'u açacak, ancak bununla birlikte LED D2 ve D9'u da açacaktır. Çünkü ortak terminalleri paylaşıyorlar. Dolayısıyla, diyagonal boyunca LED'leri açmak istersek, yol boyunca tüm LED'leri AÇIK duruma getirmek zorunda kalacağız. Bu, aşağıdaki şekilde gösterilmektedir:
Bu sorunu önlemek için Multiplexing adlı bir teknik kullanıyoruz. 8x8 LED Matrix'i AVR ile arabirim oluştururken bu Çoklama Tekniğini de tartıştık, burada tekrar açıklıyoruz. Aynı çoğullama tekniği, Arduino ve AVR mikrodenetleyici ile 8x8 LED matris üzerinde Kaydırma Metininde de kullanılır.
İnsan gözü 30 HZ'den fazla bir frekansı yakalayamaz. Bu, bir LED'in 30HZ veya daha yüksek bir hızda sürekli olarak YANIP SÖNMESİ durumudur. Göz, LED'i sürekli AÇIK olarak görür. Ancak durum böyle değildir ve LED aslında sürekli olarak YANIP SÖNECEKTİR. Bu tekniğe Multiplexing denir.
Diyelim ki, D2 ve D9'u açmadan sadece LED D1 ve LED D10'u açmak istiyoruz. İşin püf noktası, önce PIN 9 & 13'ü kullanarak sadece LED D1'e güç sağlayacağız ve 1mSEC bekleyeceğiz ve sonra onu kapatacağız. Ardından PIN 14 & 3'ü kullanarak LED D10'a güç sağlayacağız ve 1mSEC kadar bekleyip sonra KAPATACAĞIZ. Döngü yüksek frekansla sürekli devam eder ve D1 ve D10 hızla Açılır ve Kapanır ve her iki LED de sürekli olarak gözümüze AÇIK görünür. Tek seferde yalnızca bir sıraya (LED) güç sağladığımız ve diğer sıralardaki diğer LED'lerin yanma olasılığını ortadan kaldırdığımız anlamına gelir. Tüm karakterleri göstermek için bu tekniği kullanacağız.
Matris üzerinde aşağıda gösterildiği gibi "A" görüntülemek istiyorsak, bunu bir örnekle daha iyi anlayabiliriz:
Anında bir satır AÇIK duruma getireceğimizi söyledi
T = 0m SEC'de, PIN09 YÜKSEK olarak ayarlanmıştır (şu anda diğer ROW pinleri DÜŞÜK), PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 topraklanmıştır (diğer COLUMN pinleri şu anda YÜKSEK)
T = 1m SEC'de, PIN14 YÜKSEK olarak ayarlanmıştır (şu anda diğer SATIR pinleri DÜŞÜK), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 topraklanmıştır (diğer COLUMN pimleri şu anda YÜKSEKTİR)
T = 2m SEC'de, PIN08 YÜKSEK olarak ayarlanmıştır (şu anda diğer SATIR pinleri DÜŞÜK), PIN13, PIN3, PIN15, PIN16 topraklanmıştır (diğer COLUMN pinleri şu anda YÜKSEK)
T = 3m SEC'de, PIN12 YÜKSEK olarak ayarlanmıştır (şu anda diğer SATIR pinleri DÜŞÜKtür), PIN13, PIN3, PIN15, PIN16 topraklanmıştır (diğer COLUMN pinleri şu anda YÜKSEK)
T = 4m SEC'de, PIN01 YÜKSEK olarak ayarlanmıştır (şu anda diğer SATIR pinleri DÜŞÜK), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 topraklanmıştır (diğer COLUMN pimleri şu anda YÜKSEKTİR)
T = 5m SEC'de, PIN07 YÜKSEK olarak ayarlanmıştır (şu anda diğer SATIR pinleri DÜŞÜKtür), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 topraklanmıştır (diğer COLUMN pinleri şu anda YÜKSEKTİR)
T = 6m SEC'de, PIN02 YÜKSEK olarak ayarlanmıştır (şu anda diğer SATIR pinleri DÜŞÜK), PIN13, PIN3, PIN15, PIN16 topraklanmıştır (diğer COLUMN pinleri şu anda YÜKSEK)
T = 7m SEC'de, PIN05 YÜKSEK olarak ayarlanmıştır (şu anda diğer SATIR pinleri DÜŞÜK), PIN13, PIN3, PIN15, PIN16 topraklanmıştır (diğer COLUMN pimleri şu anda YÜKSEK)
Bu hızda, ekran şekilde gösterildiği gibi sürekli olarak “A” karakterini gösterir şekilde görülecektir.
Ahududu Pi kullanarak LED Matrix üzerinde Karakterler göstermek için Python Programı aşağıda verilmiştir. Program yorumlarla iyi bir şekilde açıklanmıştır. Programda her karakter için Port Değerleri verilmiştir. Verilen programdaki 'for döngülerindeki' pinp ' değerlerini değiştirerek istediğiniz karakterleri gösterebilirsiniz. Ayrıca aşağıdaki Demo Videosu'na bakın.