Japanino特設サイト トップに戻る

Sketch スケッチ

P.O.V.で“I♡U”

// Japanino POV by Musashinodenpa

#define LEDPIN 7     // どのピンからLEDをつなぐか
#define SWPIN 6      // スイッチをつなぐピン

// ビットマップ(画像)を定義
byte bitmap[] = {
0b00000000,
0b01000001,
0b01111111,
0b01000001,
0b00000000,
0b00000000,
0b00001110,
0b00011111,
0b00111111,
0b01111110,
0b00111111,
0b00011111,
0b00001110,
0b00000000,
0b00000000,
0b00111111,
0b01000000,
0b01000000,
0b00111111,
0b10000000   // 最後の行は0b10000000(つまり目印)
};


unsigned char pos = 0;  // 現在のビットマップ中の位置
unsigned char i = 0;


void setup() {
// LEDが接続されたピンを出力に設定します
for(char pin = LEDPIN; pin < LEDPIN + 7; pin++) {
  pinMode(pin, OUTPUT);
}
pinMode(SWPIN, INPUT);      // スイッチのピンを入力に
digitalWrite(SWPIN, HIGH);  // 内蔵プルアップ有効
}

void loop() {

if(digitalRead(SWPIN) == LOW) {  // スイッチがオンならば1回描画

  delay(6);  // すぐ始めると詰まって見えるのでちょっと待つ
  pos = 0;

  while(bitmap[++pos] != 0b10000000) {  // ビットマップの端まで繰り返し
    for(i = 0; i < 7; i++) {  // ビットマップの高さの分だけ繰り返し
      // ビットマップデータから1ビットを取り出してピンの状態に反映
      digitalWrite(LEDPIN + 6 - i, (bitmap[pos] >> i) & 0b00000001);
    }
    delay(1);  // LEDが光っている時間
  }

  for(i = LEDPIN; i < LEDPIN + 7; i++) {  // 全ドット、消灯
    digitalWrite(i, LOW);
  }
 }
}
このページのトップへ