【My電子工作】(No.006)2012-04-28 21:17

= お願い

知人の依頼で、【My電子工作】のバックナンバーを掲載しています。
自分(hiroon)は受け取った原稿を掲載しているだけなので、内容に関する質問はツイートしている本人に対してお願いします。

= 【My電子工作】(No.006) 

【My電子工作(6-00)】2012年4月24日 - 21:48 YoruFukurouから
(週日編) 通算第6話は、先週の金曜日の夜にツイートするはずだった話題。
お題は「7セグメントLEDシールド」 (7Segment LED Shield)。
写真を先行してアップロードしつつ順次ツイート。
これから帰宅と夕食をはさんで夜中まで散発的に実施!


【My電子工作(6-01)】
LEDを点灯する、という行為は Arduino利用者には良い練習課題であり実用的。
その中でも7セグメントLEDやマトリクスLEDはいたるところで話題に。
加えて秋月が超大型の16セグメントLEDを安価に発売開始したので、こいつも話題になる予感。


【My電子工作(6-02)】
ドットマトリクスLEDは、秋月がOEM販売している2,500円のモジュール http://bit.ly/qgfqKU が便利。
16x16ドットのLEDが2個をシフトレジスタで駆動するので6ピン(3ピン使った同期転送が2系統)しか消費しない。


【My電子工作(6-03)】
秋月のモジュールをarduinoで駆動するなら、arms22さんの超有名な「なんでも作っちゃう、かも。」http://bit.ly/IelTR2 にある記事&ライブラリ http://bit.ly/IelVZa が重要。
いつもとても参考にしています。
多謝。


【My電子工作(6-04)】
arduinoのライブラリは、0023までのものは最新の1.0では動かない。
#ifdef…を追加すれば動くものも多いが、過去に作られたものが未来(最近)の変更に対応できるはずもなし。
放置も多い中、arms22さんは順次対応。
対応済みは1.0対応との表記あり。


【My電子工作(6-05)】
最近arduinoを始めた人の中には、0023以前のライブラリを1.0で動かそうとして悩んでいる人もいるはず。
で、#ifdef だけでよいかというと、実は、プリプリプロセッサにバグがいる。
arduino #ifdef bug back で要検索。


【My電子工作(6-06)】
Arduinoは、最低限 setup() と loop() だけ書けば、「プリプリプロセッサ」がコードを書き足してgccに渡す。
で、gccがプリプロセッサを呼び出して処理してからコンパイルを始める。
このプリプリプロセッサ(正式名ではない)が時に悪さを。


【My電子工作(6-07)】
プリプリというと、プリンセス・プリンセスな世代なのだが、今の若い人にはわからないだろうなぁ。
でも、再結成とかいう話も。
当時のPVを今見るとメイク濃いよなぁ。
あ、なんとかつなげようと思ったが話が元にもどらん。m(_ _)m


【My電子工作(6-08)】
マトリクスLEDを駆動して通称「居酒屋の看板」を作る話や、マトリクスLEDをはがして駆動基板を別途活用する話は4-5回先にする予定。
電光掲示板は、(特に日本語の)フォントをどっからひっぱるかが常に問題に。
自分は、X11のフォントサーバを使って…以下略^^;


【My電子工作(6-09)】
ちっとも7セグメントLEDに話が到達しないうちに、帰宅しないとだめそうな時刻に。
続きは日付が変わるころから再開。


【My電子工作(6-10)】
arduinoの標準品にはI/Oピンが20ピン。
7セグメントLEDは小数点を含めるとLEDが8つ。
なのでスタティックドライブ(以下、静的駆動)すると2桁しか駆動できない。
そこでダイナミックドライブ(以下、動的駆動)をすることに。


【My電子工作(6-11)】
ロジックICを追加しないとしたら、セグメント駆動に8ピン、桁駆動に12ピン使えるので、最大で12桁まで対応可能。
ロジックIC使ってよいのなら、12ピン全部使って最大4096桁まで駆動できるけど、そんなのはもちろんロジック回路が多くなりすぎて非現実的。


【My電子工作(6-12)】
多桁LEDは、シフトレジスタを用いて駆動するのが現実的。
セグメントもシフトレジスタ経由でドライブすれば、桁数によらず最低2ピンで駆動可能。
必要なロジックICも桁数相応。こ
こで74HC164や74HC595そしてその親戚筋の出番が到来。


【My電子工作(6-13)】
ツイート再開。
7セグメントLEDやマトリクスLEDをシフトレジスタを使って駆動する場合74HC164や74HC595を使う。
ラッチ機能がある595を使うのが本当なんだろうけど、164を使う場合も多い。


【My電子工作(6-14)】
arduinoでは、shiftOut() が用意されているので、シフトレジスタの扱いは楽。
arduinoでの74HC595の使い方 → http://bit.ly/K7oXy1


【My電子工作(6-15)】
ところで、8x8ドットマトリクスLEDと、動的駆動を前提とした7セグメントLED×8桁は、回路的には同一。
なので8x8マトリクスLEDの駆動例は8桁7セグメントLEDの駆動に適用できるし、その逆も可。


【My電子工作(6-16)】
7セグLEDを動的駆動するには3つの流儀がありそう。
まず桁とセグメントの一方はシフトレジスタで駆動し、もう一方は直接駆動する方法。
16セグメントLEDの例になるけど武蔵野電波さんのわかりやすい解説→ http://bit.ly/I3Lnjz


【My電子工作(6-17)】
武蔵野電波さんの例では、セグメント点灯に74AC164を使っているので、8桁の16セグメントLED(LEDは全部で128個)を駆動するのに、セグメント点灯に2ピンで済み,桁駆動の8ピンとあわせて合計10ピンを消費。


【My電子工作(6-18)】
2つ目と3つ目の方法は、セグメントも桁もシフトレジスタを使う方法。
この方法には、セグメントと桁を独立したシフトレジスタで駆動する方法と、セグメントと桁のシフトレジスタをカスケード接続(?)して一括駆動する方法がある。


【My電子工作(6-19)】
PSoCでドットマトリクスLEDを駆動する例だが http://bit.ly/JmyQeY では、桁とセグメントを別々のシフトレジスタで駆動。
シフトレジスタのクロックは共通、データ線は別々なので全部で3ピンを消費。
クロックも別として4ピン消費の例もある。


【My電子工作(6-20)】
カスケード接続したシフトレジスタでセグメントも桁もまとめて制御する3つ目の方法だとクロックとデータの2ピンで多桁7セグを駆動可能。
74HC595使うならラッチ用にもう1ピン。
秋月のマトリクスモジュールの製造元が公開している情報が参考に。
URLは次ツイートで


【My電子工作(6-21)】
秋月に電光掲示板モジュール http://bit.ly/dQaY6B をOEMしているハンブルソフトさんの技術情報ページ http://bit.ly/JHsdVy とLEDモジュールの回路図 http://bit.ly/JHsfNm すごい貴重&重要!


【My電子工作(6-22)】
74HC595ベースのこの回路は、16桁の7セグメントLEDを上下2段に配置したモジュールが左右に2つ並んでいると思えばよい。
クロック、ラッチ、出力許可(OE)は共有するも、データ線はセグメント駆動、左16桁駆動、右16桁駆動で独立。
よって全部で6ピン使用。


【My電子工作(6-23)】
つまり512個のLED(=16x16x2)を6ピンで駆動可。
このモジュールは数珠つなぎでき、仮に4つ接続すれば計2048個のLEDを6ピンで制御可。
桁駆動担当のTB62706BFは、74HC595+定電流駆動回路的な、便利なLEDドライバ。
詳細情報要検索。


【My電子工作(6-24)】
My Handmade Shield with Four 7segment LEDs and Four Push Buttons. (A slot machine like sketch is ready :-)
http://pic.twitter.com/UAdGo0Gj


【My電子工作(6-25)】
The Back Side of "7seg" Shield (A green module has a dynamic drive circuit on 1.27mm pitch universal board)
http://pic.twitter.com/jP6nH6yg


【My電子工作(6-26)】
The Back Side of My "7seg" Shield and Dynamic Drive Module (You see two 74HC164s on the green, right ?f)
http://pic.twitter.com/dHwQdSLT

【My電子工作(6-27)】
This "7seg" Module Can Also Work with Static Drive Module (right) (It's smaller than dynamic one (left))
http://pic.twitter.com/Oiz56m5Q

【My電子工作(6-28)】
The "7seg" Module with Static Drive Module (It's smaller but eats many I/O pins :-)
http://pic.twitter.com/pY2OW2uz


【My電子工作(6-29)】
Another Multi "7seg" Module on A Universal Shield for Arduino Mega (but has a regular Arduino underneath)
http://pic.twitter.com/DoLTVQrh


【My電子工作(6-30)】
たくさんつぶやいたけれど、まだ話が続きそう。
でも、長くなりすぎ&時間切れ。
続編は、さきほどアップした写真の説明から第7話としてスタートする予定。

= --

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://hiroon.asablo.jp/blog/2012/04/28/6427932/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。