マトリクスLEDのピン配列が無茶くちゃな件

写真では
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が壊れるようなハードウェア構成になる予定。

コメントを読む・書く