AVR'den 16 * 16 Dot Matrix'te bir dizge nasıl basılır

"LED GAME" dizisini resimde gösterildiği gibi vermek istiyorum. Ancak Dot matrisinde, yalnızca 16 + 16 = 32 pin vardır. avr dan dotmatrix'e bir dizge basmak için herhangi bir yolu var mı?

enter image description here

0
Bir tarama taraması yapmanız gerekir - her satır için ilgili sütun bitlerini açarak sürekli olarak tüm satırlar arasında dolaşın. Bunu yeterince hızlı yaptığınız sürece göz, tıpkı eski moda CRT gibi sürekli bir ekran olarak görür.
katma yazar Paul R, kaynak
Bir tarama taraması yapmanız gerekir - her satır için ilgili sütun bitlerini açarak sürekli olarak tüm satırlar arasında dolaşın. Bunu yeterince hızlı yaptığınız sürece göz, tıpkı eski moda CRT gibi sürekli bir ekran olarak görür.
katma yazar Paul R, kaynak
Bir tarama taraması yapmanız gerekir - her satır için ilgili sütun bitlerini açarak sürekli olarak tüm satırlar arasında dolaşın. Bunu yeterince hızlı yaptığınız sürece göz, tıpkı eski moda CRT gibi sürekli bir ekran olarak görür.
katma yazar Paul R, kaynak
4 adet 8x8 LED matris ekranı kullanmayı ve bunları MAX7219 . Bu şeyleri AVR'lerle sürdürebilmek ve onları nasıl bağlayacağınızla ilgili birçok kod var. Basit bir 'sıradaki' çoğullama muhtemelen 1/16 görev döngüsü ile yeterince parlak görünmeyecektir.
katma yazar Brett Hale, kaynak
4 adet 8x8 LED matris ekranı kullanmayı ve bunları MAX7219 . Bu şeyleri AVR'lerle sürdürebilmek ve onları nasıl bağlayacağınızla ilgili birçok kod var. Basit bir 'sıradaki' çoğullama muhtemelen 1/16 görev döngüsü ile yeterince parlak görünmeyecektir.
katma yazar Brett Hale, kaynak
4 adet 8x8 LED matris ekranı kullanmayı ve bunları MAX7219 . Bu şeyleri AVR'lerle sürdürebilmek ve onları nasıl bağlayacağınızla ilgili birçok kod var. Basit bir 'sıradaki' çoğullama muhtemelen 1/16 görev döngüsü ile yeterince parlak görünmeyecektir.
katma yazar Brett Hale, kaynak
Ayrıca, 16x16 LED matris ekranlarını, yerleşik kontrol donanımıyla satın alabilirsiniz, ancak onlarla deneyimim yok.
katma yazar Brett Hale, kaynak
Ayrıca, 16x16 LED matris ekranlarını, yerleşik kontrol donanımıyla satın alabilirsiniz, ancak onlarla deneyimim yok.
katma yazar Brett Hale, kaynak
Ayrıca, 16x16 LED matris ekranlarını, yerleşik kontrol donanımıyla satın alabilirsiniz, ancak onlarla deneyimim yok.
katma yazar Brett Hale, kaynak

6 cevap

Çoğu LED matrisi, bu örnekte olduğu gibi dahili olarak inşa edilmiştir:

LED matrix

16x16 LED matris için satırlar için 16 pim ve sütunlar için 16 pim vardır. Özel matrisinizin nasıl oluşturulduğunu görmek için veri sayfasını bulmanız gerekir.

Ekranda herhangi bir şey yazmak için ilk satırı AÇIK, diğerlerini KAPALI ve ihtiyacınız olan kodları etkinleştireceksiniz. Bir gecikmeden sonra, ilk satırı KAPALI, ikinci satırı AÇIK olarak ayarlayacak ve ikinci sırada görmek istediğiniz kodları etkinleştireceksiniz. Bunun gibi tüm satırları tekrarlayacaksınız. Gecikme oldukça kısa olacağından gözleriniz, LED'lerin çoğu zaman kapalı olduğunu görecek kadar hızlı değildir.

Size mikrodenetleyici üzerinde bir zamanlayıcı kesmesi kullanmanızı ve kesme rutini içindeki satırları yinelemenizi öneririm. Bu şekilde zamanlama sorunları hakkında çok fazla endişelenmeden mikrodenetleyiciyi başka şeyler için kolayca kullanabilirsiniz.

3
katma

Çoğu LED matrisi, bu örnekte olduğu gibi dahili olarak inşa edilmiştir:

LED matrix

16x16 LED matris için satırlar için 16 pim ve sütunlar için 16 pim vardır. Özel matrisinizin nasıl oluşturulduğunu görmek için veri sayfasını bulmanız gerekir.

Ekranda herhangi bir şey yazmak için ilk satırı AÇIK, diğerlerini KAPALI ve ihtiyacınız olan kodları etkinleştireceksiniz. Bir gecikmeden sonra, ilk satırı KAPALI, ikinci satırı AÇIK olarak ayarlayacak ve ikinci sırada görmek istediğiniz kodları etkinleştireceksiniz. Bunun gibi tüm satırları tekrarlayacaksınız. Gecikme oldukça kısa olacağından gözleriniz, LED'lerin çoğu zaman kapalı olduğunu görecek kadar hızlı değildir.

Size mikrodenetleyici üzerinde bir zamanlayıcı kesmesi kullanmanızı ve kesme rutini içindeki satırları yinelemenizi öneririm. Bu şekilde zamanlama sorunları hakkında çok fazla endişelenmeden mikrodenetleyiciyi başka şeyler için kolayca kullanabilirsiniz.

3
katma

Çoğu LED matrisi, bu örnekte olduğu gibi dahili olarak inşa edilmiştir:

LED matrix

16x16 LED matris için satırlar için 16 pim ve sütunlar için 16 pim vardır. Özel matrisinizin nasıl oluşturulduğunu görmek için veri sayfasını bulmanız gerekir.

Ekranda herhangi bir şey yazmak için ilk satırı AÇIK, diğerlerini KAPALI ve ihtiyacınız olan kodları etkinleştireceksiniz. Bir gecikmeden sonra, ilk satırı KAPALI, ikinci satırı AÇIK olarak ayarlayacak ve ikinci sırada görmek istediğiniz kodları etkinleştireceksiniz. Bunun gibi tüm satırları tekrarlayacaksınız. Gecikme oldukça kısa olacağından gözleriniz, LED'lerin çoğu zaman kapalı olduğunu görecek kadar hızlı değildir.

Size mikrodenetleyici üzerinde bir zamanlayıcı kesmesi kullanmanızı ve kesme rutini içindeki satırları yinelemenizi öneririm. Bu şekilde zamanlama sorunları hakkında çok fazla endişelenmeden mikrodenetleyiciyi başka şeyler için kolayca kullanabilirsiniz.

3
katma

Nokta vuruşlu Pin 1'i nasıl tanımlayabilirsiniz?

"2088BH-B" etiketinin zıt bölgesindeki nokta matrisin en soldaki pimi pim 1'dir.

Aşağıdaki iki resimden tam bir fikir edinebilirsiniz. resim tanımını buraya girin

enter image description here

Umarım bu size çok yardımcı olur. Ayrıca nokta matrisinde 9 göstermek için yazılmış aşağıdaki kodu deneyebilirsiniz (derleyici: micro-C)

void main() 
{
     DDRB = 0b11111111;
     DDRC = 0b11111111;
     while(1)
     {
           PORTB=0b00000000; //1
           PORTC=0b10000000;
            Delay_us(5);

           PORTB=0b00000000;       //2
           PORTC=0b01000000;
            Delay_us(5);

           PORTB=0b00000000;          //3
           PORTC=0b00100000;
            Delay_us(5);

           PORTB=0b00000000;             //4
           PORTC=0b00010000;
            Delay_us(5);

           PORTB=0b10011110; //5
           PORTC=0b00001000;
            Delay_us(5);

           PORTB=0b10010010;       //6
           PORTC=0b00000100;
            Delay_us(5);

           PORTB=0b10010010;          //7
           PORTC=0b00000010;
           Delay_us(5);

           PORTB=0b11111110;             //8
           PORTC=0b00000001;
           Delay_us(5);

     }
}
0
katma

Nokta vuruşlu Pin 1'i nasıl tanımlayabilirsiniz?

"2088BH-B" etiketinin zıt bölgesindeki nokta matrisin en soldaki pimi pim 1'dir.

Aşağıdaki iki resimden tam bir fikir edinebilirsiniz. resim tanımını buraya girin

enter image description here

Umarım bu size çok yardımcı olur. Ayrıca nokta matrisinde 9 göstermek için yazılmış aşağıdaki kodu deneyebilirsiniz (derleyici: micro-C)

void main() 
{
     DDRB = 0b11111111;
     DDRC = 0b11111111;
     while(1)
     {
           PORTB=0b00000000; //1
           PORTC=0b10000000;
            Delay_us(5);

           PORTB=0b00000000;       //2
           PORTC=0b01000000;
            Delay_us(5);

           PORTB=0b00000000;          //3
           PORTC=0b00100000;
            Delay_us(5);

           PORTB=0b00000000;             //4
           PORTC=0b00010000;
            Delay_us(5);

           PORTB=0b10011110; //5
           PORTC=0b00001000;
            Delay_us(5);

           PORTB=0b10010010;       //6
           PORTC=0b00000100;
            Delay_us(5);

           PORTB=0b10010010;          //7
           PORTC=0b00000010;
           Delay_us(5);

           PORTB=0b11111110;             //8
           PORTC=0b00000001;
           Delay_us(5);

     }
}
0
katma

Nokta vuruşlu Pin 1'i nasıl tanımlayabilirsiniz?

"2088BH-B" etiketinin zıt bölgesindeki nokta matrisin en soldaki pimi pim 1'dir.

Aşağıdaki iki resimden tam bir fikir edinebilirsiniz. resim tanımını buraya girin

enter image description here

Umarım bu size çok yardımcı olur. Ayrıca nokta matrisinde 9 göstermek için yazılmış aşağıdaki kodu deneyebilirsiniz (derleyici: micro-C)

void main() 
{
     DDRB = 0b11111111;
     DDRC = 0b11111111;
     while(1)
     {
           PORTB=0b00000000; //1
           PORTC=0b10000000;
            Delay_us(5);

           PORTB=0b00000000;       //2
           PORTC=0b01000000;
            Delay_us(5);

           PORTB=0b00000000;          //3
           PORTC=0b00100000;
            Delay_us(5);

           PORTB=0b00000000;             //4
           PORTC=0b00010000;
            Delay_us(5);

           PORTB=0b10011110; //5
           PORTC=0b00001000;
            Delay_us(5);

           PORTB=0b10010010;       //6
           PORTC=0b00000100;
            Delay_us(5);

           PORTB=0b10010010;          //7
           PORTC=0b00000010;
           Delay_us(5);

           PORTB=0b11111110;             //8
           PORTC=0b00000001;
           Delay_us(5);

     }
}
0
katma