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