MAX7219の使い方 8×8LCD 無ライブラリー (5)

これといった目標もないのですが,今日は,画面をスクロールするスケッチを作ってみました。いろいろな方
法があるかとは思いますが,保持しているデータを全部,1ビットだけ左にシフトする操作を保持しているメ
モリーにほどこして,画面全体を表示しています。

スクロールさせる図形は,昨日までに作った,set_dot(*,*,*,*); の関数で表示してます。

set_dot(1,1,1,1);
set_dot(1,5,1,1);
set_dot(2,2,1,1);
set_dot(2,6,1,1);
set_dot(3,3,1,1);
set_dot(3,7,1,1);
set_dot(4,4,1,1);
set_dot(4,8,1,1);
set_dot(5,4,1,1);
set_dot(5,8,1,1);
set_dot(6,3,1,1);
set_dot(6,7,1,1);
set_dot(7,2,1,1);
set_dot(7,6,1,1);
set_dot(8,1,1,1);
set_dot(8,5,1,1);

下記がスクロールさせるスケッチです。セットした画像をエンドレスで表示するようにしてあります。

void men_Shift(){
  boolean buff=false;
  for(int y=1;y<9;y++){
    if(bitRead(dot_hoji[4][y],7)){//4ユニット目表示メモリーの最上位を保持
      buff=true;
    }
    else{
      buff=false;
    }
    dot_hoji[4][y]=dot_hoji[4][y]<<1;
      if(bitRead(dot_hoji[3][y],7)){
        bitSet(dot_hoji[4][y],0);
      }
    dot_hoji[3][y]=dot_hoji[3][y]<<1;
      if(bitRead(dot_hoji[2][y],7)){
        bitSet(dot_hoji[3][y],0);
      }
    dot_hoji[2][y]=dot_hoji[2][y]<<1;
      if(bitRead(dot_hoji[1][y],7)){
        bitSet(dot_hoji[2][y],0);
      }
    dot_hoji[1][y]=dot_hoji[1][y]<<1;
      if(buff){//4ユニット目表示メモリーの最上位をセット
        bitSet(dot_hoji[1][y],0);
      }
    maxTransfer(y, dot_hoji[4][y]);
    maxTransfer(y, dot_hoji[3][y]);
    maxTransfer(y, dot_hoji[2][y]);
    maxTransfer(y, dot_hoji[1][y]);
    digitalWrite(CS_PIN, HIGH);//一括アップロードラッチ 
  }
}

今回も,ビット演算子を使わないで,準備されているビット操作の関数を使いました。

この8×8LEDユニットとESP32というWi-Fiとブルートースを搭載したチップで,
時計をお作りになっている諸兄もいらっいます。

このチップは開発ボードと呼ばれているもので,簡単に書き込みのできるものです。余分なものを省いたチ
ップだけの販売もあります。このチップだけの物は,書き込み等の回路を自作か購入しなければなりません
が組み込みでなにかを作るには小型化できるメリットがあります。コスパもいいかなあ。

ちなみに開発ボードは,〇zonだと,700円前後。チップだけのものは,3個で800円なんてのもあります。
〇mazonからのものもそうですが,無線関係の機器は,技適マークの関連もあるので,難しいところですね。
ちなみに,少し前に,〇mazonから,二個セットのESP32を購入しましたが,2つのうち1つには,技適マーク
がついていませんでした。