keyestudio 8×8 LED Matrix Moduleを試してみる
これはLEDが縦横8個ずつ並びドット絵のように表示出来るLEDのようだ
アドレスを変更することで複数台繋げることも可能な模様
今回はサンプル通りに動かしてみる
配線は+・-・データ1・データ2の4本なので
データ1=GPIO4 データ2=GPIO5 に配線してみた
プログラムコンパイルにあたりライブラリを公式からダウンロード
これを解凍しArduinoのlibrariesフォルダに入れる
ただしプログラムを適時修正しコンパイルを試みるもエラーがっ
なんでや?正直わからない 修正箇所等は確認したが…
散々調査した結果エラーメッセージの箇所
つまり導入したlibrariesフォルダ内Matrix.hの7行目の
#include <avr/pgmspace.h>
を
#include <pgmspace.h>
に変更することでコンパイルが通った
ESP32なので階層が違うとかなのかもしれない 今後気をつけなければ
ソースは以下(最終)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
/* keyestudio 8x8 LED Matrix Module ESP32-S3-DevKitC-1 WiNCHaN */ #include <Matrix.h> Matrix myMatrix(4,5); uint8_t LedArray1[8]={0x00,0x18,0x24,0x42,0x81,0x99,0x66,0x00}; uint8_t LEDArray[8]; void setup(){ myMatrix.begin(0x70); } void loop(){ myMatrix.clear(); for(int i=0; i<8; i++) { LEDArray[i]=LedArray1[i]; for(int j=7; j>=0; j--) { if((LEDArray[i]&0x01)>0) myMatrix.drawPixel(j, i,1); LEDArray[i] = LEDArray[i]>>1; } } myMatrix.writeDisplay(); } |
無事ハートマークが表示された
模様はLedArray1の16進数がその定義のようだが2進数を16進数に変換等が必要みたい
今回はここまでとしドット変更については今後挑戦していく予定
コメント
いつも楽しい記事ありがとうございます。
定義部分を2進数にするのはどうでしょうか?
uint8_t LedArray1[8] = {
0b00000000,
0b00011000,
0b00100100,
0b01000010,
0b10000001,
0b10011001,
0b01100110,
0b00000000
};
アドバイスありがとうございます!
他のマトリクスLEDサンプルではそんな感じでやっているのも見掛けましたのでいけそうですね
ドット変更時にはその方法で試してみます!