cum să tipăriți un șir în 16 * 16 Dot Matrix de la AVR

Vreau să ieșesc șirul "LED GAME" așa cum este indicat în imagine. Dar în matricea Dot există doar 16 + 16 = 32 de pini. există vreun mod de a imprima un șir de la avr la dotmatrix?

enter image description here

0
Va trebui să faceți o scanare raster - ciclu prin toate rândurile în mod continuu, activând biții coloanelor relevante pentru fiecare rând. Atâta timp cât faceți acest lucru destul de repede, ochiul vede acest lucru ca un afișaj continuu, la fel ca și modelul de modă veche.
adăugat autor Paul R, sursa
Va trebui să faceți o scanare raster - ciclu prin toate rândurile în mod continuu, activând biții coloanelor relevante pentru fiecare rând. Atâta timp cât faceți acest lucru destul de repede, ochiul vede acest lucru ca un afișaj continuu, la fel ca și modelul de modă veche.
adăugat autor Paul R, sursa
Va trebui să faceți o scanare raster - ciclu prin toate rândurile în mod continuu, activând biții coloanelor relevante pentru fiecare rând. Atâta timp cât faceți acest lucru destul de repede, ochiul vede acest lucru ca un afișaj continuu, la fel ca și modelul de modă veche.
adăugat autor Paul R, sursa
Luați în considerare utilizarea 4 afișaje matrice 8x8 cu LED-uri și acționarea acestora cu ceva de genul MAX7219 . Există o mulțime de cod acolo pentru a conduce aceste lucruri cu AVR-uri și cum să le cuplați. Simpla "multiplexare a rândului la un moment dat" probabil nu va arăta destul de luminos cu un ciclu de funcționare 1/16.
adăugat autor Brett Hale, sursa
Luați în considerare utilizarea 4 afișaje matrice 8x8 cu LED-uri și acționarea acestora cu ceva de genul MAX7219 . Există o mulțime de cod acolo pentru a conduce aceste lucruri cu AVR-uri și cum să le cuplați. Simpla "multiplexare a rândului la un moment dat" probabil nu va arăta destul de luminos cu un ciclu de funcționare 1/16.
adăugat autor Brett Hale, sursa
Luați în considerare utilizarea 4 afișaje matrice 8x8 cu LED-uri și acționarea acestora cu ceva de genul MAX7219 . Există o mulțime de cod acolo pentru a conduce aceste lucruri cu AVR-uri și cum să le cuplați. Simpla "multiplexare a rândului la un moment dat" probabil nu va arăta destul de luminos cu un ciclu de funcționare 1/16.
adăugat autor Brett Hale, sursa
De asemenea, puteți cumpăra display-uri cu matrice LED 16x16 cu hardware de control încorporat, dar nu am nici o experiență cu ele.
adăugat autor Brett Hale, sursa
De asemenea, puteți cumpăra display-uri cu matrice LED 16x16 cu hardware de control încorporat, dar nu am nici o experiență cu ele.
adăugat autor Brett Hale, sursa
De asemenea, puteți cumpăra display-uri cu matrice LED 16x16 cu hardware de control încorporat, dar nu am nici o experiență cu ele.
adăugat autor Brett Hale, sursa

6 răspunsuri

Cele mai multe matrice LED-uri sunt construite intern, cum ar fi acest exemplu aici:

LED matrix

Pentru o matrice cu LED-uri 16x16 aveți astfel 16 pini pentru rânduri și 16 pini pentru coloane. Pentru a vedea cum este construită matricea dvs. specifică, va trebui să găsiți foaia de date.

Pentru a scrie orice pe afișaj, veți seta primul rând pe ON, toate celelalte pe OFF și activând colțurile de care aveți nevoie. După o întârziere, veți seta primul rând la OFF, cel de-al doilea rând pe ON și va activa coloanele pe care doriți să le vedeți în al doilea rând. Veți repeta toate rândurile de genul acesta. Deoarece întârzierea va fi destul de scurtă, ochii nu sunt suficient de repede pentru a vedea că LED-urile sunt oprite de cele mai multe ori.

Aș sugera să folosiți o întrerupere temporizator pe microcontroler și să repetați rândurile din rutina de întrerupere. În acest fel, puteți utiliza cu ușurință microcontrolerul pentru alte lucruri fără a vă îngrijora prea mult de problemele legate de sincronizare.

3
adăugat

Cele mai multe matrice LED-uri sunt construite intern, cum ar fi acest exemplu aici:

LED matrix

Pentru o matrice cu LED-uri 16x16 aveți astfel 16 pini pentru rânduri și 16 pini pentru coloane. Pentru a vedea cum este construită matricea dvs. specifică, va trebui să găsiți foaia de date.

Pentru a scrie orice pe afișaj, veți seta primul rând pe ON, toate celelalte pe OFF și activând colțurile de care aveți nevoie. După o întârziere, veți seta primul rând la OFF, cel de-al doilea rând pe ON și va activa coloanele pe care doriți să le vedeți în al doilea rând. Veți repeta toate rândurile de genul acesta. Deoarece întârzierea va fi destul de scurtă, ochii nu sunt suficient de repede pentru a vedea că LED-urile sunt oprite de cele mai multe ori.

Aș sugera să folosiți o întrerupere temporizator pe microcontroler și să repetați rândurile din rutina de întrerupere. În acest fel, puteți utiliza cu ușurință microcontrolerul pentru alte lucruri fără a vă îngrijora prea mult de problemele legate de sincronizare.

3
adăugat

Cele mai multe matrice LED-uri sunt construite intern, cum ar fi acest exemplu aici:

LED matrix

Pentru o matrice cu LED-uri 16x16 aveți astfel 16 pini pentru rânduri și 16 pini pentru coloane. Pentru a vedea cum este construită matricea dvs. specifică, va trebui să găsiți foaia de date.

Pentru a scrie orice pe afișaj, veți seta primul rând pe ON, toate celelalte pe OFF și activând colțurile de care aveți nevoie. După o întârziere, veți seta primul rând la OFF, cel de-al doilea rând pe ON și va activa coloanele pe care doriți să le vedeți în al doilea rând. Veți repeta toate rândurile de genul acesta. Deoarece întârzierea va fi destul de scurtă, ochii nu sunt suficient de repede pentru a vedea că LED-urile sunt oprite de cele mai multe ori.

Aș sugera să folosiți o întrerupere temporizator pe microcontroler și să repetați rândurile din rutina de întrerupere. În acest fel, puteți utiliza cu ușurință microcontrolerul pentru alte lucruri fără a vă îngrijora prea mult de problemele legate de sincronizare.

3
adăugat

Cum puteți identifica matricea Pin 1 din Dot?

Pinsul cel mai din stânga al matricei punctuale de pe site-ul opus al etichetei "2088BH-B" este pinul 1.

Puteți obține o idee completă din cele două imagini următoare. introduceți descrierea imaginii aici

enter image description here

Sper că acest lucru vă va ajuta foarte mult. puteți încerca, de asemenea, următorul cod care este scris pentru afișarea 9 în dot matrix (compilator: 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
adăugat

Cum puteți identifica matricea Pin 1 din Dot?

Pinsul cel mai din stânga al matricei punctuale de pe site-ul opus al etichetei "2088BH-B" este pinul 1.

Puteți obține o idee completă din cele două imagini următoare. introduceți descrierea imaginii aici

enter image description here

Sper că acest lucru vă va ajuta foarte mult. puteți încerca, de asemenea, următorul cod care este scris pentru afișarea 9 în dot matrix (compilator: 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
adăugat

Cum puteți identifica matricea Pin 1 din Dot?

Pinsul cel mai din stânga al matricei punctuale de pe site-ul opus al etichetei "2088BH-B" este pinul 1.

Puteți obține o idee completă din cele două imagini următoare. introduceți descrierea imaginii aici

enter image description here

Sper că acest lucru vă va ajuta foarte mult. puteți încerca, de asemenea, următorul cod care este scris pentru afișarea 9 în dot matrix (compilator: 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
adăugat