概要
LEDマトリックスドライバボードはATmega328Pマイクロコントローラを使用します。8×8または16×16のコモンカソードを制御します。 多重化技術を用いたLEDマトリックス.コアコンポーネント:
- 列のドライバー: ULN2803 ダーリントン・アレイ(シンク電流500mA/列)
- コラムドライバー: 74HC595 シフトレジスタ(カスケード展開)
- ユーザー入力3つのタッチボタン
- 電源5V安定化(USB/外部DC入力対応)
- 電流制限抵抗:220Ω(各列独立)
サンプルアプリケーション
- テキストのスクロールリアルタイムのセンサーデータを表示
- インタラクティブなゲーム:スネーク (ボタンで方向をコントロール)
- アニメーション効果:心臓の鼓動/波模様
- 音楽の視覚化:マイクモジュール付き
現在のバージョンの制限
| 制限 | インパクト | 回避策 |
|---|---|---|
| 16×16 リフレッシュレート≦200Hz | 高輝度時のちらつき | タイマー割り込みの使用 |
| PWM調光なし | 明るさ固定 | 次のリビジョンでMOSFETを追加 |
| USBパワーリミット(500mA) | 最大25% LED点灯 | 外部5V/2A電源 |
インストレーションガイド
ファームウェアの書き込み
- FTDIプログラマを6ピンインターフェースに接続
- Arduino IDEにLedControlライブラリをインストールします。
- サンプルコードをアップロードします:
カップ
//
1TP5ティンクルード
LedControl lc = LedControl(12, 11, 10, 2); //
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
}
ファームウェア・アーキテクチャ
コード
グラフTD
A[メインループ]→B[スキャンボタン]
A→C「アニメーションフレームを生成
A→D[リフレッシュマトリックス]
D --> E[N列のアクティブ化]
D --> F[カラムデータ送信]
F→G【ラッチ74HC595
主な最適化:
- タイマー割り込みのリフレッシュ(delay()ブロッキングの回避)
- フレームバッファのプリレンダリング
- ボタンステートマシンのデバウンス
ハードウェア設計
PCBレイアウトのポイント
- 現在のパスデザイン
- 電源インレット → 100μF電解コンデンサ → LM7805 → 0.1μFセラミックコンデンサ
- 列ドライバ(ULN2803)をマトリックス列に直接接続
- 信号のグループ化:
- 行制御信号:線幅20mil、長さ一致±5mm
- カラムデータリンクDIN-CLK-LATCHグループルーティング
- [電流制限抵抗】レイアウト
- 74HC595出力ピンの近く
- 0805パッケージ並列設計(放熱性向上)
仕様
| タイプ | 開口部 | パッド直径 | 用途 |
|---|---|---|---|
| 電源 | 0.4mm | 0.8mm | 5V/GND |
| 信号 | 0.3mm | 0.6mm | 行と列の制御 |
| 放熱 | 0.5mm | 1.0mm | レギュレーターグランド |
よくあるご質問
[ファームウェアの書き込みに失敗しました。
FTDIドライバーのインストールを確認してください。
ブートローダが損傷していないか確認します。
MCUのクロック周波数を測定(16MHzである必要があります)
LEDの輝度ムラ
列駆動能力の向上:ULN2803の出力に100μFのコンデンサを追加
トレースの長さを短くする(キー:[PCBトレース]≤10cm)
高輝度時の[電流制限抵抗]過熱について
推奨1210パッケージ抵抗を使用(電力≥0.5W)
または定電流ドライバIC(TLC5940など)を使用します。
16×16マトリックスのエッジは暗い
ラインの端に100nFのデカップリング・コンデンサーを追加します。
インピーダンスのバランスをとるために「スネーク」ルーティングを使用
デザインファイル
ダウンロードKiCadプロジェクト が含まれています:
- 回路図([電流制限抵抗]計算注釈付き)
- PCBレイアウト(4層基板最適化版)
- 3Dモデル(STEPファイル)
- 部品表 (BOM)
アップグレードルート
- V2.0:WiFiコントロールの追加(ESP-12Fモジュール)
- V3.0:RGBマトリクス対応(IS31FL3731ドライバIC)
- V4.0:統合リチウム電池管理(充放電回路)




