Bu eğitimde, kayan alfabeleri gösterecek olan Arduino Uno kullanarak 8x8 LED Matrix Kaydırmalı Ekran tasarlayacağız.
8x8 LED Matrix, matris şeklinde düzenlenmiş 64 LED (Işık Yayan Diyotlar) içerir, dolayısıyla adı LED matrisidir. Bu Matrix'i bu 64 LED'i perfboard veya DOT PCB'ye lehimleyerek yapacağız. LED'ler herhangi bir renkte olabilir, yanınızda mevcut olanları seçin. Ardından Arduino'nun bu 64 LED matrisini kontrol etmesi için bir program yazacağız. UNO, programa göre, karakterleri kaydırma şeklinde göstermesi için uygun LED'lere güç sağlar.
Gerekli Bileşenler:
- Arduino Uno
- 64 LED
- Diğer lehimleme aletleriyle birlikte perfboard
- 1KΩ direnç (8 adet)
- Güç Kaynağı (5v)
Devre ve Çalışma Açıklaması:
Matris biçiminde düzenlenmiş 64 LED vardır. Yani 8 sütunumuz ve 8 satırımız var. Bu satırlar ve sütunların üzerinde, bir sıradaki tüm pozitif terminaller bir araya getirilir. Her sıra için, o sıradaki 8 LED'in tümü için bir Ortak Pozitif Terminal vardır. Aşağıdaki şekilde gösterilmiştir,
Yani 8 sıra için 8 ortak pozitif terminalimiz var. Şekilde görüldüğü gibi ilk satırı düşünün, D57'den D64'e 8 LED'in ortak bir pozitif terminali vardır ve 'POZİTİF0' ile gösterilir. Şimdi, matrisin ilk satırındaki LED'lerin birini veya tamamını parlatmak istiyorsak, LED Matrix'in PIN0'ına güç vermeliyiz. Aynı şekilde, herhangi bir SATIR'da herhangi bir LED'i (veya tümünü) yakmak istiyorsak, o sıranın karşılık gelen Ortak Pozitif Terminal Pimine güç sağlamamız gerekir.
Bu henüz bitmedi ve sadece MATRIX SIRALARI'nı pozitif arzla bırakmak hiçbir şey getirmeyecektir. LED'lerin negatiflerini parlatmak için topraklamamız gerekiyor. Böylece, 8x8 LED matrisinde, herhangi bir sütundaki LED'lerin tüm negatif terminalleri, ilk sütundaki tüm negatif terminallerin PIN-A1'e (NEGATİF7) bağlanması gibi , sekiz Ortak Negatif Terminal oluşturmak için bir araya getirilir. Bu, aşağıdaki şekilde gösterilmiştir:
Perfboard üzerindeki ledler lehimlenirken bu pinlere dikkat edilmelidir.
Şimdi ilk sütundaki herhangi bir LED'i topraklamamız gerekirse, MATRIX'in PIN-A1'ini (NEGATIVE7) topraklayacağız ve ilk sütundaki tüm LED'leri topraklayacağız. Aynı süreç, diğer yedi ortak negatif sütun için de geçerlidir.
Şu andan beri Common Positive and Common Negative'in nasıl çalıştığını biliyorsunuz. Birlikte nasıl çalıştıklarını görmek için onları bir araya getirelim ve 8x8 LED Matrix Kaydırma için son Devre ekranı şöyle görünecek:
Multiplexing kullanarak 8x8 LED Matrix Sürüş:
Şimdi diyelim ki LED57'yi AÇIK konuma getirmek istiyoruz, o zaman UNO'nun PIN0'ını çalıştırmamız ve UNO'nun PIN-8'ini topraklamamız gerekiyor. Şimdi hem LED57'yi hem de LED50'yi açmak için PIN0, PIN1'e güç sağlamamız ve PIN8, PIN9'u topraklamamız gerekiyor. Ancak bunu yapmak yalnızca D57, D50'yi değil, aynı zamanda D49, D58'i de açacaktır. Bundan kaçınmak için Multiplexing adlı bir teknik kullanıyoruz. Bu Multiplex Tekniğini 8x8 LED Matrix'te detaylı olarak tartıştık; ayrıntılı açıklama için bu makaleyi gözden geçirin. Burada Multiplexing'i kısaca açıklıyoruz.
İ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, D49 ve D58'i açmadan sadece LED57 ve LED50'yi açmak istiyoruz. İşin püf noktası, önce LED57'yi açmak için ilk sıraya güç vereceğiz ve 1mSEC bekleyeceğiz ve sonra onu kapatacağız. Daha sonra LED50'yi açmak için ikinci sıraya güç sağlayacağız ve 1mSEC kadar bekleyip sonra kapatacağız. Döngü yüksek frekansla sürekli devam eder ve LED57 ve LED50 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 satıra güç sağladığımız ve diğer satırlardaki diğer LED'leri açma şansını ortadan kaldırdığımız anlamına gelir. Bu tekniği tüm karakterleri göstermek için kullanacağız.
Sadece LED matris üzerine yazdırmak istediğiniz karakter veya sayıyı girmeniz gereken tüm bu karmaşık çoğullama ile ilgilenmek için LedControlMS.h adında bir kütüphane de var, daha fazla ayrıntı için bu Arduino LED matrisini MAX7219 projesiyle kontrol edin.
Programlama Açıklaması:
Bizim Kodumuzda, yazdım her karakter için ondalık değer ve Arduino bu değerleri programlanmış. Program bu değerleri her 0.2 saniyede bir sonraki satıra kaydırmak için yazmıştır, bu karakterlerin yukarı doğru kaydırılması olarak görülecektir, çok basit.
Görüntülenecek karakterleri değiştirmek için char ALPHA dizisindeki değeri aşağıda verilen karakter değerlerine göre değiştirmeniz yeterlidir.
24,60,102,126,102,102,102,0,0,0, // A 124,102,102,124,102,102,124,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,120,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,102,102,60, 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12, 12,108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99, 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,60,24,0, 0,0, // V 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // Z
Örneğin, DAD'yi LED Matrisinde görüntülemek istiyorsanız, önce yukarıdaki listeden D, A ve D karakterleri için değerler koyarak char ALPHA dizisindeki Karakter değerlerini değiştirin:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,120,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
Toplam değerler artık 5 * 10 = 50 değerdir, bu nedenle
Değiştir, for (int x = 0; x <142; x ++) // 150-8 (taşmayı durdurmak için) {…….. With, for (int x = 0; x <42; x ++) // 50-8 (taşmayı durdurmak için) {……..
Yani sadece numarayı değiştirmeniz gerekiyor.
Bununla programlamayı yaptınız ve şimdi 8x8 LED Matris üzerindeki herhangi bir metni kaydırabilir, aşağıdaki Tam kodu bir tanıtım Videosu ile kontrol edebilirsiniz.