これといった目標もないのですが,今日は,画面をスクロールするスケッチを作ってみました。いろいろな方
法があるかとは思いますが,保持しているデータを全部,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つには,技適マーク
がついていませんでした。