como imprimir uma string em 16 * 16 Dot Matrix from AVR

Eu quero a saída da string "LED GAME", como indicado na imagem. Mas na matriz de pontos, existem apenas 16 + 16 = 32 pinos. Existe alguma maneira de imprimir uma string de avr para dotmatrix?

enter image description here

0
Você precisaria fazer uma varredura de varredura - percorrer todas as linhas continuamente, ativando os bits de coluna relevantes para cada linha. Contanto que você faça isso rápido o suficiente, o olho vê isso como uma exibição contínua, como CRT antigo e antiquado.
adicionado o autor Paul R, fonte
Você precisaria fazer uma varredura de varredura - percorrer todas as linhas continuamente, ativando os bits de coluna relevantes para cada linha. Contanto que você faça isso rápido o suficiente, o olho vê isso como uma exibição contínua, como CRT antigo e antiquado.
adicionado o autor Paul R, fonte
Você precisaria fazer uma varredura de varredura - percorrer todas as linhas continuamente, ativando os bits de coluna relevantes para cada linha. Contanto que você faça isso rápido o suficiente, o olho vê isso como uma exibição contínua, como CRT antigo e antiquado.
adicionado o autor Paul R, fonte
Considere o uso de quatro displays de matriz de LEDs 8x8 e conduza-os com algo parecido com o MAX7219 . Há muito código por aí para dirigir essas coisas com os AVRs e como conectá-los. A multiplexação simples de "linha por vez" provavelmente não parecerá brilhante o suficiente com um ciclo de trabalho de 1/16.
adicionado o autor Brett Hale, fonte
Considere o uso de quatro displays de matriz de LEDs 8x8 e conduza-os com algo parecido com o MAX7219 . Há muito código por aí para dirigir essas coisas com os AVRs e como conectá-los. A multiplexação simples de "linha por vez" provavelmente não parecerá brilhante o suficiente com um ciclo de trabalho de 1/16.
adicionado o autor Brett Hale, fonte
Considere o uso de quatro displays de matriz de LEDs 8x8 e conduza-os com algo parecido com o MAX7219 . Há muito código por aí para dirigir essas coisas com os AVRs e como conectá-los. A multiplexação simples de "linha por vez" provavelmente não parecerá brilhante o suficiente com um ciclo de trabalho de 1/16.
adicionado o autor Brett Hale, fonte
Você também pode comprar displays matriciais de LED 16x16 com hardware de controle integrado, mas não tenho experiência com eles.
adicionado o autor Brett Hale, fonte
Você também pode comprar displays matriciais de LED 16x16 com hardware de controle integrado, mas não tenho experiência com eles.
adicionado o autor Brett Hale, fonte
Você também pode comprar displays matriciais de LED 16x16 com hardware de controle integrado, mas não tenho experiência com eles.
adicionado o autor Brett Hale, fonte

6 Respostas

A maioria das matrizes de LED são construídas internamente como este exemplo aqui:

LED matrix

Para uma matriz de LED de 16x16, você tem 16 pinos para as linhas e 16 pinos para as colunas. Para ver como sua matriz específica é construída, você terá que encontrar sua folha de dados.

Para escrever qualquer coisa no visor, você definirá a primeira linha como ATIVADA, todas as outras como DESATIVADAS e ativará os valores desejados. Após um atraso, você irá definir a primeira linha para OFF, a segunda linha para ON e ativar os cols que você deseja ver na segunda linha. Você vai percorrer todas as linhas como esta. Como o atraso será muito curto, seus olhos não são rápidos o suficiente para ver que os LEDs estão desligados na maior parte do tempo.

Eu sugiro usar uma interrupção de timer em seu microcontrolador e percorrer as linhas na rotina de interrupção. Dessa forma, você pode facilmente usar o microcontrolador para outras coisas sem se preocupar muito com problemas de tempo.

3
adicionado

A maioria das matrizes de LED são construídas internamente como este exemplo aqui:

LED matrix

Para uma matriz de LED de 16x16, você tem 16 pinos para as linhas e 16 pinos para as colunas. Para ver como sua matriz específica é construída, você terá que encontrar sua folha de dados.

Para escrever qualquer coisa no visor, você definirá a primeira linha como ATIVADA, todas as outras como DESATIVADAS e ativará os valores desejados. Após um atraso, você irá definir a primeira linha para OFF, a segunda linha para ON e ativar os cols que você deseja ver na segunda linha. Você vai percorrer todas as linhas como esta. Como o atraso será muito curto, seus olhos não são rápidos o suficiente para ver que os LEDs estão desligados na maior parte do tempo.

Eu sugiro usar uma interrupção de timer em seu microcontrolador e percorrer as linhas na rotina de interrupção. Dessa forma, você pode facilmente usar o microcontrolador para outras coisas sem se preocupar muito com problemas de tempo.

3
adicionado

A maioria das matrizes de LED são construídas internamente como este exemplo aqui:

LED matrix

Para uma matriz de LED de 16x16, você tem 16 pinos para as linhas e 16 pinos para as colunas. Para ver como sua matriz específica é construída, você terá que encontrar sua folha de dados.

Para escrever qualquer coisa no visor, você definirá a primeira linha como ATIVADA, todas as outras como DESATIVADAS e ativará os valores desejados. Após um atraso, você irá definir a primeira linha para OFF, a segunda linha para ON e ativar os cols que você deseja ver na segunda linha. Você vai percorrer todas as linhas como esta. Como o atraso será muito curto, seus olhos não são rápidos o suficiente para ver que os LEDs estão desligados na maior parte do tempo.

Eu sugiro usar uma interrupção de timer em seu microcontrolador e percorrer as linhas na rotina de interrupção. Dessa forma, você pode facilmente usar o microcontrolador para outras coisas sem se preocupar muito com problemas de tempo.

3
adicionado

Como você pode identificar o Pin 1 Of Dot matrix?

O pino mais à esquerda da matriz de pontos no lado oposto da etiqueta "2088BH-B" é o pino 1.

Você pode obter uma ideia completa das duas imagens a seguir. insira a descrição da imagem aqui

enter image description here

Espero que isso ajude muito. Você também pode tentar o seguinte código que é escrito para mostrar 9 em matriz de pontos (compilador: 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
adicionado

Como você pode identificar o Pin 1 Of Dot matrix?

O pino mais à esquerda da matriz de pontos no lado oposto da etiqueta "2088BH-B" é o pino 1.

Você pode obter uma ideia completa das duas imagens a seguir. insira a descrição da imagem aqui

enter image description here

Espero que isso ajude muito. Você também pode tentar o seguinte código que é escrito para mostrar 9 em matriz de pontos (compilador: 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
adicionado

Como você pode identificar o Pin 1 Of Dot matrix?

O pino mais à esquerda da matriz de pontos no lado oposto da etiqueta "2088BH-B" é o pino 1.

Você pode obter uma ideia completa das duas imagens a seguir. insira a descrição da imagem aqui

enter image description here

Espero que isso ajude muito. Você também pode tentar o seguinte código que é escrito para mostrar 9 em matriz de pontos (compilador: 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
adicionado