ホーム -> 電気工作 -> ケースに入れた自作機器 -> LCD明六つ時計

LCD明六つ時計 制作メモ


  • 発想 2017年5月9日
    • 江戸時代の時刻表示をLCDで行いたい。

  • 構想 2017年5月9日
    • 5月9日
      以前作った明六つ時計はステッピングモータを使ったが、これはグラフィックLCDで表示する

  • 実装についての考え
    • 5月9日
      以前作った明六つ時計のステッピングモータを止め、グラフィックLCDに明六つ、暮六つなどの時刻を表示する。 取りあえず以前の明六つ時計の基板でプログラムが作れないか?
      LCDは128x48なのでその幅で一刻+αを表示し、真ん中に矢印を表示する。時刻が進むと後の文字盤(一刻+α)が動くみたいに表示する
    • 5月10日
      消費電流について
      CPUはAVRmega328を使い、パワーダウンモードにすると 3Vで2uA(最大)
      RTCはRX8025SAを使い、3Vで1.2uA(最大)
      LCDは128x48は以前の明六つ時計を作った時の実験値で90uA位
      1分毎に割り込む事にして、割込み処理時間は0.1秒、(8MHz 3V 3mA)で 等価的な消費電流は3mAの1/600となるので5uAと考える。
      これを加えても平均の消費電流は100uAと考えれば良いだろう。
      CR123A(3V1400mAH)を使えば14000H(約1年半)動作できる。
    • 5月15日
      回路について
      以前作った「グラフィックLCD表示とRTC」の回路でっ実現できるのではないか?
      -->これを元にして「江戸 明六つ時計」を作ったので
         プログラムの容量、RAM等が問題なければこの回路で動くはず
         消費電流もクリア出来るハズ。
    • 5月25日
      AVRmega328でTimer2に32.768kHzのクリスタルを使ったらRTCは無くても良いだろう。
      これに電波時計を組み合わせれば精度はそれ程必要が無いだろう。
      電波時計が無くても以前の明六つ時計レベルの精度は出せるのではないか?
      できるか?
    • 5月30日
      取りあえず実験が出来る程度の回路は書いた。
    • 7月4日
      ハード的には決まったと考えるので 基板図を書きたい。50x50に出来るか? スルーホール部品だときつい。表面実装にするか? 電池を基板外に置くか?
    • 7月20日
      電池の高さが結構高いのでCR2477(1000mAh)を使ってこじんまり出来ないか? 規制のケースPS65辺りでは?それが無理ならPS85辺りでは?
    • 8月5日
      CR2477(1000mAh)でPS85は高さ的に不可。PS100にするか?
      或いは 秋月の透明プラスチックケースの75x50x20辺りにするか?
      CR2450を並列にしてPS85にするか? その時はダイオード保護が必要になるだろう。電圧降下はどの位になるか?0.3Vも有ったら使えない。0.1V以下ならば使えるかも
    • 8月6日
      CR2477(1000mAh)でPS85は高さ的に不可。PS100の高さ的に不可
      秋月の透明プラスチックケースの75x50x20はCR2477は入る可能性あり。
      CR123Aの時は電池ケースを別にしてプラスチックケースに張り付ければ入りそう
      PS85或いはPS100に入れるにはCR2450を並列にするしかない。電池高は入る筈だが、パターンが入るかは不明。
      PS100は入りそうな気がするが....。6Pコネクタ高がPS85もPS100もダメなので他のコネクタにする必要が有る。
      その前にダイオードを使って並列が実用になるかを確認する必要がある。CR2450で無くても CR2032、CR2016辺りで実験をする必要がある。 75x50x20ケースでCR2477を基板上に入れ、基板の外にCR123Aコネクタが入る大きさで基板設計が出来れば、その辺が一番良さそう(50x47)
    • 8月7日
      CR2450、CR2477は表面積が大きいので基板図が難しい。今迄通り50x50にするか、CR123Aを基板外にして50x47で作るのが良さそう
    • 8月21日
      CR2450が一つの時は容量が少ないので、見たい時だけLCDを動作させる工夫が必要だろう。LCDコマンドにスタンバイが有るがそれで電流が減るか?  減らなかったらLCD電源をON/OFFする事になる。 電源ON後の待ち時間とか、初期化のタイミングとか、面倒になるので 出来ればスタンバイが使えるのが好ましい。
    • 8月22日
      消費電流を再度検討したが、6月6日に測定した後の計算はおかしい。1秒ごとに20mS間150mA流れると平均は3mAになるハズ。 そうなると必要な電池容量は、一日動かすのには3mAx24h=72mAh、 1年動かすのには72mAx365=26280mAhになる。現実的ではない。 1分間に一回20mS間150mA流れるとすると 平均電流の3mAが60分の1の50uAになり、殆どの時間の電流値50uAを足すと100uAになる。 これならば 大体100uAx24hx365=876mAhになり、CR123Aまたは CR2477で一年使える計算になる。再度1分間に1回20mS間150mAで有る事を確認する必要が有る。

  • 現状
    • 5月15日
      以前作った「グラフィックLCD表示とRTC」の基板を使ってLCDの表示位はやりたい。
    • 5月16日
      以前作った「グラフィックLCD表示とRTC」のプログラムは16F1824を使っていて、プログラム領域が100%なので 明け六つ用の表示が入らない。
      なので 16F1825にする必要が有る。そうすればプログラム領域が2倍になり、データ領域も余裕が出来る。
      16F1824で明六つの表示だけでも作ろうと思ったが、A/D、UARTを外しても87%位にしかならないので作るのは難しそう。
      16F1825を購入してからプログラムを作ることにする。
    • 5月17日
      表示だけの作成なら AVRmega328にグラフィックLCDがついている基板
      「グラフィックLCD表示とRS232C通信 」で行った方が簡単だろう。
      論理的な所はAVRだろうがPICだろうが関係ないはず。
      ステッピングモータの明六つ時計の刻時刻部分のファイルを16F1824のプロジェクトに追加した。プログラム領域は90.9%になった。表示までしたらどの位になるだろう
    • 5月26日
      AVRmega328でTimer2に32.768kHzクリスタルを使った時の動作として1秒毎の割り込みで 日付計算、明六つの計算、表示を行うとして
      3Vで内部発振1MHz動作を使い、パワーセーブ動作を行う。消費電流はパワーセーブ動作で消費電流0.9uAを考える。割込み後の動作は100mSと仮定し、消費電流は500uAなので実効値として50uAと考える。
      なので CPU消費電流としては50.9uA(約50uA)とする。LCDが約90uAなので合計140uAになる。
      CR123A(3V1400mAH)を使えば10000H(約1.14年)動作できる。
    • 5月29日
      AVRmega328でTimer2に32.768kHzクリスタルを使った時の並列コンデンサは
       Ce+Cl=2xCL-Csなので
      CL(クリスタルの負荷容量)=4.5~12.5PF、 Cs(浮遊容量)=2PFとする、 Cl(発振器内の容量)=6PF、 計算で求めるとCe(外部容量)=7~23PFとなる。10PFを付けることにする
      (インターネットで調べるとコンデンサを付けない物も有るみたい)
    • 5月30日
      ブレッドボードで実験回路を組んだ。
    • 5月31日
      ブレッドボードの基本的な動作確認はした。(スイッチはまだ)
    • 6月3日
      プログラムを書き込んだがタイマ2(コンペア動作)の割り込みが入らない
      タイマ0の割り込みは入っている。
    • 6月4日
      タイマ2の動作をオーバーフローに変更したが割り込みが入らない
      クリスタルの10PFを外してもダメ。
      カウンター値を調べるといつも0になっている。-->動いていないのかも
      初期化で123を書き込んだ時も読み出すと0なので 書けていないか、動作がおかしいのか。
      非同期動作なので書き込んだビットを見てから、レジスタは書き込んでも やはりダメ。
    • 6月5日
      タイマ2の初期化をコメントアウトしたまま忘れていた。
      初期化を呼び出したら割込みが入りだした。(オーバーフロー割り込みのまま)
      クリスタルの10PFを外しても同じなので回路図は活かし、実装しない。
      スリープをパワーセーブモードにして電流を測るが、アナログテスターだと小さすぎるレンジと大きすぎるレンジで値が分からない
      デジタルテスターでは割込みが入った時に値が上がるのだがその値が正しいかわからない。上がった時は数十uAになっている。
      取りあえずRTC動作とスリープは大丈夫みたい。
    • 6月6日
      消費電流を測定した。通常は約50uAで1秒ごとに20mS間約150mAになる。
      平均すると約80uAとなるので 大体100uAと考え1年間で876mAhとなる。
      なのでCR123A(1400mAh)で一年間の使用は大丈夫と考える。
      なお、電流測定は電源とGND間に100Ωを直列に挿入し、その両端の電圧(オシロで測定)から計算をした。
    • 6月7日
      時計設定モードのプログラムを追加した。時計設定モードに入るのはSW-1(左側スイッチ)を1秒以上長押しする
    • 6月28日
      明六つ時計の江戸時代の時刻表示を追加した。デザイン的にはもう少し考える必要が有るだろうが、動作は確認できた。
    • 7月4日
      操作とデザインを変更し、普通のデジタル時計の表示を明六つ時計の表示を右側スイッチの操作で切り替えるようにした。(明六つ時計のデザインはもっと考える必要が有る)時間を合わせる為に一時間ごとに数秒プラスマイナスする微調整機能を追加した。
      以前の明六つ時計の経験から考えると十日ごとに数秒プラスマイナスする機能を追加すると年の誤差を1分以内に出来ると思うが、どうするか?
    • 7月7日
      明六つ時計のデザインを変更して24x24フォントを使う様にした。プログラム
      十日ごとに数秒プラスマイナスする機能はまだ付けないことにする。基板が出来て動かした時に必要が有れば追加する。
      最終的な回路図で 50x50でDIPを使って基板図を書いた。LCDと押しボタンスイッチとLEDは裏面に実装する事にした。
    • 8月15日
      CR2477で表面実装部品を使って 50x47の大きさで回路図基板図を書いた。
    • 8月20日
      CR2450一つでで表面実装部品を使って PS-85用の回路図基板図を書いた。
    • 11月1日
      elecrowにCR2477の基板を注文した。他の基板も頼んだのでFusionは送料が高くて総額はほとんど変わらないのでelecrowにした。
    • 11月2日
      elecrowからzipファイルに2つのガーバーファイルが有る旨のメールが届いた。zipファイルを作る時に余分なファイルまで入れたしまったみたいなので、このCR2477を作ってほしい旨の返事をした。
    • 11月9日
      基板が来た。いつも驚くが速い。注文した日から土曜日曜が入って8日で到着した。(今回はzipファイルがおかしかったので実質7日)
      基板の表側基板の裏側
    • 11月15日
      基板を組み立てた。完成基板の表側完成基板の裏側プログラムを書き込んだが、LCD表示がダメ。動作初めのLED点滅はしているのでCPUは動いていると思う。
    • 11月16日
      LCD端子1ピンと2ピンの半田ブリッジが有った。修正したらLCD表示は正常になった。他の動作も基本的には良さそう。時間精度、消費電流などは今後調べる。
      CR2477が無いのでヨドバシに頼んだ。来るまで待ち
    • 11月18日
      CR2477が来た。電池での動作は確認したが、時間精度、消費電流などは今後調べる。(現在 連続動作中)
    • 12月1日
      電流は直列に100Ωを入れて約8.6mV(デジボル)、なので86uAになる。これが24時間x365日で753mAhとなる。CR2477で1年間は使えるだろう。良しとする。 精度はこれまでの期間では1分以内みたいなので月差1~2分として1年で24分以内。調整値はもう少し正確に誤差を測ってからセットする事にする。
    • 12月4日
      12月2日21時57分から12月4日18時05分までに5秒ぐらい進んだ。計算すると24時間で2.727秒になる。約3秒とすると8時間ごとに1秒遅らせれば良い。 1時、9時、17時のROM上の補正値を-1にした。これで様子を見る。一週間ごとの調整が必要かもしれない。
      電源ON時(リセット時)に時刻設定から入る様にした。
    • 12月15日
      12月4日18時30分から12月15日14時50分までに16秒ぐらい遅れた。計算すると24時間で1.45秒に遅れになる。4日の3秒/1日は補正のやりすぎみたい。 なので、2秒/1日として 12時間にごとに1秒遅らるとして、1時、13時の補正値を-1にした。これで様子を見る。
      15時00分にIN-17の時計と合わせた。
    • 12月17日
      秋月のケース(117-TSS)に入れた。( 表側裏側
      その時 動作を止めたので改めて 12月17日13時43にIN-17の時計と合わせた。
      電源ON時の時刻設定からの戻りで表示に不具合が有ったのでプログラムを修正した。
    • 12月22日
      時計の精度は12月22日14時50分で 約―2秒になっている。この程度なら月差15秒ぐらいなので良しとする。このまま連続動作をする。

  • 参考資料
    • 部品表
      ガーバーファイル
      基板に関してはこのガーバーファイルを直接使う事は止めてください。なお、基板(生基板)は 現在の手持ち分に限り 無料で差上げます。 こちら連絡先へメールをお送り下さい。

ホーム          カメラと写真        2017年12月22日更新 Taishi