デジタル時計(Page1) 制作:2007-05-06〜

電子工作の定番、デジタル時計を作ります。表示は液晶ではなくLEDを使用しますが、消費電力が大きいので消費電力を減らす工夫をしてみます。


とりあえず、表示部のイメージ。


時計なので24時間、365日点けっぱなしになります。そのとき気になるのが消費電力。これは東京電力の回し者「でんこちゃん一家」の電気料金。310kWhで¥7136ということは、43Whで¥1となる計算。40ワットの電球を約1時間点灯すれば¥1ってことです。


一番電気を無駄使いしそうなトランスの消費電力を計測。左の小さい方が16V−300mAで約26mA流れています、右の物はちょっと大きくて16V−1Aで41mA流れます。共に2次側に何もつないでいない状態です。理想的なトランスは2次側に何も接続しなければ電力を消費しないはずですが、そうはいかないようです。消費電力は100V×26mA=2600mW=2.6ワット。少ないようですが1年で2.6W×24時間×365日=22776Whとなり、これを43で割ると年間¥529となります。同じ物を3台作る予定なので年間約¥1500、10年で¥15000です。2次側に何も繋がっていない、つまり、何も仕事をしていないトランスに¥15000も食われてしまうのはもったいない限りです。


参考のため、市販の液晶表示タイプの消費電力を測定しようと思いましたが、計測不能でした。電池を抜いてもしばらく動いています。


人がいないときに点灯している必要性はないので、赤外線センサーで人体を検知して人がいないときは表示を消してしまうことにします。これは秋月電子で売っている焦電型赤外線検出器(日本セラミック製 RE210)


日本セラミックのHPのデータシートにサンプルがあるのでこの回路を参考にします。人体(たぶん)を検知して一定時間リレーをONする回路のようです。オペアンプは1個に4個入っているタイプを使います。しかも4個で¥100。


何のために購入したのか忘れてしまったトライアック。これを使って自分自身の電源を切って節電する方法を考えてみます。


人体センサーの実験。人体を検知すると出力が3.5Vになります。左は写真を撮っている自分に反応しています。センサーに入ってくる赤外線の変化を捉えているのでじっとしていると反応しません。変化がないときの出力は0V。反応する距離は約2m。それ以上になると遠すぎて反応しません。消費電力は0.634mA×5V=3.17mW。これなら充電した電気二重層コンデンサーで動かせそうです。


動いているところ <−MOVIE(陰しか見えませんが手をかざしています。白い筒は広角な検知範囲を絞るため)

レンズをつけると検知距離を延ばせます。部屋が狭いので確認できませんでしたがデータシートによると30mまでOKとのこと。レンズはフレネルレンズです。シマシマが見えます。ちょっと大きいのが難点。


ICピッチじゃないみたいです。ユニバーサル基板が使えません。


トライアックの実験


ライトのON/OFF <−MOVIE

トライアックがOFFしているときの消費電力はこのテスターでは計測不能なようです0.010mAを示していますが、少しずつ下がっていきます。トライアック端子の両端の抵抗値をはかると30メガΩ程度なので、消費電力は気にしないでよいレベルです。抵抗値も最初は35MΩほどを示しますが、次第に下がっていくので実際の抵抗値はよくわかりません。


LEDが大きすぎて無料版のEAGLEではダメなことに気づきました。


時計の心臓部はリアルタイムクロックを使います。秋月電子で¥500。


リアルタイムクロックはほぼ計測不能なほど低消費電力ですが、PICは1.5mAも食います。


データシートを見る限り周波数を下げなければならないようです。低周波の水晶の手持ちが無いので購入しないといけません。内部オシレーターやリアルタイムクロックからクロックを取る方法を実験してみましたが1mA以下にはなってくれません。これが正しい仕様でしょうか?消費電力をトータル1mA程度に抑えれば1F(ファラッド)の電気2重層コンデンサに10秒充電して10分程度動かせます。10分で5V−>4Vに電圧が落ちます。


時計なのでアラームも必要です。ブザーでは味気ないのでメロディーICを使うことにしました。これも秋月電子で安く売っている物。携帯のアラームより大きな音で鳴ります。外付け抵抗で再生速度を変更できます。


鳴らしているところ <−MOVIE(映像はいらなかったが... 音がちょっと割れていますがデジカメのサンプリング速度と圧縮率による問題で、実際はもっときれいな音です)

回路図は2SC1815を使うようになっていますが、4Ωのスピーカーを鳴らすと熱くなります。電源電圧5Vで電流は200mA程度流れます。


一枚の基板にすべての部品を乗せるため100Vのトランスも基板取り付けタイプにしました。


電圧監視ICの動作確認。Microchip社製 MCP100。このICは監視する電圧によって種類を選ばなければなりません。4Vちょうどになったときに反応する物が欲しかったのですが、あいにくその電圧の物は製造されていません。これは3V動作の物。10kΩと30kΩの抵抗で分圧して使うことにします。このICの消費電流は45μAしかありませんので分圧抵抗を流れる電流の方がずっと大きくなります。それでも抵抗を流れる電流0.1mAは全体に流れる電流と比べると十分小さい値です。このICは10個で$1しかしませんが、秋葉原では入手できないのでMicrochipDirectで購入。ついでにPICkit2を仕入れて販売し$15の送料を捻出します。安く上げようとすると地味な努力が必要です。写真ではLEDを光らせていますが、高抵抗で分圧したらLEDを光らせるだけの電流は取り出せません。


Cdsの抵抗値を計測。Cdsは大きさには無関係に100Ω(明るいとき)〜10MΩ(真っ暗なとき)と広範囲に抵抗値が変化します。


スリープモードにしてPICの消費電力を下げる実験。左が通常モードで約5.9mA。PIC16F873Aを20MHzクロックで動かしてます。左がスリープモードにしたつもりで約1.3mA。何故が1/5程度にしか下がりません。しかも、電源を入れ直すたびに1.7mAになったりして不安定です。


実験したプログラムはこんなです。最初は通常モードで動いて、1秒後にスリープモードになります。MikroBASICにはスリープ命令がないので、そこだけアセンブラで書いてます。

program Clock_TEST

symbol PORT_OUTPUT   = 0
symbol PORT_INPUT    = 1

symbol LED_TRIS     = TRISB
symbol LED_PORT     = PORTB
symbol LED_BIT      = 0


main:
    '---- initialize -------------------------
    LED_TRIS.LED_BIT = PORT_OUTPUT

    '---- port A digital INPUT-OUTPUT --------
    ADCON1      = %00000110
    ADCON0.ADON = 0

    '---- disable port B pull-up -------------
    OPTION_REG.NOT_RBPU = 1

    CMCON.CM2 = 1
    CMCON.CM1 = 1
    CMCON.CM0 = 1

    Delay_ms(1000)

    asm
       sleep
    end asm

    while(TRUE)
    wend
end.


データシート通りならば1μA程度に電流が下がるはずなのですが...


結局、こんな風にすべてのI/OピンをGNDに落としたら39μAにまで落ちました。それでもデータシート通りではありませんが実用域です。上のプログラムだとRB0ポート以外はすべて入力ピンになっていますが、無接続の入力ピンを残しておいてはいけないみたいです。


下のように、すべてのポートを出力モードにしたら、無接続のピンを残しておいても消費電力が下がってくれました。但し、実測95μAとなって、ちょっと消費電力が増えてしまいました。

program Clock_TEST

symbol PORT_OUTPUT   = 0
symbol PORT_INPUT    = 1

symbol LED_TRIS     = TRISB
symbol LED_PORT     = PORTB
symbol LED_BIT      = 0


main:
    '---- initialize -------------------------
    LED_TRIS.LED_BIT = PORT_OUTPUT
    TRISB = 0x00
    TRISA = 0x00
    TRISC = 0x00

    '---- port A digital INPUT-OUTPUT --------
    ADCON1      = %00000110
    ADCON0.ADON = 0

    '---- disable port B pull-up -------------
    OPTION_REG.NOT_RBPU = 1

    CMCON.CM2 = 1
    CMCON.CM1 = 1
    CMCON.CM0 = 1

    Delay_ms(1000)

    asm
       sleep
    end asm

    while(TRUE)
    wend
end.


途中まで回路図を入力しましたが28ピンのPIC16F873Aでは足の数が不足していることに気づきました。40ピンのPIC16F877に変更です。


16F877でも消費電力の実験。すべて出力ピンにして計測。結果は79μA。電源電圧はもちろん5V。


160×100mmサイズの基板でも両面に配置しないと部品が全部乗りません。中央下にある物は人体センサーのフレネルレンズ。検知範囲が狭いので都合の良い方向に向けられるよう調整機構を付けたので場所を取りすぎている。右上の物はアラーム用のスピーカー、もう少し大きい物を取り付ける予定。


あとで現物を掲載しますが、回路図はこんな混み具合。


薄っぺらなスピーカーと液晶を購入。感光基板を購入し忘れたことに気づいた。液晶は時刻設定やアラーム設定時の表示用。大きい方が40mm、小さい方が36mm。コーンの材質も違う。


40mmの方はちょっと大きい。


上の状態のまま自動配線すると取り付けねじ穴付近にもパターンやビアが出来てしまうので「この部分には配線しないこと」という領域を追加。これはtRestrict、bRestrictレイヤーにポリゴンを書き込んでおくことで可能。自動配線すると右の写真のようにこの領域をよけてくれる。両面感光基板で作ると裏表が正確に合わない可能性もあるのでビアは少し大きめにしてある。


青くした物が取り付けてしまうと部品面のパターンが隠れてしまう物。この部分はスルーホール加工が必要。思ったより少ない。これ以外の部品については両面から半田付けすればスルーホール加工は不要。


レイアウトをちょっと変えて自動配線した。ビアが100個近くあるがこの実装密度ならやむなしか?


ドリルで穴あけするときの位置決め用にPADを配置した部品を作って移動させようとしたら何故か160×100からはみ出ているという警告が出る。左の写真はエラーが出て、これ以上右へスピーカーを移動できない。右の写真はこの状態から45度回転が出来ない。どちらも160×100mmの範囲に収まっているのに変。左の写真の方は160×100mmをはみ出すまで15mm近く余裕があるのに???


最初から45度回転した状態でライブラリーを作っておくとうまくいく。原因よくわからないがEAGLEのBUGってことにして先に進むことにする。


秋葉原へ買い出し。ランニングコストが高いのを知りつつスルピンキットも購入してしまう。連日の暑さのせいで”再度買い出しに来るのはいやだ”という気持ちが先行して必要のない物にも手が伸びる。秋月電子も千石電商も入り口は大きく解放されているので空調があまり効いていない。感光基板は¥1190もする。値上がりしたかな?。P板.comへ50枚発注したときの単価と同じだ。1mm厚のガラスコンポジット基板がお気に入りなのだが両面基板は1.6mmのガラエポしかない。


レイアウトが確定。スルーホール加工をゼロにするためコンデンサはRestrictレイヤーにポリゴンを書き込んでいます。


マスクフィルムを作って感光。しばらくインクジェットプリンターを使用していなかったので、インクが出るようになるまで30分近くクリーニングとテスト印刷を繰り返す。
基板の厚みだけ両側のフィルムに隙間を作らないといけないので定規を挟み込んでフィルムを定規にセロハンテープで止めています。露光時間はいつもの4分20秒。両面なのでひっくり返して、また4分20秒。インクジェットプリンターは熱が加わらないので2枚のシートの穴位置がぴたりと合います。一度使ったOHPフィルムは保存が利かないので捨ててしまいます。このフィルムは1枚¥60ですが、サンハヤトのインクジェットフィルムは一枚¥600もします。異常に高いのですが売れているのでしょうか?


160×100mmの基板も余裕で入る”ペヤング超大盛りカップ焼きそば”の容器。現像時間はちょっと長めでした。両面基板は感光剤が厚く塗ってあるのでしょうか?


エッチング中。両面の銅箔が溶けて次第に裏側が見えてきます。光にかざして裏表のパターンが合っているか確認。合格です。


再度感光、現像し感光剤をすべて除去します。フラックスを塗って乾燥。


後で修正が入ると思うが、とりあえず現時点の回路図とプリント基板ボードレイアウト
clock_alpha.zip へのリンク

約500個の穴空け。下穴空けに使ったのは0.6mmのハイスドリル。ガラエポはこんなに硬かっただろうか?3本がダメになった。超硬ドリルはものすごく高いのでちょっと買う気が起こらない。たまに10本セットの中古安売り品が売っているが売り切れのときが多い。


やはり裏と表は穴位置が若干ずれる。左が表、右が裏。表面から穴あけしているので裏面がずれる。


FRP用のホールカッターを買いました。Monotaroで¥5216。刃物好きなのでつい専用の高い物を買ってしまった。¥3000以上で送料無料というのも要因のひとつ。刃は超硬、2枚刃です。センタードリルの芯が出ていないためかなりぶれます。使用した工具はボール盤、最低速より1段速い回転数(800rpm)で使用。ホールカッターは¥1000台の安い物もありますが切れ味違うんでしょうか?


入り口部分はバリもなくきれいに切れます。出口は若干のバリが出ます。左の写真が入り口で、右の写真が出口。大穴を開けてみるとサンハヤトの感光基板は実験に使用した緑の基板よりかなり硬いのが解ります。HSSのドリルが直ぐダメになるのも解る気がします。


穴開け完了。今までの作品の中で一番大変でした。


失敗!! 同一平面上で押してもダメだ!! 作ってから気づいた。


6カ所で固定する方法。こうやればいいのだがだいぶ大きくなる。


配置してみてもかなり大きい


レンズの固定方法は後回しにして、配線開始。先ずビア代わりにスズメッキ線を通し両面から半田付けして裏と表を繋ぎます。


今回はブレッドボードですべての回路を実験していないので、少しずつ組み立てながら動作確認していきます。100VをON/OFFする電源回路から開始。トランスのみの消費電力は約30mA。小さいわりにこのトランスは消費電力が大きい。自分自身の電源を切ってしまう回路構成のため、100Vに繋いでも動き出しません。赤いボタンのスイッチはそのためのスタートスイッチです。部品を接近させすぎで一部部品同士が干渉しています。量産時にはレイアウトの見直しをします。


とりあえず書き込みのテスト。特に問題なし。


LEDの輝度確認。この8mmのLEDは電源電圧5V、2個直列にして、抵抗も1kΩなのにかなり明るい。横から見ると明るくないが正面から見ると目に焼き付く。右は紙ヤスリで表面を磨りガラス状にしてみた物。秋月電子で100個¥1400。使い切れそうにないが、ばら売りだと1個¥100の物しかない。


PICはデータシート上だと2Vでも動作するようなグラフがあるのに、実際は4V以下になると動作しなくなってしまいます。


よく見たら低電圧専用の物があるみたいです。型番が「F」ではなく「LF」になっている。秋月電子ではLFのものは販売されていません。少ピンのものは「LF」でなくても低電圧動作するようですが多ピンの物はダメです。MicrochipDIRECTで購入することにします。低電圧シリーズは低価格で入手しにくいので少し多めに購入して売店で販売することにします。16F877A,16F876A,16F648Aあたりの定番がいいかな。16F648Aは3V程度まで動作するようですがLFタイプはさらに低電圧でも動作するようです。電気二重層コンデンサーは5Vで10秒充電しても4V程度まではかなり短時間で放電してしまいます。3.5V程度までPICが動作してくれると設計が楽になります。


データシートをダウンロードするときにMicrochipDIRECTを見に行きましたが、いつの間にか日本語対応になっています。いつからでしょうか? でも何だか訳がおかしい。変化プロフィールって何?


だいぶ修正入りました。1列のソケットは7セグメントLED用です。この設計のおかげで半田付け順序を気にしないですみます。



最近、秋月で販売されているこの小さい液晶はピンの並びが15,16,1,2,〜13,14となっていて変則的。意図がわかりません。バックライトは500Ω抵抗を直列に入れても十分実用になる明るさです。そのときの電流はわずか14mAと優秀です。


とりあえずハードが完成、ロータリーエンコーダーのつまみが大きすぎたり、Cdsがデジタルポートに繋がっていたりで、まだ少し変更が必要です。ここから先はしばらくソフトいじりが続きます。先ずはLCDからやっつけます。このLCDはアラームの時刻設定などの各種設定のためです。それと曜日もカタカナで表示します。アルファベット3文字の、SUN,MON,TUE...等はどうもピンと来ない。アルファベットなら SUN,MOON,FIRE、WATER...の方がまだわかりやすい。100V部分は液晶の下に隠れていて、触りにくくなっています。感電対策です。100Vは両手で触ると危ないのですが、片手で触るだけならちょっとビリッとくるだけです。


トランス以外はそれほど重くないのですが、合計で470gもあります。


初期化が出来れば後は簡単なはずなのだが、文字が表示できない...配線ミスはなさそうだし、カーソルも点滅しているので後は文字コードを送り込めばいいだけのはず。それがなぜかうまくいかない。


互換性のある液晶でも確認。結果は同じ表示。タイミングの問題っぽいのだが... MikroBASICでは液晶表示をしてみた実績がないのでブレッドボードで回路を組み立てて実験してみることにします。右の写真は半田付けをせずに配線するために作ったケーブル。


4V以下でPICが動作しなくなるってことについて、ブラウンアウトリセットとかいう機能があるの思い出しました。ブラウンアウトリセットをOFFしたら低電圧でも動作しました。結果は4MHzで1.8V。動いているか否かはLEDの点滅プログラムを作って、点滅しなくなる電圧を確認。MikroBASICの場合「BODEN_OFF」というのにチェックを付けないとダメ。LFタイプは低電圧でも動くという”保証”があるってだけのようです。どうりで売ってないわけです。


互換性のある液晶表示器で実験。うまく表示できるようになったので、この互換LCDで文字列表示サブルーチンや全クリヤサブルーチンなどを作ってしまうことにする。


原因が何だったのかよくわからないままですが、動きました。


リアルタイムクロックから日付と時刻を受け取って表示しているところ。中途半端にOKだが、実際は全く使えない状態です。
 −秒を設定すると誤動作
 −時間の間隔がちょうど2倍になっている。1日が48時間だ!!
 −日が正しく取ってこられない
リアルタイムクロックが壊れたかもしれません。同じ物をもう一つ買って試してみないと原因がわかりそうもありません。これは1個¥500もする。SIIのものは外付け水晶なのだが安いのでこれに変えてしまうか。SIIのホームページからたどるとここで売っている。1個¥90。


うへっ 合計価格を計算してみたらすごいことになった。正確に計算したら¥500くらいは違っているかもしれないが。本当に作る意味あるのか? 
今一度この時計のメリットを考えてみよう。

良いところ
  1.暗くてもLEDなので見える
  2.ロータリーエンコーダーとLCDディスプレイがあるのでアラームの設定が楽
  3.PICで制御するので平日のアラーム時間と休日のアラーム時間を個別設定できたり多機能
悪いとこと
  1.高価 市販の液晶置き時計の2〜3倍といったところか
  2.AC100Vなので移動の自由度は低い
  3.重く大きい
普通なところ
  1.消費電力は市販の液晶タイプの電池代に比べて大差ないだろう

やはり多機能化しないと価値は低そうだ。

デジタル時計部品表
     数量 単価 価格 購入先 備考
プリント基板 P板.Com 1 \2,000 \2,000 P板.Com 発注する数量により単価は大きく変わる
PIC PIC16F877A 1 \500 \500 秋月電子  
PIC用ソケット 40ピン 1 \50 \50 秋月電子  
7セグメントLED 未定 4 \250 \1,000 未定  
7セグメントLED用ソケット 丸ピンシングル40P 2 \150 \300 秋月電子  
8mmLED OSPK8131A 2 \14 \28 秋月電子  
LCD SD1602HULB 1 \900 \900 秋月電子  
VR1 半固定 1 \32 \32 千石電商 液晶コントラスト調整
VR2 半固定 1 \32 \32 千石電商 メロディテンポ
VR3 半固定 1 \32 \32 千石電商 電圧監視調整
ロータリーエンコーダー EC16B 1 \200 \200 秋月電子  
エンコーダーつまみ B−15 1 \105 \105 千石電商  
メロディーIC SM6201 1 \200 \200 秋月電子 2個入りなので1個余る
メロディーIC用ソケット 14ピン 1 \30 \30 秋月電子 直接半田付けしても問題ないが
プッシュスイッチ   2 \105 \210 千石電商 設定用/起動用
トグルスイッチ   1 \137 \137 千石電商 アラーム ON/OFF
5mmLED   2 \11 \22 秋月電子 1個売りは無いのか?
抵抗   30 \5 \150 千石電商  
コンデンサ   10 \5 \50 千石電商  
人体センサーレンズ AK-FL1 1 \300 \300 秋月電子  
人体センサー RE-210 1 \100 \100 秋月電子  
Cds 防滴型 1 \150 \150 秋月電子  
トランジスタ 2SA1015 6 \10 \60 千石電商  
トランジスタ 2SC3422 1 \30 \30 千石電商  
スピーカー 8Ω 1 \483 \483 千石電商  
スピーカー固定金具 金具+ネジ 4 \20 \80 千石電商  
オペアンプ LM324N 1 \100 \100 秋月電子 4個入りなので3個余る
ブリッジダイオード   1 \50 \50 秋月電子  
リアルタイムクロック   1 \500 \500 秋月電子  
リアルタイムクロック用ソケット 8ピン 1 \25 \25 秋月電子  
電源レギュレータ LM317 1 \100 \100 秋月電子  
セラロック 4MHz 1 \30 \30 秋月電子  
電気2重層コンデンサ 1F 1 \200 \200 秋月電子  
フォトトライアック MOC-3041 1 \100 \100 秋月電子  
トライアック BTA24-600CW 1 \150 \150 秋月電子  
バリスタ 1 \50 \50 秋月電子  
トランス PK−06033 1 \578 \578 トヨデン  
ダイオード 1S4002 1 \50 \50 千石電商  
電源コード AC100V 1 \100 \100 千石電商  
ブザー   1 \100 \100 秋月電子  
ケース 未定 1 \600 \600 未定  
合計 \9,914


ページが大きくなりすぎたので分割しました、次のページはこれ