int row_count = 0; int data = 22; int mergin_count = 0; int mergin = 2000; int threashold = 2; byte pattern[] = {0b0000000, //0 黒 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0001000, //1 Λ Λ 0b0010100, 0b0100010, 0b1000001, 0b0000000, 0b0000100, //2 ∋ ∈ 0b0001000, 0b0011110, 0b0001000, 0b0000100, 0b0100010, //3 × × 0b0010100, 0b0001000, 0b0010100, 0b0100010, 0b0000000, //4 - - 0b0000000, 0b1111111, 0b0000000, 0b0000000, 0b0100000, //5 / \ 0b0010000, 0b0001000, 0b0000100, 0b0000010, 0b0010100, //6 ❤ ❤ 0b0111110, 0b0111110, 0b0011100, 0b0001000, 0b0011100, //7 ● ●(中心点) 0b0111110, 0b0110110, 0b0111110, 0b0011100, 0b0011100, //8 ○ ○ 0b0100010, 0b0100010, 0b0100010, 0b0011100, 0b0011100, //9 ● ● 0b0111110, 0b0111110, 0b0111110, 0b0011100, 0b0000010, //10 \ / 0b0000100, 0b0001000, 0b0010000, 0b0100000, 0b0000000, //11 ・ ・ 0b0000000, 0b0001000, 0b0000000, 0b0000000, 0b0000000, //12 グー 0b0000000, 0b0111110, 0b0111110, 0b0011100, 0b0010100, //13 チョキ 0b0010100, 0b0111110, 0b0111110, 0b0011100, 0b0101010, //14 パー 0b0101010, 0b0111110, 0b0111111, 0b0011100, 0b0001000, //15 + + 0b0001000, 0b0111110, 0b0001000, 0b0001000, 0b0011100, //16 ○ ○(中心点) 0b0100010, 0b0101010, 0b0100010, 0b0011100, 0b0011100, //17 ○ ○(横棒) 0b0100010, 0b0111110, 0b0100010, 0b0011100, 0b0000000, //18 - -(点付き) 0b0000000, 0b1111111, 0b0001000, 0b0000000, 0b0000100, //19 > < 0b0001000, 0b0010000, 0b0001000, 0b0000100, 0b0011100, //20 ○ ○(点付き寄り目) 0b0100010, 0b0110010, 0b0100010, 0b0011100, 0b0011100, //21 ○ ○(点付き離れ目) 0b0100010, 0b0100110, 0b0100010, 0b0011100, 0b0000000, //22 ^ ^ ロビアイドリング(32パターン) 0b0001000, 0b0010100, 0b0100010, 0b0000000, 0b0000000, //23 ・ ・ 0b0001000, 0b0011100, 0b0001000, 0b0000000, 0b0000000, //24 ・・(寄り目) 0b0100000, 0b1110000, 0b0100000, 0b0000000, 0b0000000, //25 ・ ・(離れ目) 0b0000010, 0b0000111, 0b0000010, 0b0000000, 0b0101010, //26 * * 0b0011100, 0b0001000, 0b0011100, 0b0101010, 0b0000000, //27 / \(短い) 0b0010000, 0b0001000, 0b0000100, 0b0000000, 0b0000000, //28 \/(短い) 0b0000100, 0b0001000, 0b0010000, 0b0000000, 0b0000000, //29 涙 0b1110000, 0b0101000, 0b1100100, 0b1100010, 0b0011101, //30 ● ●(ロビマーク) 0b0111110, 0b0111110, 0b0111110, 0b0011100, 0b0000000, //31 未使用 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b1111111, //32 全点灯 0b1111111, 0b1111111, 0b1111111, 0b1111111, 0b1111111, //33  ̄  ̄ 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0000000, //34 _ _ 0b0000000, 0b0000000, 0b0000000, 0b1111111, 0b0000000, //35 △ △ 0b0001000, 0b0010100, 0b0100010, 0b1111111, 0b0000000, //36 ▽ ▽ 0b1111111, 0b0100010, 0b0010100, 0b0001000, 0b0000101, //37 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0000110, //38 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0000111, //39 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0001000, //40 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0001001, //41 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0001010, //42 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0001011, //43 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0001100, //44 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0001101, //45 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0001110, //46 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0001111, //47 0b0000010, 0b0000000, 0b0000000, 0b0000000, 0b0000000, //48 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0000001, //49 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0000010, //50 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0000011, //51 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0000100, //52 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0000101, //53 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0000000, //54 ^ ^ ロビアイドリング(64パターン) 0b0001000, 0b0010100, 0b0100010, 0b0000000, 0b0000111, //55 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0001000, //56 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0001001, //57 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0001010, //58 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0001011, //59 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0001100, //60 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0001101, //61 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0001110, //62 0b0000011, 0b0000000, 0b0000000, 0b0000000, 0b0000000, //63 未使用 0b0000000, 0b0000000, 0b0000000, 0b0000000 }; void setup() { for (int pin = 2; pin <= 13; pin++) { pinMode(pin, OUTPUT); } } void loop() { if (row_count == 0) { if (mergin_count > mergin) { data = 0; if (analogRead(0) < threashold) data += 1; if (analogRead(1) < threashold) data += 2; if (analogRead(2) < threashold) data += 4; if (analogRead(3) < threashold) data += 8; if (analogRead(4) < threashold) data += 16; if (analogRead(5) < threashold) data += 32; mergin_count = 0; } mergin_count++; } for (int i = 0; i < 5; i++) { digitalWrite(i + 9, LOW); } byte data_mask = 0b1000000; for (int i = 0; i < 7; i++) { if ((pattern[data*5+row_count] & data_mask)== 0) digitalWrite(i + 2, HIGH); else digitalWrite(i + 2, LOW); data_mask >>= 1; } for (int i = 0; i < 5; i++) { if (row_count == i) digitalWrite(i + 9, HIGH); } row_count++; if (row_count == 5) row_count = 0; }