2016年4月22日金曜日

バーサライタの回路について

こんにちは


久しぶりの投稿となってしまいました。


さて、先日コメントを頂いたので簡単ですが回路図を書いてみました。しかし、回路図エディタで描いたわけではなく、powerpointの図なので、わかりにくい部分はご了承願います。






 回路としては、このような構成になっています。まず、今回は32×32のドットマトリクスを構成しているため、最低でも64個の入力ピンが必要です。しかし、Arduinoにはそこまでのピンはないので、直列のデータを、並列のデータに変換するシフトレジスタを使っています。しかし、シフトレジスタには流せる電流がそこまで多くないのでトランジスタアレイを使って信号を増幅して使っています。ただ、今回は32×32と非常に多くのドットマトリクスを構成しているためこのようになっていますが、8×8や16×16程度のドットマトリクスであれば、トランジスタアレイは必要ないかもしれません。

 ただトランジスタアレイを使うもう一つのメリットとしては、LEDにかかる電圧をシフトレジスタに入れる5Vとは変えることができるというものがあります。Arduinoには5Vのピンが存在しますが、これもそこまで多くの電流を流せるわけではありません。一方トランジスタアレイを使えば、バッテリーの電源を直につなぐことができるため、新たな電源回路を作る必要がないです。そのような理由から、トランジスタアレイを使っています。

 また、トランジスタアレイには、電流を流すものと、電流を引き込むものの二種類が存在します。今回使ったドットマトリクスではColumn側がアノード、Row側がカソードのタイプとなっているので、Column側にトランジスタアレイのソースドライバを、Row側にシンクドライバを接続します。また、LED用の電流の制限抵抗に関しては、入力する電圧とドットマトリクスの定格に応じて設定する必要があります。今回回路図には入れていませんが、ソースドライバとドットマトリクスの間に入れています。またLEDは20[mA]が定格のものが多いですが、基本的には1[mA]も流せば十分に光りますし、5[mA]程度に設定すれば非常に明るくなると思います。これはColumnあるいはRow側のどちらかに入れれば大丈夫ですが、入れた抵抗の部分によって少しプログラムの作成方法に違いが出ます。ちなみに私はColumn側に抵抗を入れています。

 最後にシフトレジスタについてですが、これは一言でいうと直列のデータを並列に変換するものです。詳しくはデータシートを見ていただきたいのですが、これにはデータ・クロック・ラッチ・リセットの4つの入力ピンと5[V]、GNDと8つの出力ピンとオーバーしたデータを出力するピンがついています。このデータの入力ピンにオーバーしたデータを出力するピンを接続することで、出力ピンの数を増やすことができます。基本的にはクロックの立ち上げと同時にデータを読み込み、32個のデータを送り終えたところでラッチ信号を出すと、そのデータがすべて出力されます。この出力は次のデータのラッチ信号が出るまで保持してくれます。またリセット信号を入力することですべてのデータをリセットすることが可能となります。ただし、プログラムの作り方によっては、リセット信号は必要ありません。ただし使ったほうが、全消灯を行う時間を短縮することができます。

 また、自分がユニバーサル基板で回路を作って失敗したと感じた点について説明していきたいと思います。


1.32×32のドットマトリクスを作るのに8×8のドットマトリクスを使ったこと
2.ユニバーサル基板に両面のものを使ったこと


 まずはじめの、8×8のドットマトリクスを使ったことについてですが、ドットマトリクスを大きくするためにはすべての列と行のピンを接続する必要があります。これは列に8×4×3=96本、行にも同様に96本のジャンパ線が必要になります。つまり32×32のドットマトリクスを作成するためだけに192本という膨大な配線が必要となります。はんだ付けはこれだけではないですが、はんだ付け作業に1ヶ月近くかかってしまいました。これを16×16のドットマトリクス4つを用いた場合は16×2×2=64本と非常に平和な配線の数に抑えることができます。もし作成される方がおられましたら、できる限りLEDの数が多いドットマトリクスを用意することをお勧めします。
 次の、ユニバーサル基板に両面基板を使ったことに関してですが、これには利点と欠点があります。まず利点としてはランドが両面にあるため、配線を間違えて何度もはんだ付けをやり直してもランドがはがれにくいというものです。これは、はんだ付けのミスが多い場合は非常に有効です。対して欠点としては両面にランドがあるため、基板のはんだ面に錫メッキ線を使った場合、部品面のジャンパに錫メッキ線がつかえないというものです。これは配線の数が多くなってくるとすべての表面のジャンパを被覆線で行わなくてはならず、非常に見づらくなります。今回は奇跡的に、一発で動作したので良かったのですが、デバッグのしやすさを考えると片面基板のほうが良いのではないかと考えています。また、もっと極論を言えば、プリント基板を作成してから作り始めたほうが、最終的な時間の短縮になるように思います。
 最後に使った主な部品を示しておきます。
素子 型番 個数
8bitシフトレジスタ SN74HC595N 8
トランジスタアレイ(ソースドライバ) TD62783APG 4
トランジスタアレイ(シンクドライバ) TD62083APG 4
ドットマトリクス MNA20SR092G 16
抵抗 700Ω程度 32

もし、何かご質問等がありましたら、コメントよりお願いいたします。


1 件のコメント:

  1. 丁寧な説明 細かいところまでわかりやすくまとめてくださり有難うございます。
    自分なりに考えて作ってみたいと思います。

    返信削除