こんにちは。Yukiです。
今回は、ドットマトリクスで電光掲示板2を作ろうという記事です。
今回はPCBWay様の協賛を得て作っています。
以前のものとの違い
以前のものは、32×128ドットのドットマトリクスを1枚の基板にすべて実装していました。
制御自体は楽ですが、
- 基板が大きいためリフローできない
- 普通に邪魔
- 基板が非常に高い
- 一箇所でも壊れると修理が大変
など様々な問題がありました。実際問題、バスなどは表示モジュールと制御回路等で別れています。ということで今回は、表示モジュールと制御回路で分けて設計してみたいと思います。
使用する部品と回路図 ー 制御側
制御側は次のようなことを行います。
- ハイサイドSWの制御
- 各表示モジュールにデータの送信
- タイミング信号の出力
これらを実現するうえで使用した部品です。
- CH32V203K8T6
- 秋月で手に入る
- やすい
- 前回も使用し、ノウハウがある
- 74HC595
- Nexperia (今色々大変そうですね)
- ハイサイドSWのON/OFFに使用
- DS8923
- 今回初導入の差動用IC
- RS-422規格
- SPI/UARTに使用
- XR30P03
- 以前も使用したため
- ハイサイドSW用のPchMOSFET
- 中華製だけど普通に使えました
- 30V25Aで明らかにオーバースペック(こまけぇことはいいんだよ)
- YDS512F
- 電圧可変ができるスイッチング電源(ただし入力18V~)
- 秋月でやすかったため
- 一応3.3Vくらいまで出力可
- ハイサイドSWにつなげてLED明るさ調整用
- BP2953-50
- 安心安全のROHM製
- 3端子レギュレータみたいなDCDCコンバーター
- 差動通信が5Vを要求するため
- AMS1117-33
- 3.3V用三端子レギュレーター
- マイコン等の電源用
- BP2953から出てきた5Vを3.3Vに落とす
主要部品はこれくらいですかね。あとは抵抗とかもありますが、普通のやつです。

めちゃくちゃ見にくいと思うので、KiCAD形式で配布しているでそちらから確認してただければと…
使用する部品と回路図 ー 表示機
表示機は次のようなことを行います。
- 制御側のデータ受信
- 制御側から出たタイミング信号でLED点灯
主要部品は次のとおりです。
- CH32V203K8T6
- 省略
- DS8923
- 省略
- TC7WPB9307FK
- バススイッチ
- DS8923がTTLレベル(5V)のためCMOSレベル(3.3V)に落とす
- 安心のTOSHIBA
- MD1516C2_RG
- 共立エレショップで4つ800円
- コンパクトな割に16×16ドット
- 74HC595
- LEDの点灯用
- DRV777
- TI製
- トランジスタアレイ(モータードライバとして売られてるけどね)
- LEDの電流稼ぎます!
こんなところですかね。
データ配布
今回はPCBWay様の援助を受けて作成しています。本当にありがとうございます。
ということで、基板データとKiCADの設計ファイルはPCBWay様の方で共有させていただきます。

基板製造はぜひ、PCBWayでどうぞ!
届いた基板の様子


今回はステンシルもいただきました。ありがとうございます。

このような形で配達されました。MDFのようなもので覆われて配達されるので、特に曲がり等もなく、丁寧な配送でした。
リフローしていく
今回、部品実装は手ハンダではなくリフローで行います。

基板を固定します。周りの基板は使う予定がない捨て基板です。

ステンシルが下のランド部分と位置合わせできたら、上1箇所をマスキングテープで止めます。

今回は、アリエクで購入した鉛入りはんだペーストを使います。

↑この辺もかなり品質が良かったです。おすすめです。ちなみにですが、個人的にはシリンダー(注射器タイプ)のほうが品質が良いなと思います。

適当にベチョーっと出します。

ヘラで押し込むようなイメージで手前にすべらせます。
2回目は30度くらいの角度で余ったペーストをかすめ取るイメージでやります。

ここまで来たらOK。あとは慎重にステンシルを外します。
今回のは大きいので大丈夫だと思いますが、持てる部分がない場合、マスキングテープとかで下から持ち上げます。

こんな感じになればOKです。

めっちゃ綺麗ですね。トップレベルでステンシルのレベルが高いなという印象です。

エッジが出ているのがすごいですね。

部品を乗っけました。乗っけるときは上からポンと奥だけで大丈夫です。

ある程度斜めっていても、ハンダが溶けたときに部品は正しい位置に動くので大丈夫です。

早速溶かしていきましょうか。今回使っているヒーターはこいつです。
溶けるは溶けるんですが、鉛フリーはんだだと厳しいかなと思います。

使い方は簡単で、SETボタンを押したら△のボタンで温度を上げるだけです。SV(緑色の方)が設定温度で、PV(赤色の温度)が現在の温度です。
とりあえずおすすめとしては、まず220度に設定して、160度くらいになったら30秒くらい放置。
その後400度に設定して、溶けたことを確認したら、20度とかに設定するといい感じかなと思います。(プロファイルとかなんも守ってないですけど、個人開発だし汗)

こいつ冷えるのがめちゃくちゃおそいので、上にヒートシンク置きまくって強制的に冷やしています。(これで2~3度/sくらいのペースで下がりますかね)

こんな感じで実装できていればOKです。

ICとかはブリッジしていないかちゃんと確認しましょう。
(Google Pixel画質いいな…)

ディスプレイ側もこんな感じでリフローしました。
(スルーホール部品は普通に手ハンダです)
PCBWay様のステンシルが非常に高品質でよかったです。
(実は制御基板は、NPNトランジスタつけるところにPNPトランジスタつけるミスをして全部作り直しています泣)
プログラムを書いていく
プログラミングは頑張りました!
動くまで大変でした。
(ここにソースコードファイルをつける)
動かす!

うごきました!ここまで長かった…
本当は…
本当は、表示機をあと3つ作って配線することにより、128ピクセルx32ピクセルになり、電車の方向幕と同じようなものが作れるようになります。そこまでつくる予定だったのですが、この先の予定が忙しすぎるので一旦ここまでで書き記しておこうかなということで…
あと別のプロジェクトではあるのですが、なんとCH32V203のROMだけで方向幕40個くらいは格納できるということが発覚してしまったので、SDはいらないのかなと。(正直40個分のデータ処理するほうが大変でした)
というかあれでしたね。EEPROMを乗せるべきだったと思いましたね。SD本当に初期化がめんどくさい。

コメント