大したことしていないのにケーブルが多いとやった感がでますね。(^^;
ROM部分は大雑把に実験完了。次々~。
追記:このソースは暫定版です。
/* IDE 物理ピン 名称 2 4 Intr 3 5 D0 4 6 D1 5 11 D2 6 12 D3 7 13 D4 8 14 D5 9 15 D6 10 16 D7 16 25 A0 17 26 A1 18 27 A2 19 28 A3 ※スケッチ書き込み用 - 1 RESET 11 17 MOSI 12 18 MISO 13 19 SCK */ const int _A0 = 16; const int _D0 = 3; void setup() { for(int i=0; i<4; i++) { pinMode(_A0+i, INPUT); } for(int i=0; i<8; i++) { pinMode(_D0+i, OUTPUT); digitalWrite(_D0+i, LOW); } attachInterrupt(0, intr, RISING); } void loop() { // EMPTY } void intr() { byte t = 0; byte d = 0; for(int i=0; i<4; i++) { if(digitalRead(_A0+i) == HIGH) { t |= (1 << i); } } // ラーメンタイマー switch(t) { case 0x00: d = B10110111; break; case 0x01: d = B00000001; break; case 0x02: d = B11100001; break; case 0x03: d = B00000001; break; case 0x04: d = B11100011; break; case 0x05: d = B10110110; break; case 0x06: d = B00000001; break; case 0x07: d = B11100110; break; case 0x08: d = B00000001; break; case 0x09: d = B11101000; break; case 0x0a: d = B10110000; break; case 0x0b: d = B10110100; break; case 0x0c: d = B00000001; break; case 0x0d: d = B11101010; break; case 0x0e: d = B10111000; break; case 0x0f: d = B11111111; break; } for(int i=0; i<8; i++) { digitalWrite(_D0+i, (d & (1 << i)) ? HIGH : LOW); } }