AVRから16 * 16ドットマトリックスの文字列を印刷する方法

写真のように "LED GAME"という文字列を出力したい。しかし、ドットマトリックスでは、16 + 16 = 32ピンしかありません。 avrからdotmatrixに文字列を印刷する方法はありますか?

enter image description here

0
ラスタスキャンを実行する必要があります - すべての行を連続的に循環させ、各行に関連する列ビットをオンにします。あなたがこれを十分に速くする限り、目には昔ながらのCRTと同じようにそれを連続的なディスプレイとして見る。
追加された 著者 Paul R,
ラスタスキャンを実行する必要があります - すべての行を連続的に循環させ、各行に関連する列ビットをオンにします。あなたがこれを十分に速くする限り、目には昔ながらのCRTと同じようにそれを連続的なディスプレイとして見る。
追加された 著者 Paul R,
ラスタスキャンを実行する必要があります - すべての行を連続的に循環させ、各行に関連する列ビットをオンにします。あなたがこれを十分に速くする限り、目には昔ながらのCRTと同じようにそれを連続的なディスプレイとして見る。
追加された 著者 Paul R,
4つの8 x 8 LEDマトリックスディスプレイを使用し、 MAX7219 これらをAVRで動かすためのたくさんのコードとそれらを接続する方法があります。単純な「行単位」多重化は、おそらく1/16デューティサイクルでは十分明るく見えないでしょう。
追加された 著者 Brett Hale,
4つの8 x 8 LEDマトリックスディスプレイを使用し、 MAX7219 これらをAVRで動かすためのたくさんのコードとそれらを接続する方法があります。単純な「行単位」多重化は、おそらく1/16デューティサイクルでは十分明るく見えないでしょう。
追加された 著者 Brett Hale,
4つの8 x 8 LEDマトリックスディスプレイを使用し、 MAX7219 これらをAVRで動かすためのたくさんのコードとそれらを接続する方法があります。単純な「行単位」多重化は、おそらく1/16デューティサイクルでは十分明るく見えないでしょう。
追加された 著者 Brett Hale,
コントロールハードウェアを内蔵した16 x 16 LEDマトリックスディスプレイを購入することもできますが、私はそれらの経験がありません。
追加された 著者 Brett Hale,
コントロールハードウェアを内蔵した16 x 16 LEDマトリックスディスプレイを購入することもできますが、私はそれらの経験がありません。
追加された 著者 Brett Hale,
コントロールハードウェアを内蔵した16 x 16 LEDマトリックスディスプレイを購入することもできますが、私はそれらの経験がありません。
追加された 著者 Brett Hale,

6 答え

ほとんどのLEDマトリックスは、この例のように内部的に構築されています。

LED matrix

16×16のLEDマトリックスの場合、行に16本のピン、列に16本のピンがあります。特定の行列がどのように構成されているかを確認するには、そのデータシートを見つける必要があります。

ディスプレイに何かを書くには、最初の行をONに設定し、他のすべてをOFFに設定して必要な列をアクティブにします。しばらくして、最初の行をOFFに、2番目の行をONに設定し、2番目の行に表示する列をアクティブにします。このようにしてすべての行を反復処理します。遅延がかなり短くなるので、あなたの目はLEDがほとんどの時間消灯していることを確認するほど速くはありません。

私はあなたのマイクロコントローラにタイマー割り込みを使用し、割り込みルーチン内の行を繰り返すことをお勧めします。そうすれば、タイミングの問題をあまり気にすることなく、マイクロコントローラを他の用途に簡単に使用できます。

3
追加された

ほとんどのLEDマトリックスは、この例のように内部的に構築されています。

LED matrix

16×16のLEDマトリックスの場合、行に16本のピン、列に16本のピンがあります。特定の行列がどのように構成されているかを確認するには、そのデータシートを見つける必要があります。

ディスプレイに何かを書くには、最初の行をONに設定し、他のすべてをOFFに設定して必要な列をアクティブにします。しばらくして、最初の行をOFFに、2番目の行をONに設定し、2番目の行に表示する列をアクティブにします。このようにしてすべての行を反復処理します。遅延がかなり短くなるので、あなたの目はLEDがほとんどの時間消灯していることを確認するほど速くはありません。

私はあなたのマイクロコントローラにタイマー割り込みを使用し、割り込みルーチン内の行を繰り返すことをお勧めします。そうすれば、タイミングの問題をあまり気にすることなく、マイクロコントローラを他の用途に簡単に使用できます。

3
追加された

ほとんどのLEDマトリックスは、この例のように内部的に構築されています。

LED matrix

16×16のLEDマトリックスの場合、行に16本のピン、列に16本のピンがあります。特定の行列がどのように構成されているかを確認するには、そのデータシートを見つける必要があります。

ディスプレイに何かを書くには、最初の行をONに設定し、他のすべてをOFFに設定して必要な列をアクティブにします。しばらくして、最初の行をOFFに、2番目の行をONに設定し、2番目の行に表示する列をアクティブにします。このようにしてすべての行を反復処理します。遅延がかなり短くなるので、あなたの目はLEDがほとんどの時間消灯していることを確認するほど速くはありません。

私はあなたのマイクロコントローラにタイマー割り込みを使用し、割り込みルーチン内の行を繰り返すことをお勧めします。そうすれば、タイミングの問題をあまり気にすることなく、マイクロコントローラを他の用途に簡単に使用できます。

3
追加された

どうやってドットマトリックスのピン1を識別できますか?

ラベル「2088BH-B」の反対側にあるドットマトリックスの一番左のピンはピン1です。

次の2つの図から完全なアイデアを得ることができます。 ここに画像の説明を入力してください

enter image description here

これが大いに役立つことを願っています。ドットマトリックスで9を表示するために書かれた次のコードを試すこともできます(コンパイラ: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
追加された

どうやってドットマトリックスのピン1を識別できますか?

ラベル「2088BH-B」の反対側にあるドットマトリックスの一番左のピンはピン1です。

次の2つの図から完全なアイデアを得ることができます。 ここに画像の説明を入力してください

enter image description here

これが大いに役立つことを願っています。ドットマトリックスで9を表示するために書かれた次のコードを試すこともできます(コンパイラ: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
追加された

どうやってドットマトリックスのピン1を識別できますか?

ラベル「2088BH-B」の反対側にあるドットマトリックスの一番左のピンはピン1です。

次の2つの図から完全なアイデアを得ることができます。 ここに画像の説明を入力してください

enter image description here

これが大いに役立つことを願っています。ドットマトリックスで9を表示するために書かれた次のコードを試すこともできます(コンパイラ: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
追加された