写真では
01 02 03 04 05 06 07 08
16 15 14 13 12 11 10 9
なんですけど、
行5 行7 列2 列3 行8 列5 行6 行3
列8 列7 行2 列1 行4 列6 列4 行1
などというわけのわからなさ(苦笑)
配線を平面上で重ならない様にピンを割り当てた結果だというのはピンとLEDの間に線を引いてみてある程度理解出来ました。
でも、ここからプログラムに起こすには、またややこしいピン配列のLSI(ATmega328P)のことを考慮する必要がある。
LED 列1 列2 列3 列4 列5 列6 列7 列8
LSI端子 PB6 PC3 PC2 PD6 PC0 PD5 PD3 PD2
common
LED 行1 行2 行3 行4 行5 行6 行7 行8
LSI端子 PD7 PD4 PB1 PB7 PC5 PB2 PC4 PB2
上の表に基づいて信号を送れば良さげなんですけど、今回の安全回路を端折ってまでコンパクトに作りたいという都合で他のピンに影響を与えないように特定のピンを操作するのは難しそう。
(PPB = PPB | (1< 仮想ポートをメモリに作って、出力したピンの状態を記憶してビット操作するしかないようですね。。。 LEDの電流制限抵抗もPWMで電圧を落とすことにより端折りますのでCPUが暴走したらLEDが壊れるようなハードウェア構成になる予定。