Arduinoで作ろう(56) 16個のLEDでバーサライタ
74HC595を2個使って,16個のLEDでバーサライターを作ってみました。
友人のstraycatsmachan が作ってくれた縦16ビットの絵柄データを生成できるソフトを使って画数の多い「薔薇」と「焼肉定食」と「魑魅魍魎」のデータを作ってみました(笑)
また,straycatsmachanにデータを#includeする方法を教えてもらったので,絵柄データ部分をメインプログラムから切り離しておいて#includeし,タクトスイッチで3つの絵柄(文字列)を切り替えられるようにしてあります。
// 74HC595×2個 LED 16個のバーサライタ
#define SDI 8
#define LAT 9
#define CLK 10
#define SW 11 //D11を絵柄切換SWとする
#define patternsaidai 3 //絵柄数最大
int bitmap[5][100];
int bitmaplen[5];
unsigned char i,j;
void setup() {
#include "bitmap1.h"
#include "bitmap2.h"
#include "bitmap3.h"
pinMode( SW, INPUT_PULLUP );
pinMode( SDI, OUTPUT );
pinMode( LAT, OUTPUT );
pinMode( CLK, OUTPUT );
i=1;
}void loop() {
if ( digitalRead(SW)== LOW ){
delay(100);
i = i+1;
}
if (i >patternsaidai) {
i=1;
}
for ( int j=0; j<bitmaplen[i]; j++ ) {
digitalWrite( LAT, LOW );
shiftOut( SDI, CLK, LSBFIRST, bitmap[i][j] );
shiftOut( SDI, CLK, LSBFIRST, bitmap[i][j]>>8 );
digitalWrite( LAT, HIGH );
delay(3);
}
}
↓絵柄データ1(薔薇) bitmap1.h
i=1;
bitmaplen[i] = 46; //薔薇bitmap[i][1] = 0b0000000000000000;
bitmap[i][2] = 0b0000000000000000;
bitmap[i][3] = 0b0000000000000000;
bitmap[i][4] = 0b0000000000000000;
bitmap[i][5] = 0b0000000000000000;
bitmap[i][6] = 0b0000000000000000;
bitmap[i][7] = 0b0000000000000000;
bitmap[i][8] = 0b0000000000000000;
bitmap[i][9] = 0b0000000000000000;
bitmap[i][10] = 0b0000000000000000;
bitmap[i][11] = 0b0000000000000000;
bitmap[i][12] = 0b0000000000000000;
bitmap[i][13] = 0b0000000100000010;
bitmap[i][14] = 0b0000000110010010;
bitmap[i][15] = 0b0111110101010010;
bitmap[i][16] = 0b0100010100110010;
bitmap[i][17] = 0b0100010101010010;
bitmap[i][18] = 0b0101110110010111;
bitmap[i][19] = 0b0101010100010010;
bitmap[i][20] = 0b0101010111111010;
bitmap[i][21] = 0b0101010100010010;
bitmap[i][22] = 0b0101110110010111;
bitmap[i][23] = 0b0100010101010010;
bitmap[i][24] = 0b0100010100110010;
bitmap[i][25] = 0b0111110101010010;
bitmap[i][26] = 0b0000000110010010;
bitmap[i][27] = 0b0000000100000010;
bitmap[i][28] = 0b0000000000000000;
bitmap[i][29] = 0b0000000000000000;
bitmap[i][30] = 0b0000010001000010;
bitmap[i][31] = 0b0000001000100010;
bitmap[i][32] = 0b0111111110011010;
bitmap[i][33] = 0b0000000001000010;
bitmap[i][34] = 0b0100000000000010;
bitmap[i][35] = 0b0011110101110111;
bitmap[i][36] = 0b0000010101000010;
bitmap[i][37] = 0b0000010101111010;
bitmap[i][38] = 0b0011110101000010;
bitmap[i][39] = 0b0001001001110111;
bitmap[i][40] = 0b0100000110000010;
bitmap[i][41] = 0b0010011001111010;
bitmap[i][42] = 0b0001100001000010;
bitmap[i][43] = 0b0010011111000010;
bitmap[i][44] = 0b0100000001000010;
bitmap[i][45] = 0b0000000000000000;
bitmap[i][46] = 0b0000000000000000;
↓絵柄データ2(焼肉定食) bitmap2.h
i=2;
bitmaplen[i] = 80; //焼肉定食bitmap[i][1] = 0b0000000000000000;
bitmap[i][2] = 0b0000000000000000;
bitmap[i][3] = 0b0000000000000000;
bitmap[i][4] = 0b0000000000000000;
bitmap[i][5] = 0b0000000000000000;
bitmap[i][6] = 0b0000000000000000;
bitmap[i][7] = 0b0000000000000000;
bitmap[i][8] = 0b0000000000000000;
bitmap[i][9] = 0b0000000000000000;
bitmap[i][10] = 0b0000000000000000;
bitmap[i][11] = 0b0000000000000000;
bitmap[i][12] = 0b0000000000000000;
bitmap[i][13] = 0b0110000001111000;
bitmap[i][14] = 0b0001110000000000;
bitmap[i][15] = 0b0000001111111111;
bitmap[i][16] = 0b0000010000010000;
bitmap[i][17] = 0b0000100000001000;
bitmap[i][18] = 0b0100001001000100;
bitmap[i][19] = 0b0100001001000100;
bitmap[i][20] = 0b0011001111110100;
bitmap[i][21] = 0b0000111001000100;
bitmap[i][22] = 0b0000001001011111;
bitmap[i][23] = 0b0000001001000100;
bitmap[i][24] = 0b0111111001000100;
bitmap[i][25] = 0b0100001111110100;
bitmap[i][26] = 0b0100001001000100;
bitmap[i][27] = 0b0111001001000000;
bitmap[i][28] = 0b0000000000000000;
bitmap[i][29] = 0b0000000000000000;
bitmap[i][30] = 0b0111111111111100;
bitmap[i][31] = 0b0000000000000100;
bitmap[i][32] = 0b0000100001000100;
bitmap[i][33] = 0b0000100001000100;
bitmap[i][34] = 0b0000010000100100;
bitmap[i][35] = 0b0000001000010100;
bitmap[i][36] = 0b0000000110001111;
bitmap[i][37] = 0b0000001000010100;
bitmap[i][38] = 0b0000001000010100;
bitmap[i][39] = 0b0000010000100100;
bitmap[i][40] = 0b0000100001000100;
bitmap[i][41] = 0b0100000000000100;
bitmap[i][42] = 0b0100000000000100;
bitmap[i][43] = 0b0111111111111100;
bitmap[i][44] = 0b0000000000000000;
bitmap[i][45] = 0b0000000000000000;
bitmap[i][46] = 0b0000000000000000;
bitmap[i][47] = 0b0100000000111100;
bitmap[i][48] = 0b0010000000000100;
bitmap[i][49] = 0b0001100000100100;
bitmap[i][50] = 0b0000111100100100;
bitmap[i][51] = 0b0001000000100100;
bitmap[i][52] = 0b0010000000100100;
bitmap[i][53] = 0b0010000000100100;
bitmap[i][54] = 0b0111111111100111;
bitmap[i][55] = 0b0100001000100100;
bitmap[i][56] = 0b0100001000100100;
bitmap[i][57] = 0b0100001000100100;
bitmap[i][58] = 0b0100001000100100;
bitmap[i][59] = 0b0100001000100100;
bitmap[i][60] = 0b0100000000000100;
bitmap[i][61] = 0b0100000000111100;
bitmap[i][62] = 0b0000000000000000;
bitmap[i][63] = 0b0000000000000000;
bitmap[i][64] = 0b0100000000010000;
bitmap[i][65] = 0b0100000000010000;
bitmap[i][66] = 0b0100000000001000;
bitmap[i][67] = 0b0111111111101000;
bitmap[i][68] = 0b0010001010100100;
bitmap[i][69] = 0b0010001010100100;
bitmap[i][70] = 0b0010001010100010;
bitmap[i][71] = 0b0010011010111001;
bitmap[i][72] = 0b0000101010100010;
bitmap[i][73] = 0b0001001010100100;
bitmap[i][74] = 0b0010101010100100;
bitmap[i][75] = 0b0010101111101000;
bitmap[i][76] = 0b0100010000001000;
bitmap[i][77] = 0b0100010000010000;
bitmap[i][78] = 0b0100000000010000;
bitmap[i][79] = 0b0000000000000000;
bitmap[i][80] = 0b0000000000000000;
↓絵柄データ3(魑魅魍魎) bitmap3.h
i=3;
bitmaplen[i] = 74; //魑魅魍魎bitmap[i][1] = 0b0000000000000000;
bitmap[i][2] = 0b0000000000000000;
bitmap[i][3] = 0b0000000000000000;
bitmap[i][4] = 0b0000000000000000;
bitmap[i][5] = 0b0000000000000000;
bitmap[i][6] = 0b0000000000000000;
bitmap[i][7] = 0b0110000111111100;
bitmap[i][8] = 0b0001111100100100;
bitmap[i][9] = 0b0000000111111110;
bitmap[i][10] = 0b0011111100100101;
bitmap[i][11] = 0b0101010100100100;
bitmap[i][12] = 0b0101100111111100;
bitmap[i][13] = 0b0100000000000000;
bitmap[i][14] = 0b0101111101111010;
bitmap[i][15] = 0b0100000101000010;
bitmap[i][16] = 0b0100110101101010;
bitmap[i][17] = 0b0100101111010011;
bitmap[i][18] = 0b0100110101101010;
bitmap[i][19] = 0b0101000101000010;
bitmap[i][20] = 0b0101111101111010;
bitmap[i][21] = 0b0110000000000000;
bitmap[i][22] = 0b0000000000000000;
bitmap[i][23] = 0b0000000000000000;
bitmap[i][24] = 0b0100000000000000;
bitmap[i][25] = 0b0011000111111100;
bitmap[i][26] = 0b0000111100100100;
bitmap[i][27] = 0b0000000111111110;
bitmap[i][28] = 0b0011111100100101;
bitmap[i][29] = 0b0100000100100100;
bitmap[i][30] = 0b0101100111111100;
bitmap[i][31] = 0b0101011000000000;
bitmap[i][32] = 0b0101101000100000;
bitmap[i][33] = 0b0100000100100100;
bitmap[i][34] = 0b0100000010100100;
bitmap[i][35] = 0b0100111111111111;
bitmap[i][36] = 0b0100000010100100;
bitmap[i][37] = 0b0100000100100100;
bitmap[i][38] = 0b0111001000100000;
bitmap[i][39] = 0b0000000000000000;
bitmap[i][40] = 0b0000000000000000;
bitmap[i][41] = 0b0110000111111100;
bitmap[i][42] = 0b0001111100100100;
bitmap[i][43] = 0b0000000111111110;
bitmap[i][44] = 0b0011111100100101;
bitmap[i][45] = 0b0101010100100100;
bitmap[i][46] = 0b0101100111111100;
bitmap[i][47] = 0b0100000000000000;
bitmap[i][48] = 0b0101111111111110;
bitmap[i][49] = 0b0100000010101010;
bitmap[i][50] = 0b0100011110110010;
bitmap[i][51] = 0b0100010011100010;
bitmap[i][52] = 0b0100010010110010;
bitmap[i][53] = 0b0101000010101010;
bitmap[i][54] = 0b0101111111111110;
bitmap[i][55] = 0b0110000000000000;
bitmap[i][56] = 0b0000000000000000;
bitmap[i][57] = 0b0000000000000000;
bitmap[i][58] = 0b0110000111111100;
bitmap[i][59] = 0b0001111100100100;
bitmap[i][60] = 0b0000000111111110;
bitmap[i][61] = 0b0011111100100101;
bitmap[i][62] = 0b0101010100100100;
bitmap[i][63] = 0b0101100111111100;
bitmap[i][64] = 0b0100000000000000;
bitmap[i][65] = 0b0101111111110010;
bitmap[i][66] = 0b0100001010010010;
bitmap[i][67] = 0b0100000100010010;
bitmap[i][68] = 0b0101111111111110;
bitmap[i][69] = 0b0100001010010010;
bitmap[i][70] = 0b0101000100010010;
bitmap[i][71] = 0b0101111111110010;
bitmap[i][72] = 0b0110000000000000;
bitmap[i][73] = 0b0000000000000000;
bitmap[i][74] = 0b0000000000000000;
で,スローシャッターで撮った写真がこちら↓ なかなかイイでしょ?
| 固定リンク | 0
「Arduino」カテゴリの記事
- 大型7セグLEDを4個使った表示装置(2022.01.23)
- Arduinoで作ろう(61) Digisparkで7セグLED温度計(2022.01.16)
- Arduinoで作ろう(60) Digisparkでデジタル時計(2022.01.10)
- Arduinoで作ろう(59) DigisparkのP5を使えるようにした(2022.01.08)
- Arduinoで作ろう(58) DigisparkとLM35で温度計(2022.01.02)