Raspberry Pi 用の外付け回路基盤
LED
回路
アノードをGPIOに,カソードをGNDに接続.100Ωの保護抵抗入り.
接続
ピン名 | GPIOポート番号 |
---|---|
LED | 10 |
制御
GPIOポート10に1を出力すると点灯する.
スピーカ
回路
極性なし.1kΩの保護抵抗入り.
接続
ピン名 | GPIOポート番号 |
---|---|
SPK | 19 |
制御
GPIOポート19をPWMに接続して波形を出力する.
8x8 ドットマトリックスLED
回路
8x8ドットマトリクス(OSL641501-ARA). 各列(COL)に100Ω抵抗が入っている.
接続
ピン名 | GPIO ポート番号 |
---|---|
COL1 | 27 |
COL2 | 8 |
COL3 | 25 |
COL4 | 23 |
COL5 | 24 |
COL6 | 22 |
COL7 | 17 |
COL8 | 4 |
ROW1 | 14 |
ROW2 | 15 |
ROW3 | 21 |
ROW4 | 18 |
ROW5 | 12 |
ROW6 | 20 |
ROW7 | 7 |
ROW8 | 16 |
動作
列(COL)を操作するGPIO出力 | 行(ROW)を操作するGPIO出力 | 結果 |
---|---|---|
0 | 0 | 消灯 |
0 | 1 | 消灯 |
1 | 0 | 点灯 |
1 | 1 | 消灯 |
制御
行をROW1からROW8まで順に1行だけ表示させるという操作を高速に繰り返す. まず,全ての行(ROW)に1を出力しておく. 行rを表示させるには,行rの点灯させる列には1を,消灯させる列には0を出力しておき, そのうえで,ROWrに0を出力する.
疑似コード
配列frame[行][列]
の内容を表示させるプログラムのC言語風疑似コードを示す.
ROW1からROW8に対応するGPIOに1を出力
for (row = 1; row <= 8; row++) {
for (col = 1; col <= 8; col++) {
if (frame[row][col] == 点灯) {
列colに対応するGPIOに1を出力
} else {
列colに対応するGPIOに0を出力
}
}
行rowに対応するGPIOに0を出力
しばらく待つ
行rowに対応するGPIOに1を出力
}
スイッチ
回路
10kΩでプルダウンしている.1kΩの保護抵抗入り.
接続
スイッチ番号 | GPIO ポート番号 |
---|---|
SW1 | 13 |
SW2 | 26 |
SW3 | 5 |
SW4 | 6 |
制御
GPIOポートを入力用に設定して使う.対応するスイッチを押したときに1が読み出せる.