// Japanino POV (without switch) by Musashinodenpa
#define LEDPIN 7 // どのピンからLEDをつなぐか
#define NUMLED 7 // LEDの数
// ビットマップ(画像)を定義。最長255行
byte bitmap[] = {
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b01110000,
0b01000000,
0b01000000,
0b01000000,
0b01111111,
0b00000000,
0b01100000,
0b00011000,
0b00001110,
0b00001001,
0b00001110,
0b00011000,
0b01100000,
0b00000000,
0b01111111,
0b00001001,
0b00001001,
0b00001001,
0b00001111,
0b00000000,
0b01100000,
0b00011000,
0b00001110,
0b00001001,
0b00001110,
0b00011000,
0b01100000,
0b00000000,
0b01111111,
0b00000010,
0b00001100,
0b00011000,
0b01111111,
0b00000000,
0b00000000,
0b01111111,
0b00000000,
0b00000000,
0b01111111,
0b00000010,
0b00001100,
0b00011000,
0b01111111,
0b00000000,
0b01111111,
0b01000001,
0b01000001,
0b01111111,
0b00000000,
0b10000000 // 最後の行は0b10000000(つまり目印)
};
unsigned char pos; // 現在のビットマップ中の位置
unsigned char i;
void setup() {
// LEDが接続されたピンを出力に設定します
for(char pin = LEDPIN; pin < LEDPIN + NUMLED; pin++) {
pinMode(pin, OUTPUT);
}
}
void loop() {
pos = 0;
while(bitmap[++pos] != 0b10000000) { // ビットマップの端まで繰り返し
for(i = 0; i < NUMLED; i++) { // LEDの数だけ繰り返し
// ビットマップデータから1ビットを取り出してピンの状態に反映
digitalWrite(LEDPIN + NUMLED - 1 - i,
(bitmap[pos] >> i) & 0b00000001);
}
delay(1); // LEDが光っている時間
}
for(i = LEDPIN; i < LEDPIN + NUMLED; i++) { // 全LED消灯
digitalWrite(i, LOW);
}
}