マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 2.1.3. プログラム

Up: 2.1.3. プログラム

Next: 2.1.3.2. 8×8ドットマトリックスLED


マイコン徹底入門:周辺回路編:STM32のペリフェラルを活用: 2. 汎用入出力(GPIO): 2.1. マトリックスLEDのダイナミック点灯: 2.1.3. プログラム:

2.1.3.1. 5×7ドットマトリックスLED

サンプルプログラム

gpio_matrix_led_5x7

6?60 回路図

写真 6?33 「す」が表示された瞬間

***P1010657***

 マトリックスLEDでもダイナミック点灯を行います(写真 6?33)。回路図は 6?60 回路図です。ダイナミック点灯の原理そのものは、7セグメントLEDのときと同じです。7セグメントLEDのときは、点灯させる桁を高速で切り替えていましたが、マトリックスLEDの場合には、点灯させる行を高速で切り替えることにします。点灯させる列を切り替えるということでもよいのですが、表示させるグラフィックデータは行毎に作成するので、行を切り替える方がプログラム側の処理が楽です。

 マトリックスLEDに表示させるパターンは、7行分のデータを格納した配列として作成しています。ダイナミック点灯時の処理が簡単であるというが本来の理由ですが、ソースコード上でパターンを作成しやすいというメリットもあります。

{0b11111,

?0b00001,

?0b00101,

?0b00110,

?0b00100,

?0b00100,

?0b01000},

 このデータを上から順に各行に表示する処理を繰り返せば、一つの画像として表示されるはずです。ちなみに以上の例はカタカナの「ア」です。

 このサンプルプログラムでもSend2ByteToShiftRegister関数を使用しました。マトリックスLEDの行数が7行ありますので、7回繰り返すループを使用しました

for (l=0; l<=6; l++)

? {

??? Send2ByteToShiftRegister(( 1 << (l+8)) | Pattern[i][l]);

??? /* Insert delay */

??? delay_us(LINE_DURATION);

? }

 あとは一定時間待った後に、次の行の点灯処理に移ります。これでダイナミック点灯ができました。


Previous: 2.1.3. プログラム

Up: 2.1.3. プログラム

Next: 2.1.3.2. 8×8ドットマトリックスLED


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。
_Toc266801166