Previous: 2.1.3. プログラム |
Up: 2.1.3. プログラム |
Next: 2.1.3.2. 8×8ドットマトリックス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 |