Raspberry Pi Pico Wは、LEDやセンサーなどさまざまな外部デバイスを制御できる柔軟なマイコンボードです。
今回は、その活用例として「OSL641501-ARA 赤色8×8ドットマトリックスLED」の制御に挑戦してみましょう。
このLEDマトリックスは、縦横8つずつのLEDが格子状に並んでおり、文字やパターン、アニメーションなどを自由に表示することが可能です。
Raspberry Pi Pico Wと組み合わせることで、自作のディスプレイやゲーム、時計など、アイデア次第で多彩な表現が広がります。
■ ドットマトリックスLEDとは?
LEDマトリクスは、複数のLEDを行列状に配置し、列と行を組み合わせて点灯を制御する仕組みを持っています。
OSL641501-ARAは共通アノード(またはカソード)型の8×8マトリクスで、16本のピン(8列+8行)で64個のLEDを制御します。
■ 制御の基本:スキャン方式で1列ずつ点灯
64個のLEDすべてを同時に点灯させるには工夫が必要です。
そこで使われるのが**「スキャン方式」**です。
これは、1列(または1行)ずつ高速に切り替えて点灯させ、人間の目にはすべてが同時に光っているように見せる方法です。
例えば:
-
列1:行データを書き込み → 点灯 → オフ
-
列2:次の行データ → 点灯 → オフ
-
…
-
列8まで繰り返す
この処理を毎秒何百回も繰り返すことで、安定した表示が実現します。
■ 実装の第一歩:「点」を1つ光らせてみる
まずは「(1, 1)の位置を点灯させる」といったシンプルな動作から始めてみましょう。
マトリクスLEDのピン番号と座標の対応を確認し、GPIOピンのON/OFFを制御することで、任意のLEDを点灯させることができます。
OSL641501‑ARA 8×8 ドットマトリクス
⚠️ 必ず電流制限抵抗を入れてください
アノード側 または カソード側のどちらか一方に、470 Ω 〜 1 kΩ の抵抗を直列に挟みましょう。LED を直接 GPIO に接続すると過電流で Pico W や LED を損傷するおそれがあります。
ソースコード
プログラムの処理フロー 🚀
-
🛠️ GPIO 初期化
-
GP2‒GP9
を アノード(出力・LOW) として設定 -
GP10‒GP17
を カソード(出力・HIGH) として設定
-
-
🔄 メインループ開始
-
0〜7 の 各行(カソード) を順番に処理
-
-
↘️ 行を有効化
-
対象行のカソードを LOW にして LED 点灯を許可
-
-
🔁 列スキャン
-
行番号
k
が 偶数なら 左→右、奇数なら 右→左 に列を走査 -
各列のアノードを
-
HIGH にして 0.3 秒点灯
-
LOW に戻して消灯
-
-
-
⛔ 行リセット
-
走査終了後、すべてのアノードを LOW
-
対象行のカソードを HIGH に戻し無効化
-
-
🔁 次の行へ
-
8 行すべてを処理し終えると、メインループの先頭へ戻り 無限ループ 継続
-
コメント
コメントを投稿