#1 ダイナミック点灯

記事
IT・テクノロジー
久しぶりに7セグメントモジュール(通称:7セグ)を触りました。

7セグとはその名の通り7つのセグメントを持ち、0~9の数字を表示するための表示器の一つです。

身の回りには多くの製品で7セグが使われています。炊飯器、デジタル時計、DVDレコーダーにエアコンのリモコンにまで。。。

そんな身近な7セグですが、当然マイコンで制御することができます。

といっても、7セグの中身は7つのLED(ドットポイント含め8つ)が入っているだけで、電子工作では身近な砲弾型のLEDと何ら変わりはありません。

なのでマイコンで制御するといっても、数字を表示するだけなら出力ポートを7つ用意すれば解決です。

ですが、、、もし”10”とか”100”とか表示したい。。となったら、当然7セグも2個、3個と必要になってきます。

そうなるとマイコンの出力ポートもかなりの数が必要になってきます。

そこでよく使われる解決法として、ダイナミック点灯があります。

ダイナミック点灯制御は簡単に言うと、目にもとまらぬ速さで1つずつ順番に7セグを点灯させ、あたかも複数の7セグすべてが同時に点灯しているかのように見せかける方法です。
わかりづらいですね。。。

例えば3つの7セグを使い、”123”と表示するとしましょう。
1個目の7セグは”1”、2個目は”2”、3個目は”3”とそれぞれ表示します。
ダイナミック点灯は、めちゃくちゃ短い時間で
1個目だけ点灯 ⇒ 2個目だけ点灯 ⇒ 3個目だけ点灯 ⇒ 1個目だけ点灯 ⇒ 2個目だけ...と表示を繰り返します。 
ちょっと制御部分は後回しにして、、、
マイコンと7セグ間の配線について先に説明しましょう。

3つの7セグの各セグメントはすべてつなげてしまいましょう。
そして、使用する7セグがアノードコモンとすると、コモン端子は電源ではなくマイコンの出力ポートにつなげましょう。

これで現在マイコンで使用している出力ポートは、
各セグメントにつなぐための7つの出力ポートと、7セグ3つ分コモン端子用の出力ポートの合計10本です。
ダイナミック点灯を使用せずポートに直接接続する場合だと3×7で21本必要だったため、必要な出力ポートは半分以下になっています。

具体的な制御方法ですが、
1ms周期のタイマー割り込みを使用すると簡単です。
1回目にタイマー割り込みに入った時、1個目の7セグだけ表示するため、ほかのコモン端子はLOW出力にします。1個目の7セグのコモン端子だけHIGH出力します。表示したい数字が”1”なら、セグメントが”1”となるように7つの出力ポートを制御します。
次にタイマー割り込みに入った時は、2個目の7セグだけを表示します。
このときコモン端子は当然2個目の7セグだけHIGH出力にし、各セグメント制御は”2”となるようにします。
さらに次のタイマー割り込みに入った時は、3個目だけ。。。
さらにその次は1個目だけ。。。という感じです。

イメージは”目にもとまらぬ速さ”です。
ダイナミック点灯をさせている機器をスローモーションカメラで撮影すると、
複数の7セグが順番に1つずつ点灯していることがわかります。

とりあえずマイコンはめちゃくちゃ早く動かすことができる。ということです。

しかしデメリットもあるのでご注意を。ダイナミック点灯は各7せぐが高速点滅していることになります。そのためちょっと暗くなります。そのため桁数が多くなればなるほど点滅のうち、消灯している時間が長くなるためかなり暗くなります。

ダイナミック点灯を使ってもマイコンのポートが足りない場合もあります。
そのようなときはシフトレジスタやラインデコーダなどの便利なICがあります。これらをうまく用いるともっとポートを節約できます。




今回はマイコンは5V駆動で、7セグは12Vで点灯させる必要がありました。
さらに出力ポートが足りないのでダイナミック点灯も使用し、シフトレジスタも使いました。
マイコンで12Vは直接制御できないため、トランジスタで制御しています。
回路図を整理しないと。。。









サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す