[トップページへ戻る]

AVR ATtiny2313 7セグ4桁ボード〜そこ(7セグ)んとこ、詳しく

2008年9月製作/9〜10月記事 ※2013年2月 ページデザイン変更

前回はAVRの開発環境を整えて、ATtiny2313のテストボードを製作し、簡単なソフトでLEDの点灯とスイッチを操作する実験をしました。このくらいの規模のテストボードでも、思い浮かんだアイデアはまずまずの形になって動作します。感動します。

だんだんわかってくると欲が出ます。3個のLEDでは表現の幅が狭く、比較的単純なアプリにとどまります。そこで今度は、「少し上等な」ボードを作ることにします。このボードは7セグLEDを使って4桁の数字が表現できます。グッと応用が広がりますよ。

この回ではまず、7セグLED(通称 7セグ)がどんな部品なのか簡単に説明します。
次に、7セグをマイコンで点灯させる方法を説明します。ここがキモです。
最後に、ボードを設計するときのポイントを紹介します。
設計した回路の検証として、ブレッドボード上で7セグを点灯させた動画も用意しました。
本番の製作作業の紹介は次回です。


7セグの仕組みと種類
7セグの仕組み
ATtiny2313テストボードで使った3つのLED、その中身は図のようになっています(左端、赤色LEDの図)。
LEDは豆電球とは違い、電流を流す向きが決まっています。工作前の部品は足の長さが違っていて、長い方をアノード、短い方をカソードと呼びます。電流が流れる向きで言ったらアノードが+側、カソードが−側です。ちょうど記号の矢印の向きです。逆向きでは光りません。

7セグは棒線状の区切り(セグメント)が7個で数字を形作っています。それで7セグと呼ばれます。右下の点は小数点を表します。セグメント1つ1つは、実は普通のLEDと同じです。7セグは8個のLEDを寄せ集めただけなのです。

7セグのデータシート(部品の仕様書)では、メーカーや型番によらず普通は上から時計回りにA,B,C,D,E,F,Gと名前が振られます。小数点はDP(Decimal Point)です。
部品から生えてるピンとセグメントの対応には規格がないので、メーカーや型番によってバラバラです。データシートのピンアサイン一覧表が重要になります。データシートがなくても実物から手探りでピンアサインを調べることはできますが、面倒です。

7セグの種類
7セグの正体はLEDを8個寄せ集めたものです。部品からは8x2=16本の足が出ることになります。しかし本数が多いと扱いが不便なので、実際はまとめられる足を1本にまとめて製造されます。
アノードを共通化したものがアノードコモン、カソードを共通化したものがカソードコモンです。

メーカーは大抵、同じ型番でアノードコモンとカソードコモンの両方を製造していて、型番の一部にA,K(C)など付けて区別します。
どちらを使うかは回路の設計者次第です。逆に、どちらの部品が手に入ったかで回路が決まることにもなります。どうしても迷ったらカソードコモンをお勧めします。理由は後ほど。

7セグの駆動方式

マイコンで7セグを駆動する(光らせる)には定番のやり方があります。ATtiny2313に限らずAVR全般、PIC他どのマイコンでも同じです。
左図はマイコンのポートに7セグをつなげた図です。
マイコンでは電流の入出力のための端子をポートと呼びます。(*)

7セグが1個の場合、通常のLEDが8個(A〜GとDP)つながってるのと同じことです。コモンに電流を流し、A〜DPに文字の形になるよう電流を流せばその形で7セグは光ります。光を消すには全部のI/Oピンの電流を止めてもいいですし、コモンだけ止めても消えます。
7セグが2個以上の場合、2つの駆動方式があります。「スタティックドライブ」「ダイナミックドライブ」。例として、それぞれの方式で7セグを3個つなげてみましょう。

(*)…ATtiny2313には入出力に使えるピンが18本あって、グループ分けされています。
A0〜A2、B0〜B7、D0〜D6です(Cはない)。A,B,Dがポート名で、数字はビットを表します。
3ビットのAポート、8ビットのBポート、Dポートは7ビット、と言ったりします。
ですから厳密にはATtiny2313のポートは3個ということになるのですが、以降の記事では
入出力ピン1つ1つを(うっかりして)ポートと言うことがあります。通常はI/Oピンと言ったりします。

スタティックドライブ
7セグが1個の場合と同様、3個そのままマイコンにつなぎます。どの桁もコモンに電流を流し、A〜DPにはそれぞれ表示したい文字の形でI/Oピンに電流を流します。
いつでも全部の桁が点灯しているので、スタティックドライブと呼びます。ダイナミックドライブの説明を読むと、この呼び名にピン!と来ます。
スタティックドライブのメリットは、光らせ方が7セグ1個の場合と何も変わらず、配線も簡単なことです。しかし困ったデメリットがあります。
1つめ。
3桁でI/Oピンが(8+1)x3=27個も必要で、7セグを増やすごとにI/Oピンが9個必要です。そんなに沢山のI/Oピンを持つマイコンはありません。
2つめ。
当たり前ですが、消費電力が7セグ3個分です。7セグを増やすごとに消費電力が増えます。乾電池で動かすマイコン機器では深刻な問題です。※パルス点灯という方法で解決できますが、ここでは説明しません。

ダイナミックドライブ
現実問題として、ポピュラーなマイコンのI/Oピン数は20〜40個前後で、これで何桁かの7セグを駆動しなければなりません。3個の7セグの、コモン以外の端子をそれぞれ1まとめにし、それらをI/Oピンに接続します。コモンは個別に接続します。マイコンに必要なI/Oピン数は8+(1x3)=11個です。7セグを増やしても、必要なI/Oピン数はコモンの分が1個増えるだけです。
このようなつなぎ方にすることでI/Oピン数不足は解決しますが、代わりに光らせ方が面倒になります。
3桁の数字「123」(ひゃくにじゅうさん)を点灯してみましょう。

手順1:
1桁目のコモンのI/Oピンに電流を流し、A〜DPをつないだI/Oピンに「1」の形になるよう電流を流します。
このとき2桁目、3桁目の7セグにも「1」の形が送られますが、マイコンは2桁目、3桁目のコモンの電流を止めているので光るのは1桁目だけです。
手順2:
コモンのI/Oピンを2桁目に切り替えて電流を流し、A〜DPをつないだI/Oピンに「2」の形になるよう電流を流します。
2桁目だけが「2」の形に光ります。
手順3:
コモンのI/Oピンを3桁目に切り替えて電流を流し、A〜DPをつないだI/Oピンに「3」の形になるよう電流を流します。
3桁目だけが「3」の形に光ります。
. 手順4:
コモンのI/Oピンを1桁目に切り替えて、手順1から繰り返します。

……以上の手順を高速に行えば、人間の目には残像現象によって3桁同時に点灯してるように見えます。
「1」「2」「3」(いち、に、さん)ではなく「123」(ひゃくにじゅうさん)です。インチキじゃないです。
このように、点灯する桁が常に変化しているので、この方式をダイナミックドライブと呼びます。

ダイナミックドライブのメリットは、スタティックドライブのデメリットの逆です。
1つめ。
必要なI/Oピン数が少なくて済む。
2つめ。
点灯してるのは常に1桁なので、消費電力も1桁分で済む。

デメリットもあります。
1つめ。
配線が複雑になります。プリント基板ではなく手作業で配線してみると、思ったより大変であることがわかります(←実感がこもってます)。
2つめ。
スタティックドライブに比べて全体の明るさが若干暗くなります。3桁点いてるように見えても瞬間的にはどれか1桁しか点いてないわけですから。これは、桁の切り替え時間をミリ秒単位で調節したり(残像現象を大いに利用する)、超高輝度タイプの7セグを使えば改善します。

実際にやってみた感想
7セグを使ったマイコン機器の多くのはダイナミックドライブ方式を採用しています。I/Oピン数の点からこれしかないでしょう。ソフトウェア的な複雑さは、スタティックドライブとダイナミックドライブとであまり変わらない気がします。私がやってみた感想です。
ATtiny2313は20ピンのマイコンで、最大18個のI/Oピンが使えます(残り2つはVCCとGND)。7セグを4桁にしても、まだスイッチを取り付けられる余裕があります。

ところで、1個のマイコンがダイナミックドライブで7セグを駆動するとき、何桁まで点灯できるのでしょうか。もちろんポートに割り当てられる個数までですが、その範囲で考えても7セグの性能やソフトウェア、はたまたマイコンの動作クロックにもよります。実際に点灯させてみて、明るさとちらつきの影響を見ながら桁数を決めるしかないでしょう。

写真の通り、7セグ4桁ボードはATtiny2313の1MHz動作(内部発振器で8MHzの8分周)で余裕の動作、明るさです。「6桁は行けるが8桁は苦しいかな」といったところです。感覚的な話ですが。

※ダイナミックドライブで動作しているが、高速度カメラでもないと「1桁しか点灯していない状態」は捉えられないと思う。


7セグ4桁ボード設計のポイント
複数桁の7セグを駆動する方法がわかったところで、次はそれを実現する回路を考えます。7セグがアノードコモンかカソードコモンかで回路は若干違います。始めにカソードコモンの7セグで回路を考え、次にそれをアノードコモンの7セグで置き換えてみましょう。

カソードコモンの7セグを使った回路
LED(7セグの各セグメント)に流す電流は通常20mAまでとします。実用的な明るさを得るには10〜15mAでよく、より明るさを求める場合にそれ以上となるでしょうか。5mAでも点灯しますが明るい部屋では目立ちません。※高輝度タイプなら5mAでも明るく見えます。

いま、7セグのA〜DPのセグメントに15mA流すとします。「8.」の形で点灯です。「7セグの駆動方式」の説明図のように配線すると、コモンのI/Oピンには120mA流れ込むことになります。マイコンのI/Oピンに流せる電流の最大値は仕様で決まっています。ATtiny2313のデータシートで絶対最大定格を見ると、I/Oピンに流せる電流は40mAとなっています。これだと15mAを出力するのは問題ないですが、120mAを受けることはできません。

I/Oピンに流せる電流は小さな値までです。しかし7セグを駆動するには大きな電流を制御しなければなりません。こういうときはトランジスタを使います。トランジスタの働きは「電流の増幅」「電気的なスイッチ」で、この場面では小さな電流で大きな電流を制御するスイッチとして用います。

7セグのコモンの端子と、コモンを受けてたI/Oピンの間に、トランジスタをつなげます。I/Oピンから(小さな)電流を出力すると、7セグのコモン端子に集まった120mAの(大きな)電流はGNDへ流れて、7セグは点灯します。トランジスタのベース電流は数mA〜10数mAでよいですから、ATtiny2313の制限40mAを超えずに済みます。
ここで必要なトランジスタはNPN型です。定番の2SC1815を使うことにしました。データシートを見るとコレクタ電流の上限は150mAなので、120mA流すのはセーフ。

図には描いていませんが、実際の回路には電流制限抵抗が必要です。LEDや、トランジスタのベースに大きな電流を流すと焼けて壊れます。それで、LEDに15mAが、ベース電流に数mA〜10数mAが流れるよう(それ以上流れないよう)、抵抗で電流の大きさを制限するのです。抵抗値の計算方法は、検索サイトから「LED 電流制限抵抗」で検索してください。

※実はATtiny2313のDC特性の注意書きに、I/Oピンから出力する電流の合計はH/Lとも60mAを超えるべきではないとあります。が、目を瞑ります。

アノードコモンの7セグを使った回路
アノードコモンの7セグの場合、配線はカソードコモンとほぼ同じですが、電流は逆向きになります。つまりI/Oピンの入出力の向きを逆にするわけですが、これはソフトウェアで設定するものなので、I/Oピンに何か部品を取り付けたりはしません。

コモンにつないだI/Oピンから大電流(120mA)を出力できない事情はカソードコモンの回路でした説明の通りですから(40mAの制限のこと)、やはりトランジスタを使います。ただしトランジスタはPNP型にして、電源ラインから電流を取り出すようにします。
PNP型のトランジスタは、ベースから小さい電流(数mA〜10数mA)を吸い出して、大きな電流を制御します。7セグのコモンに流れ込んだ電流は各セグメントに分かれてI/Oピンに流れ込みます。

アノードコモンでももちろん、各セグメントやトランジスタのベースに電流制限抵抗が必要です。しかし、7セグのコモンに流れ込んでくる電流を制限する必要はありません(と言ってもトランジスタのコレクタ電流の上限を超えてはいけませんが)。
仮に「1」の形を点灯するとします。セグメントB,CのI/Oピンにだけ電流を流すので、コモンには15mA x 2 = 30mA必要です。そうするとトランジスタは120mAではなく自動的に30mAを流してくれるのです。

PNP型トランジスタは定番の2SA1015を使うことにしました。これに120mA流すのはセーフです。定格の電流で足りそうなのでダーリントン接続はしません。もしやるならポート側に2SC1815(NPN型)、そのコレクタに2SA1015(PNP型)の接続でOKです。抵抗も忘れずに。

確かな設計のためには
カソードコモンにしろアノードコモンにしろ、狙い通りの設計をするには本当は、トランジスタの性質を理解して厳密な計算をしたり、ATtiny2313のDC特性をデータシートから読み取ったうえで、ブレッドボード上で各ポイントの電流や電圧を測って抵抗値を決めていったりするものでしょう。しかしこの製作では「光ればいい」「見えればいい」「部品が壊れなければいい」で行きます。

実験?実験!
こうやって考えた回路が正しく動作するか検証するため、アノードコモンの場合でブレッドボード上に仮組みしてみました。アノードコモンの7セグを1個(1桁)使います。よって、トランジスタはPNP型(2SA1015)を1個使います。
「8.」の形が1秒間隔で点滅します。テストプログラムのソースは【ここをクリック※拡張子.cを.txtに変更してあります。
動画(YouTubeへ)
AVR ATtiny2313 7セグ点灯回路を検証
7セグ点灯回路を検証


テストプログラムの説明
回路上、I/Oピンで電流を受ける形になりますが、ソフトウェアの記述としてはI/Oピンの入出力方向を出力に設定します。そしてLレベルを出力すれば電流を受け(点灯)、Hレベルを出力すれば電流を止める(消灯)、というわけです。

ATtiny2313への書き込み
ブレッドボード上にISPの6ピンは配線しません。前回製作したテストボードにATtiny2313をセットして今回のソフトを書き込み、それを引っこ抜いてブレッドボードにセットします。

結果
無事点滅しました。セグメントに流れる電流は実測値で8.9〜9.4mAでした。コレクタ電流は63〜64mA、ベース電流は0.8〜0.9mAでした。全体的にもっと電流を多くしたい気もしますが良しとします。(*)
ただ、赤色の7セグはこのくらいの電流でも結構明るく光ります。その様子は動画を見てください。型番や色が違う別の7セグを使うと値は若干変わります。
(*)…コレクタの電位=4.2V、I/OピンのLレベル=0.2Vでした。
このときの7セグのVfを2.0Vとすれば(データシートより推測)、セグメントに流れる電流は
((4.2-0.2)-2.0)V/220Ω=9.1mA …ということで実測値は計算通りの値だったわけです。
ちなみに、回路図でトランジスタに付いている2個の抵抗を 4.7kΩ→1kΩ, 10kΩ→4.7kΩ に変えたところ、
セグメントに流れる電流は11mAになりました。
現状でも十分に明るいので今回の製作は回路図通りで行きます。

参考として
乾電池2本(直列で3V)でも試したところ、セグメントに流れる電流は2.6mAでした。電源の電圧が違うなら抵抗の値も全部変えなければならないところを承知で試したのですが、それでも目立つ光だったのには、さすが赤色の7セグだと思いました。光が濃く見えてむしろ好みかも。同条件で緑色の7セグだと、とても薄い光です。

カソードコモンでは
カソードコモンの回路図はアノードコモンと同じ図面に描いたので、そちらを見てください(上記リンクをクリック)。
テストプログラムは、実はアノードコモンのものがそのまま使えます。アノードコモンの場合は「点灯→消灯→点灯→…」ですが、カソードコモンでは全く同じプログラムで実際の動作が「消灯→点灯→消灯→…」になります。Lレベルを出力で消灯、Hレベルを出力で点灯、だからです。直感的でわかりやすいです。

本番用の(4桁の)回路図は次回、部品一覧表と合わせて紹介します。

部品を減らす工夫
7セグを4桁駆動するにはトランジスタが4個必要です。2SC1815(NPN型)も2SA1015(PNP型)も、簡単に入手できるトランジスタなので、沢山必要でも問題なしです。安いし。
※2013/02 追記 どちらのトランジスタも東芝製はディスコン(生産終了)になってしまいました。適当な同等品で代用してください。

ところでトランジスタにはベース電流の制限抵抗と、ベース〜エミッタ間に渡す抵抗が付きものです。部品点数が増え、配線の手間が掛かります。それで、「トランジスタ+抵抗2個」が一塊になったデジトラ(デジタルトランジスタ)というものがあります。見た目も大きさも2SC1815などとほぼ同じです(若干小さい)。これを使うのもありです。
また、抵抗込みでトランジスタを7〜8個まとめたトランジスタアレイというICがあります。これを使っても組み立ての手間が省けます。いずれにしてもLEDの電流制限抵抗は必要です。

しかしデジトラにしろトランジスタアレイにしろ、NPN型のものはよく売られていますが、PNP型のものは入手しにくいようです。そんなわけでこのページの始めの方、「7セグで迷ったらカソードコモンがお勧め」だったのです。

テストボードとしての工夫

アノードコモンでもカソードコモンでも、様々な形、大きさの7セグがあります。2桁がくっついたものや、ダイナミックドライブで駆動することを前提とした3桁、4桁の7セグもあります。これは桁数分のセグメントが内部配線済みでピン数が少なくなっています。時計表示に使える「18:88」、こんな7セグも面白いです。



いろんな7セグを試せるよう、テストボードは制御部と表示部に分けました。制御ボードにマイコンやトランジスタを載せ、表示ボードに7セグだけを載せ、これらのボードがコネクタで抜き差しできます。
また、表示が見やすくなるよう、表示ボードは制御ボードに垂直に挿すようにしました。カッコイイです。



◆ ◆ ◆
次回は、7セグ4桁ボードの回路図と部品一覧を紹介します。製作のコツも紹介できればと思います。
完成後、最初に試す動作テストプログラムや、応用例として簡単なカウンタも紹介します。
何度も写真が出てきているように、実際に製作して動作していますよ。


(C) 『昼夜逆転』工作室 [トップページへ戻る]
inserted by FC2 system