// 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);
  }
}