ニキシー管時計製作記 Part 6です。
今回はニキシー管の制御についてご紹介します。
Arduinoによるダイナミック点灯制御
今回製作するニキシー管時計は、ニキシー管ドライバICを1つ使用し、ダイナミック点灯で6桁の点灯を行います。そのダイナミック点灯の制御はArduino UNOにより行います。
今回は具体的なプログラムのご紹介の前に、制御の方式についてご紹介します。
ダイナミック点灯の方式
「ダイナミック点灯」という方式は6桁あるニキシー管を1個ずつ点灯し、人間の目では認識できない速さで6桁順番に点灯することで6桁全てが点灯している様に見せる方式です。分身の術です。
では、具体的にどの様に分身させるか考える必要があります。
チラつかず、明るさが充分なデューティ比を探る
ダイナミック点灯をする際には、人間の目には見えない速さで表示桁を切り替えます。この際に「点灯と消灯の時間」がうまくないとチラついている様に見えます。点灯と消灯の時間について、イメージを下図に示します。
この図は電圧が「H」レベルの時に点灯し、「L」レベルの時に消灯するイメージです。点灯の時間をTON,消灯の時間をTOFF,6桁全体の時間をTとしています。6桁全体に対して1桁が点灯している時間をデューティ比と言います。
チラつかない様に全体の時間Tと点灯時間TONをどんな値にするかということを考えます。
また、「TONの時間とニキシー管の明るさ(電流)をかけた大きさ」、上記の図だとHレベルの高さとTONの時間をかけた面積の大きさがニキシー管の明るさに関わってきます。
このため、ダイナミック点灯の周期を早くすると「チラつきは無いけれど、ニキシー管が暗い」という状態になり得ます。よって、このバランスを調整します。
余談ですが、人間の目には違和感なく見えていても、カメラで撮影するとチラついて見えることがあります。カメラのほうが人間よりフレームレートが上だからですね。
点灯時間は約2.4ms
前回までに組み上がった基板で点灯テストを行いながら、ダイナミック点灯を調整しました。
今回の製作では
- TON : 2.4ms
- TOFF : 15.6ms
で落ち着きました。
イメージを下図に示します。
6桁全体を1周する時間が18msで、そのうち1桁が点灯している時間TONが2.4msです。
1桁が点灯してから、次の桁が点灯するまでの時間が3msです。2.4ms点灯した後に0.6msの消灯時間(スキマ時間)を設けています。これは、次に説明する「ゴースト」の対策です。
ゴーストの対策
LEDの7セグ等をダイナミック点灯する場合にはそれほど目立って気にならないけれど、ニキシー管のダイナミック点灯では顕著に現れる問題があります。
「ゴースト」という現象です。
これは本来表示させたい数字とは別に、隣の桁の数字がぼんやりと表示されてしまう現象です。
この問題への対策として、「1桁表示したら次の桁に移動する前に消灯時間を設ける」ということをします。それが、上図のスキマ時間0.6msです。今回は0.6msとしていますが、これも調整値です。
また、単にスキマ時間を設けるだけではなく、ニキシー管の電源遮断の制御もポイントです。「ソースを最初に遮断し、一定時間経過後にシンクを切り替える」という制御がゴースト対策に有効と思われます。ニキシー管に溜まったゴーストになり得る電荷をしっかりと逃してあげるという原理を想像しています(この原理が正しいか確証はありません)。
今回はニキシー管のダイナミック点灯制御について、その方式をご紹介しました。
次回以降はこのダイナミック点灯を組み込んだ上で1つの時計とする方式についてご紹介したいと思います。
それでは、次回もよろしくお願いします。
コメント